プログラミング

【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」が入力されます。

まとめ

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

-プログラミング
-

執筆者:


  1. […] 【Excel VBA】ユーザーフォームを使ってみよう3 […]

comment

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

関連記事

【Python】加工した画像を保存してみよう

これまで「OpenCV」を使って、画像の読み込み、表示、リサイズなどを実践してきました。今回は、その加工した画像を保存してみたいと思います。 加工した画像を保存してみよう 今回も、前回のコードに追記す …

【Python】掲示板に「削除機能」を追加してみた①

以前作成した「Flask掲示板」に、投稿を削除する機能を追加してみました。「Flask-WTF」と「SQLAlchemy」を使ったものです。今回は、コードと機能を紹介したいと思います。 掲示板に「削除 …

【Python】ログイン機能を作る「Flask-Login」⑧

「ログイン機能を作る」の【Part8】いってみましょう。前回は「ログイン処理」を変更しました。今回からは「新規アカウント作成」の機能を作っていこうと思います。 アカウントの登録機能を作ろう では「アカ …

【SQLite】DBブラウザを使ってみよう

「SQLite」を「GUI」で管理できるものがあることを知りました。それが「DB Browser for SQLite」です。今回はこの「DBブラウザ」について紹介します。 DBブラウザを使ってみよう …

HTMLの要素

ほとんどのサイトがHTMLという言語で出来ており複数のコードによって作られていましたね。今回はコードの中身で使用される要素というものについて書いていきます。 要素の役割 コードを記述するうえで必要な知 …

YouTube