|
|
| Excel VBA Macro ・ テキストボックス・コントロール ・ FAQ |
|
テキストボックスの値をセルに記入するには?
|
|
|
|
Question 14.1 |
|
 |
 |
|
|
質問なんですけど、
VBのフォームで入力した値をシートのセルにうつすには、どうすればイイですか。
まだ高校1年なので回りに聞く人材がいないんです。よかったらお願いします。エクセル97を使ってます。
|
|
Answer |
Copyright (C) 1999.1.2 永井善王 |
|
|
エクセル97のユーザーホームから値を入力する方法は、いろいろ、あります。 ここでは、任意の値を自由に入力できるテキストボックスを使って、お答えします。
左図に、E-mailアドレスを入力するシートを作ってみました。ワークシートの名前は「SSS」に、ユーザーフォームの Captionは「アドレス入力」にしましょう。
ユーザーフォームのTextBox1に入力した値をA1セルに、TextBox2の値は、B1セルに記入することとにします。
左図はすでに、氏名とE-mailアドレスを入力し終わって、OKボタンにフォーカスが移った状態になっています。
この回答では、個々のテキストボックスに値を入力して Enterキーを押すと、すぐにセルに記入するようにしましたが、他に、OKボタンが押されてから記入する方法が、考えられます。
マクロの作り方としては、まず、TextBox1にマウスを合わせた状態で、右クリックしてショートカットメニューを映し、
「コードの表示」を左クリックしてコード画面(下図)を映し出します。左上の「オブジェクト」のボックスに「TextBox1」と表示されていることを確認します。
続いて右上の「プロシージャー」のボックスに「exit」と表示させると、Enterキーが押された時に実行されるプロシージャーが用意されるので、追加入力して下記のように仕上げます。
Private Sub TextBox1_exit(ByVal cancel As MSForms.ReturnBoolean)
氏名 = TextBox1.Text
Worksheets("SSS").Cells(1, 1).Value = 氏名
End Sub
TextBox2も同様にして、下記のように仕上げます。
Private Sub TextBox2_exit(ByVal cancel As MSForms.ReturnBoolean)
Sheets("SSS").Cells(1, 2).Value = TextBox2.Text
End Sub
そして、CommandButton1については、右上の「プロシージャー」のボックスに「Click」と表示させ下記のように仕上げます。
Private Sub CommandButton1_Click()
Unload Me
End Sub
最後に、メニューバーの「挿入」の「標準モジュール」を左クリックして、映ったコード画面に下記のように入力します。
Sub テキストボックスの値をセルに記入する()
Worksheets("SSS").Activate
Cells.Clear
UserForm1.Show
End Sub
これで完成ですから、マクロを実行してみてください。
もしも、実行方法がわからなければ、「ユーザーフォームのマクロを簡単に実行できるようにするには」を見てください。
|
|
|
|
|