ユーザーフォームに配置したラベル名「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コードを書くことができてしまいますので、ぜひマスターしてくださいね。
ラベルは本来はテキストボックスなどの用途を知らせるだけなのですが、使い方次第で意外と便利なアイテムになりますよ。
関連記事
-
ラベル
ユーザーフォームを開く時にラベルの名前を書き換えて表示する方法
ユーザーフォームに配置したラベル名「Label1」が、フォーム表示と同時に名前や日付などに自動的に表示を変えることができるのをご存知ですか? 方法は簡単で指定したセ… -
ラベル
複数のラベル名を一括で複数のセルの値に書き換える方法
【ラベルキャプションをセルの値から一括取得】 ボウリングの大会や予約でASで名前登録作業を行っていて、一人目の名前を入れると、空欄の部分に登録した名前が表示され… -
ラベル
2つのセルの値を足し算など加減乗除してラベル名に表示させるVBA
ユーザーフォームに配置したラベルの文字をプロパティのキャプションで指定するのではなく、セルの値を取得して表示させたいことありませんか? そしてさらに、2つのセ… -
ラベル
VLOOKUPをVBAラベルを活用してデータ検索・修正をする方法
【ラベル(Label)にVBAコードを記述する】 ボウリング成績表でも使っているユーザーフォームに配置した文字を表示するための「ラベル(Label)」にも、実はVBAコードを… -
ラベル
2つ別々のセルの値を1つのラベルに結合して表示するVBA
ユーザーフォームに配置したラベル(Label)を使う時は、テキストボックスなどと一緒に説明書きやタイトルに使う事が多いですが、ラベル名(キャプション)を検索結果や…
紅葉スポット
-
電車とバスのフリーきっぷで行ける10月見頃の紅葉スポットへ
見頃順人気順10月見頃11月見頃12月見頃 【関東エリアの人気紅葉スポット】 関東地方で紅葉名所といえばなんといっても日光ですが、紅葉シーズンになると平日でもいろは… -
フリーきっぷで行く群馬県内の紅葉名所や穴場スポット21選
渋滞避けて電車とバスでのんびり紅葉を見に行きませんか?群馬県の山間部ならば9月中旬頃から紅葉が見られる名所・スポットがありますので、少し早い秋の訪れを感じに出… -
富津市の紅葉名所もみじロードへ上総湊駅や浜金谷駅からバスで行く
JR内房線の上総湊駅と浜金谷駅からバスで行くことができますが、もみじロードは10㎞もあるので歩いて全てを見ることはかなり難しいと思いますので、それぞれ行ける範囲… -
茨城県内の11月に見頃を迎えるおススメ紅葉スポット11選
【茨城県内の人気紅葉スポット】 関東地方で紅葉名所といえばなんといっても日光ですが、紅葉シーズンになると平日でもいろは坂は大渋滞なのに休日ともなると日光駅周辺… -
城峯公園で十月桜ともみじの紅葉のピンクと赤のコラボの絶景へ
群馬県との県境で標高500mにある高台に位置し、下久保ダム(神流湖)を眺めることができる城峯公園には、なんと晩秋から初冬にかけて開花し、別名十月桜とも呼ばれてい… -
龍王峡駅から徒歩で紅葉や虹見の滝へ鬼怒川温泉駅からバスなら10分
【紅葉見頃】10月下旬~11月中旬 鬼怒川温泉と川治温泉の間に位置して、鬼怒川沿いに龍王峡自然研究路をいう遊歩道が整備されているので、火山の噴火によってできた岩…