ラベルの表示をセルの値で自由に表示させたいと思いませんか?
例えば、今日の日付をユーザーフォームに配置したラベルに表示させるなら、日によって変わらなくちゃいけないですもんね。
プロパティで変更可能だけど、VBAコードで手短に設定したいですよね。
ラベルがセルの値に応じて自由自在に表示変更
ユーザーフォームのラベル(Label)とは、フォーム上に文字列を表示する為のコントロール(部品)です。
ラベルには直接文字入力などをするものではありませんが、フォーム上のお題(タイトル)や他のコントロールの説明書きなどに利用することが多いですね。
このラベルの名称変更は、ラベルコントロールのプロパティにあるCaptionで変更可能ですが、ちょっとした工夫しだいでとても便利なパーツになりますので、セルの値からラベル名を替えちゃいましょう。
ラベル名を文字列で設定する
あくまで基本だと思って見てください、このような使い方はしないのですが、コマンドボタンを押すと「エクセルを学ぼう」とユーザーフォームに配置したラベルの文字列が表示変更されます。
1つのラベル名をセルの値から取得
これも実際にはこんな使い方はしないのですが、コマンドボタンを押すとラベル1の表示がセルA1の値になります。
2つのラベル名をそれぞれセルの値から取得
並べただけでできるようになるのでとても簡単ですね。
これぐらいの数なら楽だけどたくさんあったら大変なのですが、根気よくこのまま書き続けても問題はありませんよ。
もしラベル100個あったらどうしますか?
複数のラベルをまとめてセルの値で表示する
では、実際に使う例としては、エクセル住所録でも実践しているのですが、フリガナ検索の時に使います。
スズキさんでフリガナ検索したら、該当した全ての鈴木さんが表示されるようにラベルをセルの値からまとめて表示しています。
住所録に必ず複数いる多い苗字ですもんね、一覧表として表示されると便利ですよ。
これで上図の左のラベル1~20が該当した鈴木さん6名の数字(顧客番号)が変わりました。
残り14名分は該当なし=空白セルとしたので、ラベル表示も消えました。
上右の図は顧客番号と名前になっているのでラベル21~40の名前も一緒にVBAコードに書き足しましょう。
このように変数iは同じなのでラベルを書き換えるWithステートメントのみ繰り返せば完成です。
データ検索してリストアップされた値をまとめてラベル表示
ラベルをセルの値で表示する方法をマスターしたら、ここでもお話しした鈴木さん住所録からリストアップして、ラベルにまとめて表示するという事をコマンドボタン1つにVBAコードを書いています。
鈴木さん検索➡リストアップ➡ラベルに表示
という流れで、エラー回避など下記項目を追加してフリガナ検索しています。
- フリガナ入力忘れて誤クリック時のエラーメッセージ
- 該当者がいない場合のメッセージ
- 検索フォームを閉じてリストフォーム表示
- リストアップ時に画面のチラつき防止処理
以上4つを加えてエクセル住所録を作成しているので、先ほどのサンプルコードと微妙に異なります。
長すぎるVBAコードですよね。
でもこれで、目的がボタン1回押すだけで瞬時に表示するので仕事効率化できていますよ。
詳しくは住所録作成ページに記載しております。
意外と知らないラベルの活用法
ユーザーフォームのラベルはコマンドボタンやテキストボックスと並び、使用頻度の高いので早くマスターしてくださいね。
そしてこのラベルは文字列を表示するコントロールなので、直接入力できませんがタイトルや説明文などに使います。
ここまでが基本ですが、実はラベルをクリックするとVBAコードを書くことができるようになっています。
これを利用して、更にラベルに表示された顧客番号をクリックすると、次の展開に行けるようにしてあります。
顧客番号が分からなかったからエクセル住所録のデータ修正ができなかったので、フリガナで検索して番号が確認できました。
いちいち番号を覚えておいてユーザーフォームを切り替えて修正フォームに改めて番号入力って手間だと思いませんか?
ラベルをクリックしたら番号が入力されている状態で修正フォームが開けば理想ですよね。
こうすれば実現できます。
意外と単純だと思いませんか?これなら活用できそうですよね。
ラベルプロパティ設定でCaptionを設定
テキストボックスのタイトルや説明文にラベルを使うならば、セルの値から取得する必要がない事もあります。
そのような場合は、わざわざVBAコードを使うのではなく、ラベルのプロパティで簡単に設定しましょう。
1、名前を変更したいラベルをクリック
2、プロパティウィンドウが左下に表示されます
3、文字列の変更はCaptionをクリック
「Label1」を任意の文字列に書き換えれば完成です。
ユーザーフォームでオリジナルフォーム作ろう
エクセルの作業時間を短縮して効率よく作業を可能にする「ユーザーフォーム」を使いこなすには、基本を押さえておきましょう。
1日400人ぐらいの方が見ていただいている意外と人気ページなんです。
文字を入力するのに絶対使うTextBox
ユーザーフォームにテキストボックスを使わないで済むのは、確認画面ぐらいかな?
テキストボックスとセルをリンクさせる様々な方法を組み合わせれば、作業時間はあっという間に短縮できます。
文字列だけじゃない!Labelもクリックできるので可能性大
ラベルといえばテキストボックスの説明として文字列で表示させるのが、基本の使い方ですがクリックするとプログラムを実行させることもできるのです。
工夫次第でできることは無限大に広がります。
どんなVBAコードをコマンドボタンに記述しますか?
ボタンをクリックすると記述したプログラムが作動して、繰り返し作業や手間がかかったことが一瞬で完了させることができます。
あんなこともこんなこともできちゃいますよ。
ご覧いただきありがとうございます。
ブログランキングに登録しています。
少しでもお役に立てれば幸いで、参考になったようでしたら応援よろしくお願いします。
エクセルの勉強お疲れ様です。ちょっとひと休みしませんか?