Microsoft ExcelでVBAのサブプロシージャを実行する方法 | TechRepublic

Microsoft ExcelでVBAのサブプロシージャを実行する方法 | TechRepublic
Visual Basic コード リスト。
画像: PatrickCheatham/Adobe Stock

VBAを一度使い始めると、VBAの強力さと柔軟性を実感していただけるでしょう。言語の柔軟性だけでなく、Microsoft ExcelでVBAのサブプロシージャを実行する方法も豊富で、どれも複雑なものではありません。この柔軟性により、ユーザーと開発者の両方にとって、タスクのコンテキスト内で最も効率的なプロシージャ実行方法を提供できます。

このチュートリアルでは、Microsoft ExcelでVBAプロシージャを実行する4つの方法を紹介します。まず、プロシージャが実行時に実行されるようにするためのMicrosoft信頼設定について説明します。このチュートリアルでは、「マクロ」ではなく「プロシージャ」と「サブプロシージャ」という用語を使用しますが、実際にはこれらの用語は同じ意味で使用されていることがよくあります。ただし、関数プロシージャをマクロと呼ぶべきではありません。

参照: Google Workspace vs. Microsoft 365: チェックリスト付き比較分析 (TechRepublic Premium)

Windows 10 64ビットシステムでMicrosoft 365を使用していますが、Excelの以前のバージョンも使用できます。Web版ExcelはVBAをサポートしていません。デモ用にExcelを使用していますが、これらのメソッドの一部は他のOfficeアプリでも使用できます。Microsoft Excelと.clsのデモファイルをダウンロードできます。

Excel で VBA プロシージャを実行するタイミングを制御する方法

最近のVBAの最大の問題は、内蔵の保護機能の多さです。気持ち悪い薬を飲むのと同じように、自分のためになるのは分かっていても、それを好きになる必要はありません。

VBA プロシージャはセキュリティリスクをもたらす可能性があるため、安全性が確実でない限り、Office アプリでマクロを有効にしないでください。コードの表示と編集のために VBA を有効にする必要はありません。ただし、コードを実行するには VBA を有効にする必要があります。

これらの設定はセキュリティセンターにあります。これらの設定にアクセスできない場合は、管理者にお問い合わせください。管理者がVBAを無効にしている場合、VBAを実行することはできません。これらの設定は、各Officeアプリごとに個別に変更する必要があります。

手順設定を表示または変更するには、次の手順を実行します。

1. [ファイル] タブをクリックします。

2. 左側のペインで「オプション」をクリックします。

3. [セキュリティ センター] をクリックし、[セキュリティ センターの設定] をクリックします。

4. 左側のペインで、「マクロ設定」をクリックします。

5. 「通知オプション付きでVBAマクロを無効にする」をクリックします。この設定により、プロシージャはブロックされますが、必要に応じて有効化できます(図A)。

図A

この設定を使用して、VBA プロシージャの実行を許可します。
この設定を使用して、VBA プロシージャの実行を許可します。

これはファイルを使用するユーザーが設定する必要がある設定です。これでVBAプロシージャを実行する準備が整いました。

方法1: Excelの開発タブと表示タブからVBAサブプロシージャを実行する方法

Excelの.xlsxリボンは長年使われてきましたが、デフォルトでは表示されないため、「開発」タブについてご存知ない方もいるかもしれません。このタブは、VBAプロシージャやVisual Basic Editorを操作する際に使用します。「開発」タブが表示されない場合は、以下の手順で追加してください。

1. [ファイル] タブをクリックします。

2. 左側のペインから「オプション」を選択します。

3. 左側のペインで [リボンのカスタマイズ] をクリックします。

4. メインタブのリストで、「開発」を選択します(図 B)。

図B

開発タブを確認してください。
開発タブを確認してください。

5. 「OK」をクリックします。「開発」タブは「表示」タブと「ヘルプ」タブの間にあります。

VBAサブプロシージャを実行するには、「開発」タブの「コード」グループで「マクロ」をクリックします。図Cに示すダイアログが表示されたら、実行するプロシージャを選択し、「実行」をクリックします。

図C

実行する手順を選択します。
実行する手順を選択します。

このメソッドは、現在のファイルとPersonal.xlsb内のサブプロシージャにのみアクセスします。コードを実行せずにVBEを開くには、[コード]グループの[Visual Basic]オプションをクリックします。

