![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
こんにちは。
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロとシートの保護について教えてください。 1 2022/10/18 08:36
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) エクセルVBAで以下のようなコードを書いたらエラーになりました。何処が間違っているの教えて? 1 2023/02/10 18:30
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) QRコード作成マクロについて 3 2022/11/26 16:55
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ウォッチ式の文字数制限について
-
eclipseのデバッグ中に変数の値...
-
Vba テキストボックス文字を右...
-
ACCESSのラベル内データに下線...
-
ラベルを表示したり非表示にし...
-
ラベルの文字列の長さが変わっ...
-
三菱タッチパネル小数点以下表...
-
複数のコンボボックスの項目の...
-
Propertyプロシージャの使い道
-
ラベル内の文字(Caption)を縦...
-
フォームのラベルのプロパティ...
-
ExcelVBA:コンボボックスのリ...
-
ラベルのスクロール(VB)
-
VisualStudioのプロパティが表...
-
ToolStripコントロールのLocat...
-
Access2002のVBAコンボボックス...
-
MATLABのグラフで軸目盛りのフ...
-
データ型とオブジェクト型 プ...
-
プロパティを表示させるにはど...
-
ダイアログ属性の変更
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ウォッチ式の文字数制限について
-
eclipseのデバッグ中に変数の値...
-
Vba テキストボックス文字を右...
-
ExcelVBA EnableプロパティがF...
-
VisualStudioのプロパティが表...
-
ラベルを表示したり非表示にし...
-
三菱タッチパネル小数点以下表...
-
ラベルのスクロール(VB)
-
VB.NETでラベルの大きさってど...
-
Excel VBA ユーザーフォーム内...
-
ラベル内の文字(Caption)を縦...
-
ラベルの文字列の長さが変わっ...
-
ACCESSのラベル内データに下線...
-
ACCESSのVisibleについて
-
C# DataGridView特定セルの入力...
-
MATLABのグラフで軸目盛りのフ...
-
エクセル 画像のプロパティで縦...
-
Notepad++のコメントの色を変え...
-
C#初心者です。チェックボック...
-
TextBox内で違う色の文字を表示...
おすすめ情報