かっきぃーの雑記帳

おもしろき こともなき世に おもしろく

ユーザーフォームの初期化(Initialize)[とりあえず使えるエクセルユーザーフォーム超入門]

Lesson3 これだけは覚えておきたい基本機能

これまでに紹介した方法ではユーザーフォームを表示させた際に、あらかじめ設定した固定値しか表示できませんが、例えば、「数値や文字列を入力するための テキストボックス(TextBox)」で紹介した「初期値を表示しておく」でも触れたように、前回入力した内容を初期値としてテキストボックスに表示しておくなど、状況によっては初期値を変更したい場合があります。そんな時に便利な機能がこれから紹介するイニシャライズ機能(Initialize)です。

 

スポンサーリンク

 

 

具体的には対象となるユーザーフォームのコードに下記のプロシージャ(Private Sub UserForm_Initialize() ~ End Sub)を追加します。今回はTextBox1にセル(A1)の値をあらかじめ割り当てておくこととします。

Private Sub UserForm_Initialize()
   'テキストボックスにセル(A1)の値を入力
   TextBox1.Value = Range("A1")
End Sub

ラベルでも同様にプロパティの設定とは異なる変更を加えることができます。今回は文章(Caption)と文字色(ForeColor)、文字サイズ(Font.Size)を変更します。

Private Sub UserForm_Initialize()
   'テキストボックスにセル(A1)の値を入力
   TextBox1.Value = Range("A1")
   'ラベル1の設定を変更
   Label1.Caption = "★★★を入力してください。"  '説明文の変更
   Label1.ForeColor = "&HFF0000"  'フォント色を変更
   Label1.Font.Size = "8"  'フォントサイズを変更
End Sub

なお、フォント色の設定値はRGBのそれぞれの値を使って、
"&H"+"FF(Blue)"+"00(Green)"+"00(Red)の形式で入力します(RGBの順番が逆になります)。

また、Label1のように複数の設定を同時に変更する場合はWith文が便利です。このWith文はフォームだけでなく、エクセルVBAマクロ全般的に広く使用できる便利な構文なので、是非使えるようにしておきましょう。

Private Sub UserForm_Initialize()
   'テキストボックスにセル(A1)の値を入力
   TextBox1.Value = Range("A1")
   'ラベル1の設定を変更
   With Label1
     .Caption = "★★★を入力してください。"  '説明文の変更
     .ForeColor = "&HFF0000"  'フォント色を変更
     .Font.Size = "8"  'フォントサイズを変更
   End With
End Sub

スポンサーリンク

 
複数のユーザーフォームで変数を共有する パブリック変数(Public)

              8     10   11   12   13   14

とりあえず使えるエクセルユーザーフォーム超入門(もくじ)

 

スポンサーリンク

 


#エクセル #Excel #ユーザーフォーム #マクロ #VBA