コントロールのオブジェクト名を変更する

ユーザーフォームやコントロールに対して VBA を使ってプログラムを行うとき、それぞれのコントロールに付けられたオブジェクト名を使用します。ユーザーフォームにコントロールを設置したときにデフォルトのオブジェクト名が自動的に付けられますがあとから変更することができます。ここでは Excel のプロパティウィンドウを使ってユーザーフォームやコントロールのオブジェクト名を変更する方法について解説します。

(Last modified: )

オブジェクト名を変更する

ユーザーフォームやコントロールのオブジェクト名を変更する方法です。ユーザーフォームのオブジェクト名を変更する場合は、ユーザーフォームの何もないところをクリックしてください。プロパティウィンドウの「オブジェクト名」のところに現在設定されているオブジェクト名が表示されます。

オブジェクト名を変更する(1)

現在このユーザーフォームのオブジェクト名は「UserForm1」になっていることが確認できます。

ユーザーフォームに設置されている各コントロールのオブジェクト名を確認するには、対象のコントロールをクリックして選択してください。プロパティウィンドウの「オブジェクト名」のところに現在設定されているオブジェクト名が表示されます。

オブジェクト名を変更する(2)

オブジェクト名を変更する(3)

テキストボックスのオブジェクト名は「TextBox1」、コマンドボタンのオブジェクト名は「CommandButton1」になっていることが確認できます。

オブジェクト名を変更するには、プロパティウィンドウの「オブジェクト名」のところをクリックし、そのあとで値の部分を直接編集してください。例としてコマンドボタンのオブジェクト名を「cmdOK」に変更してみます。対象のコマンドボタンを一度クリックしてから、プロパティウィンドウの「オブジェクト名」の個所をクリックします。

オブジェクト名を変更する(4)

右側に表示されている値を「cmdOK」に直接編集します。

オブジェクト名を変更する(5)

オブジェクト名を変更することができました。なおオブジェクト名には英数字、漢字、アンダーバーなどが利用できます。ただし先頭はアルファベットや漢字など文字でなければなりません。

テキストボックスのオブジェクト名も「txtName」に変更しました。

オブジェクト名を変更する(6)

コントロールに表示される文字列とオブジェクト名は別のものなのでご注意ください。デフォルトではオブジェクト名と同じ文字列がデフォルトの値としてコントロールに表示されていることが多いですが、コントロールに表示される文字列の設定は Caption プロパティで設定します。

オブジェクト名をプログラムの中で使用する

先ほどコントロールのオブジェクト名を変更しましたが、 VBA を使ったプログラムの中でオブジェクト名がどのように使われるのか簡単なサンプルを作ってみます。

ユーザーフォームに設置したコマンドボタンの上で右クリックし、表示されたメニューの中から「コードを表示」をクリックしてください。(コントロールをダブルクリックしても同じ結果になります)。

オブジェクト名をプログラムの中で使用する(1)

コードウィンドウに次のように表示されます。

オブジェクト名をプログラムの中で使用する(2)

コマンドボタンをクリックしたときに実行する処理を Private Sub CmdOK_Click() から End Sub までの間に記述します。今回は次のように記述しました。

Private Sub cmdOK_Click()
    Range("B2").Value = txtName.Value
End Sub

オブジェクト名をプログラムの中で使用する(3)

ここでそれぞれのコントロールに設定したオブジェクト名が使用されます。 cmdOK オブジェクトがクリックされたら txtName オブジェクトに入力された値を取得し、 B2 セルに代入します。結果としてボタンがクリックされたらテキストボックスに入力された値を B2 セルに代入します。

このようにプログラムの中で各コントロールを識別するときに使用される名前がオブジェクト名となりますので、どのオブジェクトなのか分かりやすいオブジェクト名を設定されるようにしてください。

それでは実際に実行してみます。「実行」をクリックし、表示されたメニューの中から「Sub/ユーザーフォームの実行」をクリックしてください。

オブジェクト名をプログラムの中で使用する(4)

Excel のワークシートにユーザーフォームが表示されます。

オブジェクト名をプログラムの中で使用する(5)

テキストボックスに名前を入力し、そのあとでボタンをクリックしてください。

オブジェクト名をプログラムの中で使用する(6)

B2 セルにテキストボックスに入力した名前が代入されました。

オブジェクト名をプログラムの中で使用する(7)

-- --

Excel のプロパティウィンドウを使ってユーザーフォームやコントロールのオブジェクト名を変更する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。