VBA講座17 コマンドボタンにマクロを書き込みます

 前回の記事で作成したユーザーフォーム (UserForm) のコマンドボタン(実行ボタン)が押された時に実行されるマクロを書きます。まずは VBE画面のプロジェクトウィンドウから [フォーム] ⇒ [UserForm1] を選択し、作成したユーザーフォームを呼び出します。それから「実行ボタン」をダブルクリックしてください。

 VBA実行ボタンにマクロを設定

 すると、

 Private Sub CommandButton1_Click()

 End Sub

というコードだけ書かれた画面が現れます。ここに、コマンドボタンが押されたときに動作するマクロを書くことになります。
 

平方計算マクロ

 y = x^2 を計算するマクロです。

 Private Sub CommandButton1_Click()

 Dim x As Double, y As Double

 x = xtxt.Text
 y = x ^ 2

 ytxt.Text = y

 End Sub

 実行ボタンを押すとテキストボックスに入力された x の値から y = x^2 を計算してテキストボックスに出力します。

マクロの内容

 書き方はサブルーチンとほとんど同じです。前回、2つのテキストボックスの [オブジェクト名] を「 xtxt 」、「 ytxt 」と設定しましたので、

x = xtxt.Text

と記述して、 xtxt オブジェクトから Text プロパティで入力されたテキストの内容を取得しています。それから

y = x ^ 2

で x の2乗を計算し、

ytxt.Text = y

という記述でテキストボックスに y の値を入れます。
 

マクロの動作を確認します

 再びユーザーフォームの設定画面に戻って [F5] キーを押してみましょう。するとユーザーフォームが現れるので、x の値を適当に入力して実行ボタンを押してみてください。

 VBAユーザーフォームの動作確認

 たとえば「 10 」と入力すると「 100 」と表示されるはずです。
 

ユーザーフォームを呼び出します

 最後にもう1つだけ作業が残っています。それは「ユーザーフォームを呼び出すマクロ」を用意することです。これはたった3行書くだけで終わりです。

 Sub 平方計算フォーム呼び出し()

  UserForm1.Show (vbModeless)

 End Sub

 Show メソッドで UserForm1 を表示させています。( )の中の vbModeless は「モードレス状態」のことで、このように設定しておくと、ユーザーフォームが表示されているときもワークシートを操作することができます。( )を省略すると「モーダル状態」、すなわちフォーム以外の操作はできなくなります。その時々で使い分けるようにしてください。

 ≫ 2次方程式の解を求めるマクロ①
 ≫ 数学マクロ講座トップページへ戻る

スポンサーリンク
末尾広告
末尾広告

コメントをどうぞ

メールアドレスが公開されることはありません。