アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (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
    • good
    • 1
この回答へのお礼

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

お礼日時:2009/04/11 08:14

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



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

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

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています