エクセルVBAでマクロを作ってみましょう
仕事等でエクセルファイルを利用している際に自動で処理を行ってくれるボタンを見る機会があるかと思います。このボタンにはエクセルVBAで作成されたマクロが登録されており、
ボタンを押すことで登録されたマクロが実行されて処理が行われます。
実はこのマクロは皆さんが思っているより簡単に作成する事ができます。これから勉強を始めたいという方は当記事で一例を紹介したいと思いますので入門編としてご覧いただけますと幸いです。
準備
■まずはリボンのユーザー設定にて「開発」タブが表示されるようにしましょう。
マクロを記載するエディタ(開発タブの中にあり)はエクセルに標準搭載されているのですが、デフォルトでは表示されていないので以下の操作にて画面上に表示されるようにします。
1.エクセルファイルを開き、上部にある「ファイル」タブを選択します。
2.左側に表示されている項目内にある「オプション」を選択します。
3.メニュー項目よりリボンのユーザー設定を選択し、メインタブの項目内にある「開発」のチェックボックスにチェックを入れます。
■エディタを表示させましょう
1.「開発」タブを選択して「Visual Basic」を選択します。
2.開いたウィンドウ左側にあるプロジェクトウィンドウ内で右クリックをして「挿入」→「標準モジュール」を選択します。
ここまで操作いただくことでメモ帳のようなテキストを入力できる画面が表示されているかと思います。
マクロはこの画面に記載していきます。
実際にマクロを書いてみましょう
■プロシージャを作成しましょう
プロシージャとはプログラムのまとまりの事で、「ここからここまでのプログラムを実行しますという事を示すもの」というイメージを持っていただければ良いかと思います。
プロシージャにはいくつか種類があるのですが、今回はSub(サブ)を先頭に記載するサブプロシージャを例に紹介をします。
Sub プロシージャ名()
'ここにマクロプログラムを記載していく
End Sub
上記のようにSub プロシージャ名()と入力してEnterで改行すると自動的に末尾にEnd Subが入力されるかと思います。※プロシージャ名の部分は任意で命名できます。
これでプロシージャの作成完了です。
■マクロプログラムを記載しましょう
今回はVBAの学習が初めての方でも簡単に作れるものとしてクリアボタンを作りたいと思います。
ソースコードは以下となります。
Sub クリア()
ThisWorkbook.Worksheets("任意のワークシートの名称").Range("任意の範囲").ClearContents
End Sub
プロシージャ名は「クリア」としてみました。
VBAでは「操作対象」を「こうする」という形式で記載します。
上記ソースコードでは、「このワークブック」の「このシート」の「この範囲」を「値削除する」というものとなっています。
※任意のワークシートの名称と任意の範囲は「"」(ダブルクォーテーション)で囲ってください
任意の範囲はエクセル関数での範囲の示し方と同じように「A1:D5」のように記載してそれを「"」で囲みます。
■ボタンを作成してマクロを登録する
作成したマクロを実行するためのボタンを用意してみましょう。
エクセルのウィンドウにて「開発」タブを選択して「挿入」からフォームコントロール内にある「ボタン」を選択します。
任意の大きさのボタンを作成してください。※大きさや登録するマクロは後で変更する事も可能です。
マクロの登録ウィンドウが表示されますので作成したプロシージャを選択してOKを押下します。
以上でボタンの作成とマクロの登録の完了です。
ボタンを右クリックして「テキストの編集」を選択すればボタンに記載されているテキストの編集が可能ですので、「クリア」等に変更すれば利用者に分かりやすいかと思います。
最後に
ここまで閲覧いただきありがとうございました。
クリアボタンはプロシージャを作成して1行のプログラムを記載するだけで作成できてしまう簡単なものという事が分かっていただけたかと思います。
これからVBAの勉強を始めたいと考えている方の参考になりましたら幸いです。