ユーザーフォームに配置したラベル名「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コードを書くことができてしまいますので、ぜひマスターしてくださいね。
ラベルは本来はテキストボックスなどの用途を知らせるだけなのですが、使い方次第で意外と便利なアイテムになりますよ。
関連記事
-
ラベル
2つのセルの値を足し算など加減乗除してラベル名に表示させるVBA
ユーザーフォームに配置したラベルの文字をプロパティのキャプションで指定するのではなく、セルの値を取得して表示させたいことありませんか? そしてさらに、2つのセ… -
ラベル
2つ別々のセルの値を1つのラベルに結合して表示するVBA
ユーザーフォームに配置したラベル(Label)を使う時は、テキストボックスなどと一緒に説明書きやタイトルに使う事が多いですが、ラベル名(キャプション)を検索結果や… -
ラベル
VLOOKUPをVBAラベルを活用してデータ検索・修正をする方法
【ラベル(Label)にVBAコードを記述する】 ボウリング成績表でも使っているユーザーフォームに配置した文字を表示するための「ラベル(Label)」にも、実はVBAコードを… -
ラベル
複数のラベル名を一括で複数のセルの値に書き換える方法
【ラベルキャプションをセルの値から一括取得】 ボウリングの大会や予約でASで名前登録作業を行っていて、一人目の名前を入れると、空欄の部分に登録した名前が表示され… -
ラベル
ユーザーフォームを開く時にラベルの名前を書き換えて表示する方法
ユーザーフォームに配置したラベル名「Label1」が、フォーム表示と同時に名前や日付などに自動的に表示を変えることができるのをご存知ですか? 方法は簡単で指定したセ…
紅葉スポット
-
フリーパスで12月の茨城紅葉スポットへ
【茨城県内の人気紅葉スポット】 関東地方で紅葉名所といえばなんといっても日光ですが、紅葉シーズンになると平日でもいろは坂は大渋滞なのに休日ともなると日光駅周辺… -
秩父長瀞紅葉へ不動の埼玉県ナンバーワンの紅葉スポットへ
東京から電車で2時間半ほどで長瀞駅からバスを使わなくても、秩父鉄道で長瀞の各観光スポットを巡ることができるので、車の運転ができなくてもたっぷり楽しめますよ。 … -
竜頭の滝の紅葉へ日光駅からバスで日光三名瀑を見に滞在時間60分
【紅葉見頃】 10月中旬~10月下旬 竜頭の滝といえば、奥日光の紅葉スポットとして大人気なので、コロナ前は訪日外国人と日本人で大混雑して、茶屋の中から見る竜頭の滝… -
けさかけ橋と小中大橋の狭い山道でバスも行けない秘境の紅葉名所へ
小さいの?大きいの?中くらいなの?って一瞬思ってしまう小中大滝(こなかおおたき)。 落差100mほどある滝で紅葉シーズンには鮮やかな絶景の中に水が落ちる景色を見る… -
日光白根山ロープウェイで標高1400mから2000mの紅葉遊覧へ
丸沼高原といえば首都圏から日帰りで行くことができるスキー場ですが、秋の紅葉シーズンになるとひと足早く木々が色づき、リフトから山頂へ向かえば紅葉絶景の景色が広… -
花園渓谷の花園神社紅葉ライトアップへ磯原駅から観光周遊バスで行く
茨城県の最北端にある北茨城市でもう少し北上すれば福島県という位置なので、東京からだとかなり遠いですが、山間部の花園花貫県立自然公園という名の通り大自然の中を…