- ベストアンサー
VBA初心者が困っているコントロール作成とcaption取得の方法
- VBA初心者がコントロール作成で困っています。マクロを登録するためにはコントロールのcaptionを取得する必要がありますが、方法がわかりません。Excel 2007を使用しています。
- コントロールのcaptionから名称を取得する方法や参考になるURLを教えてください。
- 要約文3つ目
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 改めて理屈を探してみたところ、VBAのヘルプにある事が分かりました。Excel2000のヘルプですが、 「シートで ActiveX コントロールを使用する」というトピックスが、たぶん2007にもあると思いますので、ご覧下さい。 以下、copy right Microsoft OLEObject オブジェクトのプロパティとして表されない、コントロールのプロパティは Object プロパティを使用して実際のコントロール オブジェクトを取得して設定することができます。次の使用例は、"CommandButton1" というコントロールのキャプションを変更します。 Worksheets(1).OLEObjects("CommandButton1"). _ Object.Caption = "実行"
その他の回答 (2)
- mitarashi
- ベストアンサー率59% (574/965)
#1です。 >そのコントロールに「Level1」というキャプションをつけました。 >その「Level1」という文字をプログラム上でNumberという変数 に格納したかったのですが、それができませんでした。 ActiveWorkbook.Worksheets("check").OLEObjects("Level1").Object.Caption ここで、OLEObjects("Level1")に入れるのは、Captionではなくて、オブジェクト名です。 もし、Captionを指定して、そのコントロールを操作したいのなら、ワークシート上のOLEObjectsコレクションを総当たりでチェックして、特定する必要があります。(Captionを持たないコントロールもありますので、エラー対策も必要になります) でも、Captionが分かっていて、それを他でも使いたいなら上記のような面倒なことをする必要も無い気がしますが、勘違いしているでしょうか?
- mitarashi
- ベストアンサー率59% (574/965)
画像は小さくて良くわかりませんが、下記の様な事でしょうか。ご参考まで。 Sub test() Debug.Print Worksheets("Sheet1").Label1.Caption Debug.Print Worksheets("Sheet1").OLEObjects("Label1").Object.Caption End Sub
補足
回答ありがとうございます。 画像が見えづらくてすいません。 Objectという記載がなかったからかなと、試してみたんですが、また同じエラーメッセージがでてしまいました。 ちょっと違うみたいです。すいません。 ちなみに画像は、以下のようなことを示したかったんです。 エクセルのツールバーからコントロールを作成し、 そのコントロールに「Level1」というキャプションをつけました。 その「Level1」という文字をプログラム上でNumberという変数 に格納したかったのですが、それができませんでした。 質問内容がわかりづらかったようで、申し訳ありませんでした。
お礼
再度、お早い回答ありがとうございます。 なんとか作成することができました。ありがとうございます。 すいません。私の質問の方法に色々問題があるみたいでした。 まず、コントロールの「オブジェクト名」自体が分からないということを 申し上げるべきでした。 ヘルプから、ご指定の検索キーワードで探したところ、 コントロールのオブジェクト名を表示させる方法が分かったので 先に進めることができました。 色々ご指導いただきありがとうございました。