ユーザーフォームに配置したラベル名「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つのセルの値を足し算など加減乗除してラベル名に表示させるVBA
ユーザーフォームに配置したラベルの文字をプロパティのキャプションで指定するのではなく、セルの値を取得して表示させたいことありませんか? そしてさらに、2つのセ… -
ラベル
複数のラベル名を一括で複数のセルの値に書き換える方法
ラベルキャプションをセルの値から一括取得 ボウリングの大会や予約でASで名前登録作業を行っていて、一人目の名前を入れると、空欄の部分に登録した名前が表示され、二… -
ラベル
ユーザーフォームを開く時にラベルの名前を書き換えて表示する方法
ユーザーフォームに配置したラベル名「Label1」が、フォーム表示と同時に名前や日付などに自動的に表示を変えることができるのをご存知ですか? 方法は簡単で指定したセ… -
ラベル
2つ別々のセルの値を1つのラベルに結合して表示するVBA
ユーザーフォームに配置したラベル(Label)を使う時は、テキストボックスなどと一緒に説明書きやタイトルに使う事が多いですが、ラベル名(キャプション)を検索結果や…
紅葉スポット
-
城峯公園で十月桜ともみじの紅葉のピンクと赤のコラボの絶景へ
群馬県との県境で標高500mにある高台に位置し、下久保ダム(神流湖)を眺めることができる城峯公園には、なんと晩秋から初冬にかけて開花し、別名十月桜とも呼ばれてい… -
国営武蔵丘陵森林公園の紅葉見ナイトの紅葉ライトアップへ
【紅葉見頃】 東京から電車で1時間ちょっとで東京ドーム65個分の広大な森林公園があり、中央口付近にあるカエデ園には500本のカエデが11月中旬~11月下旬にかけて紅葉… -
竜頭の滝の紅葉へ日光駅からバスで日光三名瀑を見に滞在時間60分
【紅葉見頃】 10月中旬~10月下旬 竜頭の滝といえば、奥日光の紅葉スポットとして大人気なので、コロナ前は訪日外国人と日本人で大混雑して、茶屋の中から見る竜頭の滝… -
フリーきっぷで行く千葉県内の紅葉名所や穴場スポット7選
10月中旬頃から始まる関東地方の紅葉も11月中旬過ぎると、ようやく千葉県内の紅葉名所ももみじが真っ赤に色づいて見頃になってきます。 千葉県内の紅葉は12月上旬まで楽… -
伊香保温泉365段の石段の先に紅葉ライトアップされた河鹿橋絶景へ
石段と温泉街で古くから観光客が多く訪れる伊香保温泉には、群馬県の紅葉スポット人気1位・全国でもトップクラスの紅葉スポットがあります。 石段をゆっくりと登ってい… -
茨城県大子町の永源寺へ常陸大子駅から徒歩圏内の紅葉スポットへ
【紅葉見頃】 茨城県の大子町に紅葉名所の「永源寺」があり、境内を埋め尽くすほどのもみじの木があることから「もみじ寺」と呼ばれています。 近くには名瀑で有名な…