
No.1ベストアンサー
- 回答日時:
フォームにコマンドボタン(Command1)を配置し、そのボタンを押したら、"C:\My Documents\book1.xls"の"Sheet1"にあるShapesオブジェクトのNameをすべて返すコードの例を考えてみました。
なお、この例ではコントロールツールボックスのテキストボックスの名前も図形描画のテキストボックスの名前も返してきます。
確認しましたが、図形描画のテキストボックス名はデフォルトの場合、シート上の名前ボックスでの表示が"テキスト 1"などとなっていても、返ってくる値が"Text Box 1"となりました。
コントロールツールボックスのテキストボックスは"TextBox1"と返してきます。
名前を指定するとその名前で返ってきますので、名前付けに定義を設けるか、デフォルトの場合はスペースの位置などで判別可能と思われますがいかがでしょう。
Option Explicit
Dim wkbObj As WorkBook
Private Sub Form_Load()
Set wkbObj = GetObject _
("C:\My Documents\book1.xls")
End Sub
Private Sub Command1_Click()
Dim myShape As Excel.Shape
With wkbObj.Sheets(1)
For Each myShape In .Shapes
MsgBox myShape.Name
Next
End With
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set wkbObj = Nothing
End Sub
なお、参照設定で、Microsoft Excel X Object Library への参照を設定する必要があります。Xの所にはバージョンの数値が入ります。
VB6.0 Excel2000 Win2000 にて動作確認
動作しました。助かりました。
いろいろ調べてはいたのですが、なかなか必要とする情報が
なくて半分あきらめて別の方法を考えようかと思っていた所でした。
名称さえ取得できればあとはOKです。
図形描画などの判断はTTakさんの「名前付けに定義を・・・」を参考にさせていただきます。
いや~本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
テキストボックスの番号の取得
Visual Basic(VBA)
-
VBAでテキストボックス内の編集をする方法
Visual Basic(VBA)
-
-
4
【エクセル】複数のTextBoxに共通するChangeイベントを簡潔に書きたい
Excel(エクセル)
-
5
全てのテキストボックスをセルに出力
Visual Basic(VBA)
-
6
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
7
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
8
フォーム上の現在アクティブなコントロールの取得
Access(アクセス)
-
9
Excelで、図形内の文字をセルに抽出したいです
Excel(エクセル)
-
10
エクセルテキストボックスの文字列をセルに引っ張ってくるやり方
Visual Basic(VBA)
-
11
2画面表示でのVBAのボタン押下後のform表示の位置
Excel(エクセル)
-
12
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
13
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
14
アクセスのフォームでテキストボックスを順番に選択
Access(アクセス)
-
15
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
16
ユーザーフォームをホイールでスクロールする方法(Excel2000VBA)
Excel(エクセル)
-
17
Excelで、テキストボックスに書かれた文字を検索したい
Excel(エクセル)
-
18
access テキストボックスの値取得
Access(アクセス)
-
19
エクセルVBAで一つ上の階層を指定して保存したい
Excel(エクセル)
-
20
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB6でLabelの最前面にText Box...
-
MSFlexGrid
-
ユーザーフォームに日付を表示...
-
Enabled=Falseのテキストボック...
-
コンボボックスの高さを変更し...
-
DataGridViewで行の展開みたい...
-
VBのデータグリッドが表示され...
-
C# アプリ終了時に設定を記憶...
-
VC++のコンボボックスの各項目...
-
Wordテキストコントロールが未...
-
VB6でPNGファイルを扱うには?
-
VB.NETで縦書表示をしたいので...
-
C# TEXTが空白であるLABELは何...
-
C#でユーザコントロールのプロ...
-
エクセルの画像にツールチップ...
-
リストコントロールのデータの...
-
ListViewでのリスト表示(初歩...
-
Excel VBA テキストボックス...
-
VB2005 コードでのコントロー...
-
PictureBoxの背景色変更(VB.NET)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックス(VBA)でEnter...
-
Wordテキストコントロールが未...
-
ユーザーフォームに日付を表示...
-
エクセルの画像にツールチップ...
-
C# TEXTが空白であるLABELは何...
-
VBからエクセルのテキストボ...
-
DataGridViewで行の展開みたい...
-
エクセル VBA ユーザーフォーム...
-
MSFlexGrid
-
コンボボックスの高さを変更し...
-
VB.NETで縦書表示をしたいので...
-
デザインモードを解除すると消...
-
Enabled=Falseのテキストボック...
-
ADOのCursorLocationプロパティ
-
PictureBoxの背景色変更(VB.NET)
-
VB6でLabelの最前面にText Box...
-
エクセル入力規制リスト行数
-
C# アプリ終了時に設定を記憶...
-
ListViewでのリスト表示(初歩...
-
MFCでbitmapを背景にしてstatic...
おすすめ情報