Excel VBAでシート上のボタンをクリックしてフォームを表示し、VBAを実行する方法

Visual Basic

Excel VBAを使って、シート上に配置したボタンをクリックするとフォームが表示され、そのフォーム内のOKボタンをクリックしてVBAを実行する処理を作成したい方に向けた解説です。この記事では、ボタンの作成からフォーム表示、そしてOKボタンでVBAを実行するまでの流れを詳しく説明します。

シート上のボタンを作成する

まず、Excelの開発タブから「挿入」を選択し、「フォームコントロール」の中から「ボタン」を選びます。このボタンをシート上に配置することで、ユーザーがクリックできるボタンを作成できます。

ボタンを配置した後、ボタンを右クリックし「マクロの登録」を選択します。ここで、ボタンをクリックした時に実行するマクロを指定しますが、この時点ではまだマクロは作成していませんので、後でVBAコードを追加します。

フォームの作成と設定

次に、VBAで表示させるフォームを作成します。VBAエディタを開き、挿入メニューから「ユーザーフォーム」を選択して、新しいフォームを作成します。フォームには必要なコントロール(例えば、テキストボックス、ボタンなど)を配置します。

フォーム内のOKボタンに、VBAコードを設定します。OKボタンをダブルクリックして、ボタンがクリックされた時に実行するVBAコードを記述します。例えば、フォームが閉じると同時に特定の処理を実行する場合、次のようなコードを記述します。

Private Sub CommandButton1_Click()    ' VBA処理を実行    MsgBox "処理が実行されました!"    Unload Me ' フォームを閉じるEnd Sub

ボタンをクリックしてフォームを表示する

シート上のボタンをクリックした時にフォームを表示させるためには、ボタンのマクロにフォームを表示するコードを追加します。マクロに以下のコードを追加します。

Sub ShowForm()    UserForm1.ShowEnd Sub

これで、ボタンがクリックされると、作成したフォームが表示されます。フォーム内のOKボタンをクリックすると、フォームに設定したVBAコードが実行されます。

デザインモードでの設定について

質問者が言及した「デザインモード」についてですが、これはフォームやコントロールをデザインするためのモードで、実際にボタンをクリックして動作を確認するためには、デザインモードを解除する必要があります。デザインモードを解除するには、開発タブの「デザインモード」のボタンをオフにしてください。

まとめ

Excel VBAを使って、シート上のボタンをクリックし、フォームを表示して、フォーム内のOKボタンでVBAを実行する方法は、ボタン作成、フォーム設定、マクロ作成を組み合わせることで実現できます。デザインモードを適切に使いこなし、フォームとボタンに正しいVBAコードを設定すれば、ユーザーインターフェースが一層便利になります。

コメント

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