VBAによるマクロ開発の流れ

C言語など多言語を習得した方に、VBA(Visual Basic for Application)でマクロを作りExcelの作業を自動化する流れを説明したいと思います。

開発タブ

まず最初に開発タブを表示します。

Excelを起動したら、リボンのなにもないところで右クリックをして、「リボンのユーザー設定」を選択します。

開いたウィンドウで「開発」にチェックを入れて「OK」します。これで開発タブを表示できます。

VBE

VBAの開発環境はVBE(Visual Basic Editor)です。
Alt+F11を押すと画面が開きます。それがVBEです。
開発を行うにはこの画面の機能を使います。インテリセンスなど基本的な機能を持っています。

Option Explicit

VBAでは変数の宣言がデフォルトでは必須ではないため、強制するためのオプションを有効にします。

「ツール」「オプション」をクリックし、「変数の宣言を強制する」にチェックを入れます。

これにより新しいモジュールを開いた時に自動的にOption Explicitが挿入され、変数の宣言忘れを防止することが出来ます。

この効果については別のページで説明します。

標準モジュールの挿入

左上のペインが「プロジェクトエクスプローラ」です。
ここを右クリックして、「挿入」「標準モジュール」で新しいモジュールを作成します。モジュールはC言語で言うところのファイルと思えばよいかと思います。



基本的には、このモジュールにプログラムを書いていくことになります。

試しに次のSubプロシージャーを書いて、プロシージャー内にカーソルを置き、F5を押せば、画面に"Hello World"を表示することが出来ます。

Public Sub gHelloWorld()
    MsgBox "Hello World"
End Sub

ボタンの配置

作成したプロシージャを実行するには、シート上にボタンを配置します。

「開発」タブの「挿入」をクリックし、左上の「ボタン(フォームコントロール)」をクリックします。


マウスポインターが+になるので、ワークシート上にボタンを配置する四角を描きます。
このときAltキーを押しながら配置すると、罫線に沿ってきれいに配置できます。

配置する場所を指定するとマクロを選択する画面が開くので、先程書いたgHelloWorldを選択します。



これで、マクロの登録が完了し、ボタンをクリックすればメッセージを表示できるようになります。

ここまでで基本的なマクロ作成の流れを説明したことになります。開発は基本的にはこれの繰り返しで、後はプロシージャに機能を足していくだけです。

マクロはショートカットキーで呼び出すことも可能で、そちらのほうが便利なこともあります。しかし、次の点からボタンを配置したほうが良いと思います。

  1. 一般の人にはボタンのほうが操作が簡単
  2. ページごとに必要なボタンを配置できるため使いやすい
  3. 実行されたシートを特定できるためコードが簡単になる


案外世の中の人はショートカットキーを使わないものです。

複数のシートを使って段階的な操作をする場合、シートごとに必要なボタンを配置しておくとナビゲーション代わりになって便利です。老化してくると、あれ、このページで何するんだったっけ?、となってしまいます。

ショートカットキーからの実行だと、まずアクティブシートが何なのか、そのシートで実行してよいのかどうかといったチェックを行う必要があります。

シートに配置したボタンなら、そのシートから呼び出されたことが明らかなので、そのような処理も要りません。

もちろんマクロ呼出し画面から実行すればどこのシートからでも呼び出せてしまいますがそこまでは考えません。

コメント

アクセス数の多い投稿

セキュリティ対策ソフトのノートンが詐欺ソフトまがいになってしまってショック

ZIPファイルを開こうとすると、展開を完了できません、と言われる

Windows セキュリティーのビックリマークが消えない

突然滅茶苦茶遅くなったPCがWindows Updateのキャッシュクリアで復活

Power Automate Desktopでブラウザでダウンロードしたファイルを処理する

NEC Aterm WX5400HP をセットアップ

Excel 2019 クエリが原因で日本語入力の一文字目が勝手に確定する

Excel VBAからODBCを使ってデータを簡単に取得する

Teamsで日本語入力すると左上に変換ウィンドウが出る

ChatGPTが日本語からVBAのコードを生成できてたまげる