ユーザーフォームに配置したラベル名「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コードを書くことができてしまいますので、ぜひマスターしてくださいね。
ラベルは本来はテキストボックスなどの用途を知らせるだけなのですが、使い方次第で意外と便利なアイテムになりますよ。
関連記事
-
ラベル
複数のラベル名を一括で複数のセルの値に書き換える方法
ラベルキャプションをセルの値から一括取得 ボウリングの大会や予約でASで名前登録作業を行っていて、一人目の名前を入れると、空欄の部分に登録した名前が表示され、二… -
ラベル
2つのセルの値を足し算など加減乗除してラベル名に表示させるVBA
ユーザーフォームに配置したラベルの文字をプロパティのキャプションで指定するのではなく、セルの値を取得して表示させたいことありませんか? そしてさらに、2つのセ… -
ラベル
2つ別々のセルの値を1つのラベルに結合して表示するVBA
ユーザーフォームに配置したラベル(Label)を使う時は、テキストボックスなどと一緒に説明書きやタイトルに使う事が多いですが、ラベル名(キャプション)を検索結果や… -
ラベル
VLOOKUPをVBAラベルを活用してデータ検索・修正をする方法
ラベル(Label)にVBAコードを記述する ボウリング成績表でも使っているユーザーフォームに配置した文字を表示するための「ラベル(Label)」にも、実はVBAコードを記述… -
ラベル
ユーザーフォームを開く時にラベルの名前を書き換えて表示する方法
ユーザーフォームに配置したラベル名「Label1」が、フォーム表示と同時に名前や日付などに自動的に表示を変えることができるのをご存知ですか? 方法は簡単で指定したセ…
紅葉スポット
-
縁起だるま発祥の少林山達磨寺境内の真っ赤に染まる紅葉景色へ
【紅葉見頃】11月下旬~12月上旬 高崎市内循環バス「ぐるりん」バスのフリーエリア内にあるので、縁起だるま発祥の少林山達磨寺へ紅葉の時期になったら訪れてみてはい… -
群馬甘楽町の紅葉山公園へのバスが廃止でも1回500円の愛タク利用へ
【紅葉見頃】11月上旬~11月中旬 富岡市のコミュニティーバスが2020年で廃止になり利用しづらくなりましたが、代わりに2021年から登場したデマンドタクシーがあるので… -
2023年茨城紅葉スポットへ魅力度再び最下位!空いている穴場へ
紅葉と言えば日光や箱根が有名ですが、あえて茨城県を探すのは混雑や密を避けたいと思ったからですよね。 実は知られていないだけで探してみるとたくさん茨城紅葉スポッ… -
開業90年を超えても現役の日光いろは坂にある明智平ロープウェイ
日光駅や日光東照宮がある市街地と奥日光を結ぶいろは坂の終盤にある位置する「明智平」は、トイレや売店があるドライブインと呼んだ方がいい所なのですが、日光エリア… -
中禅寺湖湖畔の紅葉散策へ奥日光の大定番紅葉観光スポットへ
中禅寺湖観光の中禅寺温泉バスターミナルから華厳の滝や中禅寺湖畔散策へ紅葉を楽しみに訪れる方も多く、紅葉見頃になるといろは坂からの大渋滞に巻き込まれ1時間以上、… -
茨城県大子町の永源寺へ常陸大子駅から徒歩圏内の紅葉スポットへ
【紅葉見頃】 茨城県の大子町に紅葉名所の「永源寺」があり、境内を埋め尽くすほどのもみじの木があることから「もみじ寺」と呼ばれています。 近くには名瀑で有名な…