Excelで転記を自動化!初心者でも簡単に使えるマクロ活用術

パソコン

Excelを使っていると、「別のシートにデータを転記する作業が多くて面倒…」と感じることはありませんか。
毎回コピー&ペーストを繰り返していると時間もかかり、入力ミスの原因にもなります。
そんな時に役立つのが「マクロ」を使った転記の自動化です。
この記事では、Excelのマクロを使って転記を効率化する方法を、初心者でもわかるように具体的な例とコード付きで解説します。
「転記マクロを作りたいけど何から始めればいいか分からない」という方にも、すぐに実践できる内容です。


マクロとは?Excel作業を自動化する便利な仕組み

Excelの「マクロ」とは、繰り返し行う操作を自動で実行できるようにする機能のことです。
たとえば、あるシートから別のシートへデータをコピーする、フォーマットを整える、集計するなどの操作を、一つのボタンで実行できます。

マクロは「VBA(Visual Basic for Applications)」というプログラミング言語で作成されます。
難しそうに感じるかもしれませんが、基本的な構文を覚えるだけで、業務を大幅に効率化できます。

たとえば、マクロを使えば次のような作業が一瞬で完了します。

  • 日報シートから集計シートにデータを転記
  • 受注リストから顧客別シートへ自動仕分け
  • 入力フォームから登録データベースに書き込み

このように、転記マクロは日常業務の時短に大きく貢献します。


マクロを使う前に準備しておくこと

マクロを使うためには、まずExcelの「開発」タブを表示しておく必要があります。
以下の手順で設定しましょう。

  1. ファイル → オプション → リボンのユーザー設定を開く
  2. 右側のリストから「開発」にチェックを入れて「OK」をクリック

これで、リボンに「開発」タブが表示されます。
このタブから「マクロの記録」や「Visual Basic」などの機能を使えるようになります。

また、マクロを保存する際は、ファイル形式を「.xlsm(マクロ有効ブック)」にすることも忘れないようにしましょう。


基本の転記マクロを作ってみよう

まずは、最もシンプルな「シートAからシートBへデータを転記するマクロ」を作成してみましょう。

例:Sheet1からSheet2へデータを転記するマクロ

Sub SimpleCopy()
    Sheets("Sheet1").Range("A1:C10").Copy
    Sheets("Sheet2").Range("A1").PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    MsgBox "転記が完了しました!"
End Sub

このマクロは、Sheet1のA1:C10のデータをSheet2のA1セルから貼り付けるという処理です。
「値のみ」を転記するように設定しているため、数式や書式はコピーされません。

マクロを実行するには、「開発」タブから「マクロ」→「SimpleCopy」を選んで「実行」をクリックします。
これだけで自動転記が完了します。


条件を指定して転記するマクロ

次に、「条件に合うデータだけを転記」する応用例を見てみましょう。
たとえば、売上リストの中から「担当者が田中さんのデータだけ」を別シートに転記する場合です。

Sub ConditionalCopy()
    Dim wsSrc As Worksheet
    Dim wsDst As Worksheet
    Dim i As Long, j As Long

    Set wsSrc = Sheets("売上リスト")
    Set wsDst = Sheets("田中担当分")

    j = 1
    For i = 2 To wsSrc.Cells(Rows.Count, "A").End(xlUp).Row
        If wsSrc.Cells(i, "B").Value = "田中" Then
            wsSrc.Rows(i).Copy
            wsDst.Rows(j).PasteSpecial xlPasteValues
            j = j + 1
        End If
    Next i
    Application.CutCopyMode = False
    MsgBox "田中さんのデータ転記が完了しました!"
End Sub

このコードでは、売上リストのB列にある担当者名をチェックし、「田中」という名前の行だけを転記しています。
転記先シートが自動で更新されるので、手動での仕分け作業が不要になります。


フォーム入力を転記するマクロ

さらに応用編として、「入力フォーム」からデータベースシートに自動登録するマクロを作成してみましょう。
たとえば、A1~C1に入力した内容を「データベース」シートの末尾に転記するコードです。

