• ベストアンサー

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 これでできるはずですが、シート上に置くテキストボックスだと うまくいきません。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • lark_0925
  • ベストアンサー率63% (37/58)
回答No.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

takohasisa
質問者

お礼

お返事が遅くなり大変申し訳ございません。 やりたかった処理が出来ました。ありがとうございます。 Getfocusイベントを知らなかったので勉強になりました。 またよろしくお願いいたします。

その他の回答 (2)

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

ActiveSheet.TextBox1.Value = "あいうえお" ActiveSheet.TextBox1.Select Selection.Object.Value = "あいうえお"

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

ActiveSheet.OLEObjects("TextBox1").Object.Value = "あいうえお"

関連するQ&A