[表示] タブを使用して同じ操作を行うこともできます。[表示] タブをクリックし、[マクロ] グループの [マクロ] をクリックします。

方法2: ExcelのボタンをクリックしてVBAサブプロシージャを実行する方法

「開発」タブのもう一つのグループは「コントロール」グループで、ボタンコントロールが含まれています。ボタンにプロシージャを割り当てて、クリックするだけでプロシージャを実行できます。

シートにボタン コントロールを追加するには、次の手順を実行します。

1. [開発] タブをクリックします。

2. [コントロール] グループで、[挿入] ドロップダウンをクリックし、最初のオプションの [ボタン] をクリックします。

3. シート内をドラッグしてボタンを配置します。すると、「マクロの割り当て」ダイアログが表示されます。

4. このボタンで実行するマクロを選択します(図D)。

図D

ボタンを、実行する VBA プロシージャに接続します。
ボタンを、実行する VBA プロシージャに接続します。

5. 「OK」をクリックします。

6. ボタンを選択したまま、ボタンのテキストを「Say Hello」に置き換えます。

ボタンをクリックすると、図 Eに示すように、「Hello」というテキストを含むメッセージ ボックスを表示するプロシージャが実行されます。

図E

ボタンをクリックして手順を実行します。
ボタンをクリックして手順を実行します。

方法3: Excelでキーボードショートカットを使用してVBAサブプロシージャを実行する方法

キーボードショートカットは、日常的なタスクのショートカットとして利用でき、ほとんどの人はいくつかのお気に入りのショートカットを持っています。私の場合はCtrl + Z(元に戻す)です。一日を通して何度も使います。VBAのサブプロシージャにショートカットを割り当てるには、次のようにします。

1. [開発] タブをクリックします。

2. [コード] グループで、[マクロ] をクリックします。

3. 表示されるダイアログで手順を選択し、「オプション」をクリックします。

4. Ctrlキーと併用する文字をキーボードから入力します(図F)。ここではZと入力しました。

図F

キーボードショートカットを完成させるキーボード文字を指定します。
キーボードショートカットを完成させるキーボード文字を指定します。

5. 「OK」をクリックします。

6. [キャンセル] をクリックして、マクロ ダイアログ ボックスを閉じます。

VBA プロシージャを実行するには、Ctrl + Z キーを押すか、手順 4 で入力した文字を押します。

この方法には小さな注意点があります。手順4で既にキーボードショートカットで使用されている文字を入力すると、既存のショートカットがキャンセルされ、Excelは警告を表示しません。後で見落としてしまう可能性のあるものを上書きしてしまわないように、事前に組み合わせをテストすることをお勧めします。

元に戻したいものを上書きしてしまった場合は、作成時と同じ方法でショートカットを削除しますが、手順 4 の文字を削除します。そうすることで、Excel は元のショートカットを再び使用できるようになります。

方法4: Excelで図形をクリックしてVBAサブプロシージャを実行する方法

Officeアプリには、上記の2番目の方法と同様に、VBAプロシージャを実行するために使用できる図形がいくつか用意されています。図形を挿入し、そこにプロシージャを接続するだけです。では、試してみましょう。

1. [挿入] メニューをクリックします。

2. [イラスト] グループで、[イラスト] ドロップダウンをクリックし、[図形] を選択します。

3. 「マクロボタン」を表す図形をクリックします。私は楕円を選択しました。

4. シート内をクリックしてドラッグし、この図形のサイズと位置を調整します。

5. 図形を右クリックし、表示されるサブメニューから「マクロの割り当て」を選択します (図 G )。

図G

サブメニューから「マクロの割り当て」を選択します。
サブメニューから「マクロの割り当て」を選択します。

6. 表示されたダイアログで、マクロを選択します。

7. [マクロの場所] ドロップダウンから、[このブック] を選択します (図 H )。

図H

VBA プロシージャを選択します。
VBA プロシージャを選択します。

手順を実行するには、図形をクリックするだけです。

VBAのサブプロシージャを実行する方法は多数あります。これらの方法は関数プロシージャの実行には使用できません。

クイック アクセス ツールバーやリボンのカスタム グループから VBA プロシージャを実行することもできます。これらの方法の詳細については、「クイック アクセス ツールバーに Office マクロを追加してクイック アクセスする方法」をご覧ください。

Tagged: