こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

投稿日時 - 2009-03-26 23:51:43

QNo.4830005

困ってます

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

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

投稿日時 - 2009-03-27 07:08:58

お礼

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

投稿日時 - 2009-04-11 08:14:38

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

ActiveSheet.TextBox1.Value = "あいうえお"

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

投稿日時 - 2009-03-27 03:18:35

ANo.1

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

投稿日時 - 2009-03-27 00:43:54

あなたにオススメの質問