【VBA】ユーザーフォームのテキストボックスから値を取得する方法

VBA

本記事では「ユーザーフォームのテキストボックスに入力された値を標準モジュールのマクロに渡す」方法について解説していきます。

ツールを作るうえでフォームとマクロ間での値のやり取りは必要になってくるので、ぜひ覚えていってください。

スポンサーリンク



ユーザーフォームのテキストボックスから値を取得する方法

ここではユーザーフォーム上のテキストボックスに入力された値を標準モジュール上のマクロに渡すという内容をシンプルなコードで解説していきます。

 

また、ここでは「今回使うユーザーフォーム」→「呼び出すマクロについて」→「ユーザーフォーム上のテキストボックスの値を取得」の順に解説していきます。

初めに:ここで使うユーザーフォーム

ここで使うユーザーフォームは下の通りです。

上のユーザーフォームに設置されたテキストボックスTextBox1コマンドボタンbtnOkというオブジェクト名となっています。

このオブジェクト名を使って値のやり取りを行うので、覚えておいてください。

 

テキストボックスの値を渡すマクロ

ここでは単純にユーザーモジュールのテキストボックスに入力された値をメッセージボックスで出力するという内容にしておきます。

下が標準モジュール上にあるマクロ内容になります。

 

上のコードの引数がテキストボックスで入力された値になります。

うまく値が渡されれば、コレでテキストボックスで入力された値が表示されます。

 

テキストボックスの値の取得&マクロの呼び出し

今回はテキストボックスに入力した後に、OKボタンをクリックするという流れのユーザーフォームにします。

なので、OKボタンをクリックしたときにマクロが呼び出される”Clickイベント”にします。

 

ですので、ユーザーフォーム上の「OKボタン」をダブルクリックして、クリック用のSubプロシージャーを作ります

※今回はOKボタンのオブジェクト名が「btnOk」なので、”btnOk_Click()”というプロシージャーが作成されている。

 

そして、下のように記述すると、ユーザーフォーム上のテキストボックスで入力された値を標準モジュールのマクロに渡すことができます。

6行目の「text1 = UserForm1.TextBox1.Text」が重要ポイントになります。

テキストボックスの値を取得するには対象での「Form名.TextBox名.Text」という記述になります。

そして、9行目で標準モジュールにあるマクロに引数として取得した値を渡しています。

 

上のコードを実行すると下のような結果が得られます。

 

ここでのコードであれば、メッセージボックスに値が表示されているので目的通りとなりました。

 

〇おすすめのVBA参考書ランキング!

1位

2位

3位

Excel VBA 脱初心者のための集中講座パーフェクトExcel VBAExcelVBA 実戦のための技術
初心者~中級者中級者初心者~中級者
【初心者が手に取るべき参考書】

・「書籍+動画」で圧倒的に理解しやすい入門書になっている。

・丁寧で詳しい解説でボリューム感がある。

【より深い理解をしたい方にお勧めな参考書】

・テーマに対して丁寧な解説・適度な深さで解説されている。

・幅広くテーマを扱っていることから、基礎知識をあらかた網羅できる。

【入門書と一緒に買うべき参考書】

・1つ1つのテーマを経験豊富なエンジニア視点で解説してくれている。

・実践的で効果的なコードの書き方が理解できる。

【読んでみた一言】
正直、入門書はコレ一冊でいいかも。あとは中級者用の参考書に進むべし。
【読んでみた一言】
深く書かれているが、少々専門的に書かれていることから、読む前に数冊の入門書を読破したほうが良い。
【読んでみた一言】
基礎知識を持っている人が次のレベルに達するきっかけを与えてくれる参考書である。

¥2,794円
amazonで確認!

¥3,608円
amazonで確認!

¥2,640円
amazonで確認!

スポンサーリンク