プログラミング

【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

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

関連記事

ローカル掲示板①

今回はPHPの学習を兼ねて掲示板を作っていきます。 ①ベース作成 まずは掲示板のベースを作っていきます。HTMLを使いますね。 とりあえずこんな感じにします。 <!DOCTYPE html&gt …

【Python】別のファイルを読み込んでみよう

Pythonでは「別のpyファイル」を読み込んで、そこに記述してある「変数」や「関数」などを使うことができるようです。 今回はその「インポート方法」を見ていきましょう。 別のpyファイルをインポートし …

【エクセル】で「ちょこっとプログラミング」基礎編#1

プログラミングをしたことのない人向けにExcelでできる「ちょこっとプログラミング」を紹介します。今回は【基礎】として「セルとは?」と「セルの値を取得する」を題材にやっていきます。 セルとは エクセル …

【Python】Flask-WTFを使ってみる①

今回は「Flask-WTF」について紹介していきます。これはFlaskでアプリを作成する際に、簡単に「フォーム(Form)」を作成できるものです。実際に試していきたいと思います。 Flask-WTFを …

【Python】VBAをPythonで再現してみる②

前回に引き続き「VBA」の動きを「Python」で再現していきます。今回は、セルの値を「繰り返し」取得して行きたいと思います。 セルの値を繰り返し取得しよう 前回はセルの値を取得し、メッセージボックス …

YouTube