ユーザーフォームに配置したラベル名「Label1」が、フォーム表示と同時に名前や日付などに自動的に表示を変えることができるのをご存知ですか?
方法は簡単で指定したセルの値を読み込ませてから表示させるように、エクセルのVBAコードを書き込むだけなのでご紹介します。
ユーザーフォーム(UserForm)
オリジナルの入力フォームが作れるユーザーフォームの基本表示方法からおさらいです。
ここでは、ユーザーフォームに配置したコマンドボタンにVBAコードを配置することを前提に書きます。
ユーザーフォームを表示する
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
- コマンドボタン1がクリックされたら
- ユーザーフォーム1を表示する
- マクロ記録終了
ユーザーフォームを閉じる
Private Sub CommandButton1_Click()
Unload UserForm1
End Sub
- コマンドボタン1がクリックされたら
- ユーザーフォーム1を閉じる
- マクロ記録終了
ユーザーフォームを閉じて別のユーザーフォームを表示する
Private Sub CommandButton1_Click()
Unload UserForm1
UserForm2.Show
End Sub
- コマンドボタン1がクリックされたら
- ユーザーフォーム1を閉じる
- ユーザーフォーム2を表示する
- マクロ記録終了
ここまでが基本的なユーザーフォームほ表示・閉じる方法です。
次にユーザーフォームを開く時に、配置されているラベル名をセルの値から読み込んで表示させるようにしましょう。
ユーザーフォームを開く時にラベル名を書き換えて表示
VBAコードは、上から順番にプログラムを実行しますので、UserForm2.Showの前に読み込むVBAコードを書かなくてはいけません。
ここでは、ユーザーフォーム1に配置されたコマンドボタン1を押すと、セルA1の値を読み込んでラベル1を書き換えてからユーザーフォーム2を表示する方法です。
Private Sub CommandButton1_Click()
Unload Me
UserForm2.Label1.Caption = Range(“A1”).Value
UserForm2.Show
End Sub
- コマンドボタン1がクリックされたら
- 表示中のユーザーフォームを閉じる(UserForm1を省略してMe)
- ユーザーフォーム2に配置したラベル1の名前をセルA1の値とする
- ユーザーフォーム2を表示する
- マクロ記録終了
となり、これでユーザーフォーム2が表示されるとラベル名がセルA1の値に書き換えられて表示されます。
ところが、実際にはユーザーフォームに配置されたラベルは1個って事ありませんので、並べて複数書き換えることも可能です。
ラベル書き換えが複数
ここではラベル3つを書き換える方法ですが、これぐらいの数ならばWithステートメントでまとめて書いても平気ですよね。
Private Sub CommandButton1_Click()
Unload Me
With UserForm2
.Label1.Caption = Range(“A1”).Value
.Label2.Caption = Range(“A2”).Value
.Label3.Caption = Range(“A3”).Value
End With
UserForm2.Show
End Sub
- コマンドボタン1がクリックされたら
- 表示中のユーザーフォームを閉じる
- ユーザーフォーム2の下記操作をする
- ラベル1の名前をセルA1の値とする
- ラベル2の名前をセルA2の値とする
- ラベル3の名前をセルA3の値とする
- Withステートメント
- ユーザーフォーム2を表示する
- マクロ記録終了
ただ、このラベルの数が30個ぐらいあったら、かなり面倒なので繰り返し処理を使うと楽ですよ。
Private Sub CommandButton1_Click()
Unload Me
For i = 1 To 30
With UserForm2.Controls(“Label” & i)
.Caption = Cells(i, 1).Value
End With
Next i
UserForm2.Show
End Sub
- コマンドボタン1がクリックされたら
- 表示中のユーザーフォームを閉じる
- 繰り返し処理の変数「i」を宣言し、変数は1~30とする
- ユーザーフォーム2に配置したラベル「i」の
- 文字をセルi行目の1列目(A列)の値とする
- Withステートメント終了
- 指定回数、繰り返し処理をする
- ユーザーフォーム2を表示する
- マクロ記録終了
このようにすると、書き換えたいラベルが複数あっても簡単にVBAコードを書くことができてしまいますので、ぜひマスターしてくださいね。

ラベルは本来はテキストボックスなどの用途を知らせるだけなのですが、使い方次第で意外と便利なアイテムになりますよ。
関連記事
-
VLOOKUPをVBAラベルを活用してデータ検索・修正をする方法
【ラベル(Label)にVBAコードを記述する】 ボウリング成績表でも使っているユーザーフォームに配置した文字を表示するための「ラベル(Label)」にも、実はVBAコードを… -
2つ別々のセルの値を1つのラベルに結合して表示するVBA
ユーザーフォームに配置したラベル(Label)を使う時は、テキストボックスなどと一緒に説明書きやタイトルに使う事が多いですが、ラベル名(キャプション)を検索結果や… -
複数のラベル名を一括で複数のセルの値に書き換える方法
【ラベルキャプションをセルの値から一括取得】 ボウリングの大会や予約でASで名前登録作業を行っていて、一人目の名前を入れると、空欄の部分に登録した名前が表示され… -
ユーザーフォームを開く時にラベルの名前を書き換えて表示する方法
ユーザーフォームに配置したラベル名「Label1」が、フォーム表示と同時に名前や日付などに自動的に表示を変えることができるのをご存知ですか? 方法は簡単で指定したセ…
紅葉スポット
-
榛名山からの景色や榛名湖の湖面に反射する紅葉したもみじへ
榛名山の麓の榛名湖は火山の噴火でできたカルデラ湖で周囲の榛名公園には、もみじが植えられていて秋になると真っ赤に染まります。 そして榛名山も夏の緑から紅葉の時期… -
旧碓氷峠見晴台へバスで旧軽井沢駅から紅葉展望へ滞在時間20分
軽井沢と言えば長野県ですが、旧碓氷峠見晴台は長野県と群馬県の県境に位置するのですが、群馬県の観光スポットというよりは、長野県ですね。 ここ旧碓氷峠見晴台からは… -
日光駅から避暑地で紅葉名所の日光三名瀑の霧降の滝へバスで滞在時間30分
【紅葉見頃】10月下旬~11月上旬 日光三名瀑「華厳の滝」「裏見の滝」「霧降の滝」といわれ、年間を通じて観光に訪れる人が多い近畿スポットで、夏は避暑地として秋は… -
片品村「菅沼」の紅葉へ奥日光湯元温泉から無料バスで紅葉穴場へ
全国屈指の透明度を誇る菅沼に周囲の山々の色づいた木々が鏡のように反射する紅葉絶景が見られる、穴場紅葉スポットです。 菅沼には電車とバスを利用していくことができ… -
白馬岩岳の絶景「三段紅葉」へ長野駅からバスで滞在時間140分
10月下旬ごろ~11月上旬になるとテレビなどでよく話題になる絶景のビューポイントで、北アルプスの山頂が雪化粧をして赤く色づいた山麓、そして山のふもとはまだ緑色が… -
妙義山パノラマパーク紅葉へバスで上州富岡駅から滞在時間35分
山が多い群馬県の中でも、赤城山・榛名山とともに妙義山を合わせて上毛三山と呼ばれる群馬県代表の山で、日本三大奇勝でもあり、岩肌が切り立った景観が特徴でもありま…