【Excel VBA】ユーザーフォームを使ってみよう3

前回はフォームのデザインまで作ることができました。
今回は「ボタン」にプログラムを登録していきます。

前回の記事はこちら

ユーザーフォームのデザインを作成しています。

「ボタン」にプログラムを登録しよう

前回までここまで作成しましたね。
現状「足し算」と書かれたボタンを押しても何も起こりません。
では早速プログラミングをして、動作(プログラム)を登録していきましょう。

VBAを開く

VBAを開いて「UserForm1」の画面を表示しましょう。

次に「足し算」ボタンをダブルクリックしてみてください。

そうするとこのような画面に移ると思います。

右クリックから「コードの表示」を選択しても同じような画面に移ります。
ならなかった方はこちらも試してみてください。

プログラミングしてみよう

今回は下記のコードをそのまま貼り付けてみましょう。

Private Sub CommandButton1_Click()

 Dim a As Integer
 Dim b As Integer
  
   a = TextBox1
   b = TextBox2
   
   Range("B2") = a + b

End Sub

書き方は様々あると思いますが、今回はこれで行きたいと思います。
後ほど解説していきますね。

はい。こんな感じにコピペできたでしょうか?
ではボタンを押して確認してみましょう。

実行してみよう

「B2」セルに足し算の結果が表示されれば成功です。
ならなかった方は抜け漏れがないかコードを確認してください。

コードの説明

上から順番に見ていきましょう。

Private Sub CommandButton1_Click()

--------------------------------------
Private Sub CommandButton1_Click()
--------------------------------------
 Dim a As Integer
 Dim b As Integer
  
   a = TextBox1
   b = TextBox2
   
   Range("B2") = a + b

End Sub

「Private Sub CommandButton1_Click()」は

「CommandButton1」を「Click(クリック)」した時。という意味になります。

「CommandButton1」とは?

「足し算ボタン」のプロパティを見ると「オブジェクト名」のところに「CommandButton1」とあります。

同様に左のテキストボックスの「オブジェクト名」に「TextBox1」
右のテキストボックスには「TextBox2」とあります。

このようにオブジェクト(フォームに配置したもの)には、それぞれ「オブジェクト名」というものがあります。
それぞれ振り当てられた「オブジェクト名」をVBAで記述することで、入力された値を取得したり、処理を実行させることが出来ます。

Dim a As Integer

Private Sub CommandButton1_Click()
--------------------------------------
 Dim a As Integer
--------------------------------------
 Dim b As Integer

   a = TextBox1
   b = TextBox2
   
   Range("B2") = a + b

End Sub

「Dim a As Integer」は

「変数の宣言」をしています。
「a」という変数を「Integer(整数型)」として扱います。という宣言になります。

「変数の宣言」をしなかった場合

入力した「10」が「文字列型」として扱われてしまい「10」と「10」で「1010」になります。

「○○型」は他にもあるので興味のある方は調べてみてくださいね。

a = TextBox1

Private Sub CommandButton1_Click()

 Dim a As Integer
 Dim b As Integer
--------------------------------------
   a = TextBox1
--------------------------------------
   b = TextBox2
   
   Range("B2") = a + b

End Sub

「a = TextBox1」は

「a」に「TextBox1」に入力された値を代入する。という意味です。
先ほど説明した様に「TextBox1」は、左のテキストボックスの「オブジェクト名」なので「a」には左のテキストボックスに入力した「10」が代入されます。

同様に「b」には右のテキストボックスの値が入ります。
今回は「a」と同じ「10」ですね。

Range(“B2”) = a + b

Private Sub CommandButton1_Click()

 Dim a As Integer
 Dim b As Integer

   a = TextBox1
   b = TextBox2
--------------------------------------
   Range("B2") = a + b
--------------------------------------
End Sub

「Range(“B2”) = a + b」は

「Range(“B2”) (B2セル)」に「a」と「b」を足したものを入力する。という意味です。
「a」と「b」には同じく「10」が代入されているので、「B2セル」には「10」+「10」の結果である「20」が入力されます。

まとめ

以上で「ユーザーフォームを使ってみよう」は終了になります。
自分も勉強途中ですが、こんなの出来ないの?とか、ここはこうしたほうが良いよ!などありましたら下のコメント欄に書き込んで頂けると嬉しいです。
よろしくお願いします。それではまた。

  • X

【Excel VBA】ユーザーフォームを使ってみよう3” に対して1件のコメントがあります。

【Excel VBA】ユーザーフォームを使ってみよう2 | ANDoblog へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です