器用貧乏の独り言

器用貧乏なおっさんが気の向くままに。

【VBA】データ転記マクロ(体温記録)

◇前置き

「同じようなデータを毎日入力する」

そんな仕事ってありませんか?
今回は私が使い回しているデータ転記マクロを紹介します。

かなり汎用性の高いマクロなのですが、今回は例として体温記録用シートにして紹介します。

◇概要

こんなシートを用意しました。

日付と各自の体温を入力して、転記ボタンを押すと隣の記録エリアにデータが転記されます。

既にデータが入っているところはそのままに、どんどんデータが溜まっていく仕様です。

ソースコード

肝心のソースコードはこんな感じです。

Public Sub DataMove()
 
Dim i As Integer
 
   If Range("D4") = "" Then
       MsgBox "日付を入力してください"
       Exit Sub
   End If
 
   '日付データをコピーする
   Range("D4").Select
   Application.CutCopyMode = False
   Selection.Copy
 
   For i = 1 To 4
       '転記先の最終行を探す
       Range("H1000000").End(xlUp).Offset(1, 0).Select
       '日付データを貼り付ける
       Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, _
       Transpose:=True
   Next
 
   '名前と体温のデータをコピーする
   Range("C7:D10").Select
   Application.CutCopyMode = False
   Selection.Copy
 
   '転記先の最終行を探す
   Range("I1000000").End(xlUp).Offset(1, 0).Select
 
   '名前と体温のデータを貼り付ける
   Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, _
   Transpose:=False
 
   '転記後の入力エリアを空にする
   Range("D4,D7:D10").Select
   Selection.ClearContents
 
   MsgBox "データ転記が完了しました"
 
End Sub

お好みでポカヨケを入れることができます。

今回はシンプルに日付が未入力だった時に、メッセージが出るようにしてみました。

◇使い方

実際に動かしてみましょう。

まずは日付と各自の体温データを入力します。

この状態で転記ボタンを押すと.......

無事、データが転記されました!

◇最後に

見た目がシンプルになるように、体温記録シートにして紹介しましたが、様々な作業に流用することで、簡単にデータを蓄積することができます。

蓄積したデータはそのまま加工しても良いですし、データベースに取り込んでしまっても良いです。

今回は分かりやすいように、すぐ隣にデータ転記する仕様でしたが、別シート・別ファイルに転記することも可能です。

色んなところで使って貰えると嬉しいです。