数量計算書をエクセルで作る方法

三浦プロジェクトは土木とEXCELの情報サイトです

エクセルのシート編集を【マクロ】で自動化する方法!

連続した操作を記録してマクロ(VBAコード)に変換する

土木業務をデジタル化するイメージ

エクセルのマクロとVBA(Visual Basic for Applications)は密接に関係しています。マクロはエクセルの操作を自動化する機能で、その記録や編集に使用されるのがVBAです。【マクロの記録】を使うと、エクセルの操作を記録しながらVBAコードとして保存します。つまり、その記録されたVBAを直接編集すれば、より複雑な処理や条件分岐などの高度な自動化が可能になるわけですね。

ワークシートをコピーする操作の自動化マクロを作成します

  1. マクロは[開発]タブを使います。初期状態では表示されていません。[ファイル] > [オプション]でExcelのオプションを開いて、[リボンのユーザー設定] > [メインタブ]の下にある【開発】チェックボックスをオンにすると、追加されます。
    マクロの作り方を説明1
  2. 【開発】タブをクリックするとリボンが変わりますので、[コード]グループの【マクロの記録】ボタンをクリックします。[マクロの記録]ダイアログボックスが表示されますので、そのまま[OK]ボタンをクリックします。
    マクロの作り方を説明2
  3. [Ctrl]キーを押したまま【Sheet1】をドラッグします。[Sheet1(2)]が作成されたら、【記録終了】ボタンをクリックします。
    マクロの作り方を説明3
  4. 【Visual Basic】ボタンをクリックすると、エディターが開きます。プロジェクトエクスプローラから、[標準モジュール]⇒[Module1]を選択します。ここで、コードウィンドウを確認してください。この部分が記録されたマクロになります。
    マクロの作り方を説明4
  5. コードウィンドウ内のマクロはSheet1をコピーしてSheet1の右側に表示させるというものです。
        Sub Macro1()
        '
        ' Macro1 Macro
        '
    
        '
            Sheets("Sheet1").Copy After:=Sheets(1)
        End Sub
    

    これだと汎用性がありませんので下記のように書き換えます。アクティブシートをコピーしてアクティブシートの右側に表示させるというものです。SubからEnd Subをコピーして、コードウィンドウに貼り付けます。

        Sub sheetcopy()
            ActiveSheet.Copy after:=ActiveSheet
        End Sub
    
    マクロの作り方を説明3
  6. ワークシートの[Sheet1(2)]をアクティブにして【マクロ】ボタンクリックすると、[マクロ]ダイアログボックスが表示されますので、[sheetcopy]を選択後、【実行】ボタンをクリックします。
    マクロの作り方を説明3
  7. アクティブシートの右側に【Sheet1(3)】としてアクティブシートがコピーされました。
    マクロの作り方を説明3

    このようにEXCELの操作をマクロに記録し編集を繰り返す事が、VBA (Visual Basic for Applications)を理解する近道ではないかと思います。今回のマクロは【簡単入力計算書】の中にも組み込んでいますので併せてお試しください。

エクセルのVBAを学ぶには、まずマクロの記録機能を活用するのが最適です。マクロの記録を使えば、エクセルの操作がそのままVBAコードとして保存されるため、どのようなコードが生成されるかを視覚的に理解できます。記録したマクロを編集しながら、コードの意味を学ぶことで、徐々にスキルが身につきます。