
こんにちは。
Excel 2003 で思い通りのグラフが作成できなくて、ならば自分で作ろうと無謀にも思い立ち、
マクロでラベルをワークシートに貼り付けてみました。
(とりあえずの目標)
・目的の位置に目的の大きさで貼り付ける。
・標題を消去する。(あるいは、特定の文字を設定。)
・境界線を設定する。
・背景色を設定する。
しかし、思った通りに動作してくれません。下記はそのテスト用のコードです。
Sub Test1()
With Sheets("テスト").OLEObjects.Add(ClassType:="Forms.Label.1", _
Left:=54, Top:=13.5, Width:=54, Height:=13.5)
'.Caption = "" 実行時エラー
'.BorderStyle = fmBorderStyleSingle 実行時エラー
'.BackColor = RGB(192, 192, 192) 実行時エラー
.Border.Color = vbBlack 'OK
.Interior.Color = RGB(192, 192, 192) 'NG(実行時エラーはないが効果無し)
End With
End Sub
(質問1)
プロパティウインドウでは指定可能なのに、VBAでプロパティを利用できないのは何故ですか?
Caption, BorderStyle, BackColor など
「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」
(質問2)
標題を消去する(または、特定の文字を指定する)にはどうしたらよいですか?
また、背景色を設定するにはどうしたらよいですか?
初歩的なことと思いますが、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんばんは。
>(質問1)VBAでプロパティを利用できないのは何故ですか?
プロパティが、上位と下位のものが混じっているからですね。以下のようにすれば通るはずです。
Sub LabellingTest1()
With Sheets("テスト").OLEObjects.Add(ClassType:="Forms.Label.1", _
Left:=54, Top:=13.5, Width:=54, Height:=13.5)
.Object.Caption = ""
.Object.BorderStyle = fmBorderStyleSingle
.Object.BackColor = RGB(192, 192, 192)
.Border.Color = vbBlack
.Interior.Color = RGB(192, 192, 192)
End With
End Sub
今、試してみましたが、これをすると、ワークシートからプロパティの変更できなくなるようです。もちろん、オブジェクトとして、何も変りはないようですが。
>(質問2)標題を消去する
標題とは、英語で、Caption ですが、ラベルのCaption のことですか?
Sheets("テスト").OLEObjects(1).Object.Caption = ""
背景色を設定する
これは、同じことですからお分りになるかと思います。
シート上のコントロールツールが多数ある場合は、
「特定の文字を指定する」ということは、私は、For Each ~ In でループで探していくしかないのではないかと思います。
早速の回答ありがとうございます。
.Object が無かったのが原因です。
ユーザーフォームと同じように考えたらダメなんですね。
お世話になりました。
※実は投稿直後に自己解決していまして、「運営スタッフ」に削除依頼をしてしまいました。
もしこの投稿が削除されましたら申し訳ありません。
No.2
- 回答日時:
回答になるかわかりませんが・・・・
指定のOLEObjectsはエクセルと相性が悪いのではないでしょうか
エクセルのフォーム機能を使ったラベルでは以下の記述になります
Worksheets("テスト").Labels.Add(54, 13.5, 54, 13.5).Select
Selection.Characters.Text = ""
ただ、このラベルは境界線や背景色を指定できません
必要であれば、フォームのラベルではなく、オートシェイプの方がよいかと思います
ただ、上記の内容はあくまで私が調べた結果ですので他に良い方法があるかもしれません。
ご回答ありがとうございます。
そのような指定方法もあるのですね。
参考になりました。
※実は投稿直後に自己解決していまして、「運営スタッフ」に削除依頼をしてしまいました。
もしこの投稿が削除されましたら申し訳ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ウォッチ式の文字数制限について
-
VisualStudioのプロパティが表...
-
VB6.0でテキストボックスの書式...
-
0での割り算
-
Vba テキストボックス文字を右...
-
MATLABのグラフで軸目盛りのフ...
-
三菱タッチパネル小数点以下表...
-
VBSのMsgBoxで文字に色をつけたい
-
eclipseのデバッグ中に変数の値...
-
Notepad++のコメントの色を変え...
-
ExcelVBA EnableプロパティがF...
-
ラベル内の文字(Caption)を縦...
-
VB6.0のWritePropertyとReadPro...
-
実行時エラー 438になった時の...
-
VBA シートのボタン名を変更し...
-
worksheetFunctionクラスのVloo...
-
【C#】Page_Loadさせない方法に...
-
パソコンへの「Dropbox...
-
ユーザーフォームを表示中にシ...
-
「Columns("A:C")」の列文字を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ウォッチ式の文字数制限について
-
eclipseのデバッグ中に変数の値...
-
ラベルの文字列の長さが変わっ...
-
ExcelVBA EnableプロパティがF...
-
Vba テキストボックス文字を右...
-
三菱タッチパネル小数点以下表...
-
ラベルを表示したり非表示にし...
-
VB.NETでラベルの大きさってど...
-
VisualStudioのプロパティが表...
-
ラベル内の文字(Caption)を縦...
-
MATLABのグラフで軸目盛りのフ...
-
ラベルのスクロール(VB)
-
ACCESSのラベル内データに下線...
-
スプレッドシートの列名変更の...
-
(Excel 2003) マクロでワー...
-
Excel VBA ユーザーフォーム内...
-
Notepad++のコメントの色を変え...
-
C#初心者です。チェックボック...
-
Labelのプロパティが変更できな...
-
Acでテキストボックス上に罫線...
おすすめ情報