Sub FormToDatabase()
    Dim wsForm As Worksheet
    Dim wsDB As Worksheet
    Dim nextRow As Long

    Set wsForm = Sheets("入力フォーム")
    Set wsDB = Sheets("データベース")

    nextRow = wsDB.Cells(Rows.Count, "A").End(xlUp).Row + 1

    wsDB.Cells(nextRow, "A").Value = wsForm.Range("A1").Value
    wsDB.Cells(nextRow, "B").Value = wsForm.Range("B1").Value
    wsDB.Cells(nextRow, "C").Value = wsForm.Range("C1").Value

    MsgBox "登録が完了しました!"
End Sub

このマクロをボタンに登録すれば、入力フォームでデータを入力→ボタンを押すだけで自動登録できます。
日報、勤怠、注文管理など、さまざまなシーンで活用できます。


ボタンで簡単にマクロを実行する方法

マクロを実行するたびに「開発 → マクロ → 実行」と操作するのは少し面倒ですよね。
そこでおすすめなのが「ボタンにマクロを割り当てる方法」です。

  1. 「開発」タブ →「挿入」→「フォームコントロール」→「ボタン」を選択
  2. シート上にボタンを配置
  3. 「マクロの登録」ダイアログが出るので、作成したマクロを選択

これで、ボタンをクリックするだけで転記マクロが動くようになります。
操作ミスも防げるので、他の人に使ってもらう際にも便利です。


転記マクロを使うときの注意点

便利なマクロですが、いくつか注意点もあります。

  • ファイル形式は「.xlsm」で保存すること
    通常の.xlsxではマクロが保存されません。
  • パスワードや個人情報の扱いに注意
    自動転記の際に、機密データが他シートに流出しないよう確認が必要です。
  • 絶対参照・相対参照を意識する
    転記先のセルを固定したい場合は「Range(“A1”)」などを明示的に指定しましょう。
  • マクロ実行前にバックアップを取る
    思わぬ上書きや削除を防ぐためにも、事前にファイルをコピーしておくと安心です。

さらに効率化!複数シートへ同時転記するマクロ

最後に、少し応用的なサンプルをご紹介します。
1つのシートから、複数のシートへデータを条件分岐して転記するマクロです。

Sub MultiSheetCopy()
    Dim wsSrc As Worksheet
    Dim wsDst As Worksheet
    Dim i As Long
    Dim targetSheet As String

    Set wsSrc = Sheets("売上リスト")

    For i = 2 To wsSrc.Cells(Rows.Count, "A").End(xlUp).Row
        targetSheet = wsSrc.Cells(i, "B").Value  ' 担当者名をシート名に
        On Error Resume Next
        Set wsDst = Sheets(targetSheet)
        If wsDst Is Nothing Then
            Sheets.Add.Name = targetSheet
            Set wsDst = Sheets(targetSheet)
        End If
        wsSrc.Rows(i).Copy
        wsDst.Cells(Rows.Count, "A").End(xlUp).Offset(1).PasteSpecial xlPasteValues
        Set wsDst = Nothing
        On Error GoTo 0
    Next i

    Application.CutCopyMode = False
    MsgBox "すべてのデータ転記が完了しました!"
End Sub

このマクロは、担当者名を基に自動でシートを作成し、該当するデータを転記します。
チーム別や地域別にデータを分けたいときなどに非常に便利です。


まとめ

Excelマクロを使えば、転記作業をボタン一つで自動化でき、作業時間を大幅に短縮できます。
基本的なコピー転記から、条件付き・複数シート転記まで応用範囲は広く、日々の業務効率化に直結します。

最初は簡単なマクロから始めて、少しずつ応用していくのがおすすめです。
「人の手でやるしかない」と思っていた作業も、マクロの力で驚くほどスムーズになります。
ぜひ、この記事を参考にあなたのExcel業務を自動化してみてください。

コメント

タイトルとURLをコピーしました