14歳の自分に衝撃の事実を告げてください

エクセルのVBAを使ってシート上のテキストボックスのテキストを取得・変更するマクロを作成したいと思っていますがうまく行きませんので、お知恵を拝借したいとおもいます。

環境:WindowsXPでオフィス2002
状況:
エクセルブックa.xlsのシートに「コントロールツールボックス」のテキストボックスを配置(オブジェクト名はTEXTBOX_C)
エクセルブックb.xlsにコードを書き、a.xlsのTEXTBOX_CのプロパティのValueかTextを取りだしたい

試した事:
コントロールを配置したシートに次のマクロ
TEXTBOX_C.Text = "これはコントロールのテキストボックス"
を書くとテキストボックスに文字を入れ込めますが、別のエクセルブックからだと上手く行きません。

また、オートシェイプのテキストボックスの場合は簡単に出きるのですが、コントロールツールボックスではどうしても上手く行きませんので、対象法などご存知の方いらっしゃいましたら教えてください

A 回答 (2件)

エクセルを新規に開きました。


そのSheet1に(コントロールツールボックスの)TextBoxを貼りつけました。
そのBook1から、ファイル-開くで別ブックを開きました。
別ブックのMojule1側に下記を書いて
Sub test02()
MsgBox Workbooks("book1").Worksheets("sheet1").textbox1.Text
End Sub
を実行すると、Book1のTextBoxに入れた文字列が表示
されました。
がそんな質問ではないのですか。
    • good
    • 7
この回答へのお礼

簡単に出来てしまいました。
ブック名とシート名を指定すれば良かっただけとは・・・
数時間考えて出来なかったもので、助かりました

お礼日時:2004/09/20 20:29

a.xlsの"Sheet1"にActiveXのTextBoxを置き、b.xlsの標準モジュールに下記を書いて、a.xls を開いた状態で試してます。

(Excel2000)

Sub Test()
Dim ws As Worksheet, myObj As OLEObject
 Set ws = Workbooks("a.xls").Worksheets("Sheet1")
 For Each myObj In ws.OLEObjects
  If UCase(myObj.Name) Like "TEXTBOX*" Then
    MsgBox myObj.Object.Value
  End If
 Next myObj
End Sub
    • good
    • 3
この回答へのお礼

ありがとうございました
単純なことで悩んでました

お礼日時:2004/09/20 20:32

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

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


おすすめ情報