ユーザーフォームが表示されると自動的にセルの値がテキストボックスに表示される方法

Excel-VBA

オリジナル入力画面を作ることができるユーザーフォーム。

波乗りアヒル
波乗りアヒル

カレンダーや住所録を作った時に今日の日付が、自動的にユーザーフォームに表示されたら便利だと思いませんか?

この技を習得するまでは、1個コマンドボタンを余分に配置して【表示】という名前のコマンドボタンを押して、今日の日付をユーザーフォームに表示していました。

または、エクセルファイルが開いた時に特定のユーザーフォームを自動的に表示するThisWorkbookにVBAコードを書き込んで、今日の日付を表示させることしか方法を知りませんでした。

波乗りアヒル
波乗りアヒル

おじさんには、たまたま見つけることができた技ですが、エクセルの知識が豊富な方には当たり前の機能かもしれませんね。

スポンサーリンク


目次

ユーザーフォーム表示直前の動作設定

ユーザーフォームが表示される直前に作業させることができる、InitializeというVBAコードがあります。

このInitializeをユーザーフォーム自体に組み込むことによって、指定した作業を行ってからユーザーフォームが表示されてくれるので、テキストボックスが本来は空欄なのですがしっかりと指示したセルから値を拾ってテキストボックスに表示されました。

実際にユーザーフォーム自体にこのようなVBAコードを書いてあります。

Private Sub UserForm_Initialize()
TextBox1.Text = Range(“A1”).Value
TextBox2.Text = Range(“B1”).Value
End Sub
  1. ユーザーフォームを表示する直前に実行する
  2. テキストボックス1の値はセルA1の値にする
  3. テキストボックス2の値はセルB1の値にする
  4. マクロ終了
波乗りアヒル
波乗りアヒル

とてもシンプルで簡単なので今後も使わせてもらいます。

ただし、VBAコードを書く場所がちょっと違うので今まで気づきませんでした。

Initializeを書く場所

気づかなかったのは普通だと思います。

なぜなら、普段通りにユーザーフォームをクリックしても無駄だからで、こんな感じになりますよね。

Private Sub UserForm_Click()

End Sub

これではダメなので、まずはこの表示を消しちゃいましょう。

そして、消したら下記画像のようになりますよね。

INITIALIZE

次に(General)の右側のプルダウンを押すとUserFormが出てくるので、選択します。

INITIALIZE1

すると、また出てきた!

Private Sub UserForm_Click()

End Sub

とりあえず無視して、次に右側の(Declarations)も同じように右側のプルダウンを押してInitializeを選択します。

INITIALIZE2

するとこんな感じになります。

INITIALIZE3

必要のない邪魔なこの子たちを消しちゃいます。

Private Sub UserForm_Click()

End Sub

波乗りアヒル
波乗りアヒル

多分、ClickをInitializeと書き換えればいいのかもしれませんが、まだ試していないのでやってみたことをそのまま書いています。

あとは、最初に書いた通りユーザーフォームが表示される直前に行ってほしいVBAコードを書けば完成です。

ユーザーフォームでオリジナルフォーム作ろう

エクセルの作業時間を短縮して効率よく作業を可能にする「ユーザーフォーム」を使いこなすには、基本を押さえておきましょう。

1日400人ぐらいの方が見ていただいている意外と人気ページなんです。

文字を入力するのに絶対使うTextBox

ユーザーフォームにテキストボックスを使わないで済むのは、確認画面ぐらいかな?

テキストボックスとセルをリンクさせる様々な方法を組み合わせれば、作業時間はあっという間に短縮できます。

あわせて読みたい
テキストボックス使い方や便利な活用法やワザ エクセルのオリジナル入力フォームが作ることができるユーザーフォーム。 そこでコマンドボタン・ラベルと並んで使用頻度が高いテキストボックスの基本的な使い方と、活...

文字列だけじゃない!Labelもクリックできるので可能性大

ラベルといえばテキストボックスの説明として文字列で表示させるのが、基本の使い方ですがクリックするとプログラムを実行させることもできるのです。

工夫次第でできることは無限大に広がります。

あわせて読みたい
ラベル使い方や便利な活用法やワザ エクセルのオリジナル入力フォームが作ることができるユーザーフォーム。 そこでコマンドボタン・ラベルと並んで使用頻度が高いテキストボックスの基本的な使い方と、活...

どんなVBAコードをコマンドボタンに記述しますか?

ボタンをクリックすると記述したプログラムが作動して、繰り返し作業や手間がかかったことが一瞬で完了させることができます。

あんなこともこんなこともできちゃいますよ。

あわせて読みたい
コマンドボタンの使い方や便利な活用法やワザ エクセルのオリジナル入力フォームが作ることができるユーザーフォーム。 そこでテキストボックス・ラベルと並んで使用頻度が高いコマンドボタンの基本的な使い方と、活...
波乗りアヒル
波乗りアヒル

ご覧いただきありがとうございます。

ブログランキングに登録しています。

少しでもお役に立てれば幸いで、参考になったようでしたら応援よろしくお願いします。


Microsoft Officeランキング

ユーザーフォームを使えばこんなに便利に早く作業が終わりますよ
あわせて読みたい
エクセルVBAで住所録入力フォームを作る方法 数百人規模の中規模の住所録や顧客データをエクセルで管理している事業所って意外と多いですが、データを検索して修正するのってすごく面倒じゃないですか? 面倒だなあ...
あわせて読みたい
ユーザーフォームでオリジナル入力画面を作る エクセルのデータ入力・検索・修正作業ってとても面倒で時間と手間がかかりませんか? この作業を簡単に素早く終わらせたくないですか? エクセル使うなら今話題の時短...
とりっぷぼうる
エクセル関数とVBAで和暦西暦対応カレンダー作成 | とりっぷぼうる エクセル関数を基本として作成し、ユーザーフォームで日付選択ができるようにすることで複雑なマクロが分からなくても、自由にカスタマイズして自分のエクセルに組み込んで...
あわせて読みたい
Excel-VBAもくじ~エクセルの作業時間を半減させる方法 【コピペOK】このExcel-VBAページに掲載している内容・VBAコードが、少しでもお役に立てるのであればコピーして使っていただいて構いません。 たった1秒で完了!驚異の...
波乗りアヒル
波乗りアヒル

エクセルの勉強お疲れ様です。ちょっとひと休みしませんか?

目次