毎朝同じ貼り付けをくり返している人へ VBA でボタン1つにする最初の一歩

記事
IT・テクノロジー
毎朝届くデータをコピーして台帳の一番下に貼る。
毎日5分の作業でも1年でおよそ20時間になります。
同じ手順のくり返しは Excel のマクロ(VBA)が一番得意な仕事です。
ここでは「貼る場所のデータを台帳の下に足すボタン」を作る手順を書きます。

■ 始める前に

必ずファイルの控えを取ってから試してください。マクロで消した物は「元に戻す」が効きません。

「開発」のタブが無いときはファイル →オプション →リボンのユーザー設定 で「開発」にチェックを入れます。

■ シートを2枚にする

シート「貼る場所」に毎朝のデータを貼ります。1行目は見出し、2行目からデータです。
シート「台帳」は、これまでの記録がたまっていく表です。列の並びは「貼る場所」と同じにします。

■ マクロを書く

開発 →Visual Basic を押すとマクロを書く画面が開きます。
挿入 →標準モジュール を選んで次を貼り付けます。A列からD列までのデータの例です。

Sub 台帳に足す()
    Dim n As Long, r As Long
    n = Sheets("貼る場所").Cells(Rows.Count, 1).End(xlUp).Row
    If n < 2 Then
        MsgBox "貼る場所にデータがありません"
        Exit Sub
    End If
    r = Sheets("台帳").Cells(Rows.Count, 1).End(xlUp).Row + 1
    Sheets("貼る場所").Range("A2:D" & n).Copy Sheets("台帳").Range("A" & r)
    Sheets("貼る場所").Range("A2:D" & n).ClearContents
    MsgBox CStr(n - 1) & "行を台帳に足しました"
End Sub

やっている事は4つです。
貼る場所の最後の行を探す。台帳の空いている一番上の行を探す。そこへ写す。写し終えたら貼る場所を空にする。
最後に貼る場所を空にしているのでうっかり2回押しても同じデータが二重に入りません。貼り忘れたまま押したときは知らせが出ます。

■ ボタンを置く

開発 →挿入 →フォームコントロールの「ボタン」を選び、シートの上で四角を描きます。
出てきた一覧から「台帳に足す」を選べば押すと動くボタンになります。

■ 保存のしかた

マクロの入ったファイルは「Excel マクロ有効ブック(.xlsm)」で保存します。
ふつうの .xlsx で保存するとマクロは消えてしまいます。
開くと上に黄色い注意の帯が出ます。自分で作ったファイルなら「コンテンツの有効化」を押して使います。

■ 慣れてきたら

「マクロの記録」を使うと自分の操作をそのまま VBA にしてくれます。
ただ、記録したマクロは貼る行が固定になりがちです。上の例の「最後の行を探す」部分を組み合わせると毎日使える形になります。

1つの作業がボタンになるとほかの作業も同じ考え方で置き換えられます。
まずは毎日くり返している作業を1つ選ぶところからです。

関係する出品:Excelの毎回の作業をVBAでボタン1つにします
サービス数100万件のスキルマーケット、あなたにぴったりのサービスを探す