- ベストアンサー
EXCEL VBAについて、ワークシート上に置いたTextBoxに値を入れる方法について
すいませんEXCEL VBAについて質問があります。 エクセルのワークシート上にコントロールツールボックスから テキストボックスを2つ、コマンドボタンを1つ設置する。 アクティブになっているテキストボックスに”goo”という値を入れる。 これをVBAで処理するにはどうしたらよろしいのでしょうか。 ユーザーフォームのテキストボックスであれば Private Sub CommandButton1_Click() Dim i As Object Set i = ActiveControl If TypeOf i Is MSForms.TextBox Then i.Text = i.Text & "goo" End If Set i = Nothing End Sub これでできるはずですが、シート上に置くテキストボックスだと うまくいきません。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Getfocusイベントで対応しては いかがですか? 例 当該シートに Textbox1 Textbox2 Commandbutton1 が配置されていた場合で考えます。 シートモジュールに Option Explicit Private atobj As Object Private Sub CommandButton1_Click() If TypeName(atobj) = "TextBox" Then atobj.Text = atobj.Text & "goo" End If End Sub Private Sub TextBox1_GotFocus() Set atobj = TextBox1 End Sub Private Sub TextBox2_GotFocus() Set atobj = TextBox2 End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Set atobj = Nothing End Sub
お礼
お返事が遅くなり大変申し訳ございません。 やりたかった処理が出来ました。ありがとうございます。 Getfocusイベントを知らなかったので勉強になりました。 またよろしくお願いいたします。