
いつもお世話になっております。
■状況
添付画像をご覧ください。
Dim sc As SeriesCollection
Dim fsc As FullSeriesCollection
Dim TargLabel() As Boolean
Dim TargLabelFormat() As String
です。
やろうとしてるのはグラフの「データラベル」があり(True)の場合そのラベルに書式を適用するマクロです。
■質問
上記やろうとしてることをできるようにすることもそうですが、マクロ記述は、
.DataLabels.ShowValue = TargLabel(k)
であるのに、なぜエラーで「DataLabels クラスの Count プロパティを取得」という関係のないプロパティが登場しているのでしょうか。
エクセルのVBAのバグなのか既述に原因があるのか不明です。
※ちなみに、グラフを別のグラフに書式コピーする際、元グラフにデータラベルがあると書式貼り付けしたときにエクセルが落ちてしまいます。
もしかしたらラベル関係にバグがあるのでないかと踏んでいます。
■動作環境
OS 名:Microsoft Windows 10 Pro
OS バージョン:10.0.16299 N/A ビルド 16299
OS 製造元:Microsoft Corporation
プロセッサ:Intel64 Family 6 Model 42 Stepping 7 GenuineIntel ~2400 Mhz
BIOS バージョン:TOSHIBA Version 2.20 , 2012/06/22
物理メモリの合計:3,988 MB
Excel バージョン:14.0.7192.5000(32ビット) Microsoft Office Standard 2010の一部

No.1ベストアンサー
- 回答日時:
一般的なオブジェクトの操作についての回答です。
的はずれでしたらすみません。
プロパティを操作するなら、リストではなく、
.DataLabel.ShowValue (sがいらない)、
または、
.DataLabels(変数).ShowValue
※変数はグラフのシート上の通し番号
で行います。
この行よりも前で、fsc(k)にシート等を適切にsetされているかも気になりました。
https://docs.microsoft.com/ja-jp/office/vba/api/ …
No.3
- 回答日時:
質問のようなプログラムの場合は、最初にHasDataLabelsプロパティを使って
If .HasDataLabels = True Then
.DataLabels.ShowValue = TargLabel(k)
・・・以下の処理・・・
の順に実行するべきです。
DataLabelsメソッド(プロパティではない)は、DataLabelsコレクション(DataLabelオブジェクトのコレクション)を返します。
このメソッドは、HasDataLabelsプロパティ が Trueの時に使用されるべきメソッドなので、HasDataLabelsプロパティを無視して実行した時は、内部でDataLabelsコレクションを作ろうとDataLabelsのCountプロパティを取得しようとした時にエラーが発生したのではないかと思います。
質問のプログラムは正しくない使用法なので、「そういう間違った使用法をすると、そう表示します」と言う仕様だと思います。
No.2
- 回答日時:
まず、質問の処理をする場合は
>.DataLabels.ShowValue = TargLabel(k)
の前にHasDataLabelsプロパティを使って
If .HasDataLabels = True Then
.DataLabels.ShowValue = TargLabel(k)
・・・以下の処理・・・
の順に実行するべきです。
DataLabelsメソッド(プロパティではない)は、DataLabelsコレクション(DataLabelオブジェクトのコレクション)を返します。
このメソッドは、HasDataLabelsプロパティ が Trueの時に使用されるべきメソッドなので、HasDataLabelsプロパティを無視して実行した時は、内部でDataLabelsコレクションを作ろうとDataLabelsのCountプロパティを取得しようとした時にエラーが発生したのではないかと思います。
質問のプログラムが正しい使用法を外れた使用法なので、「そういう間違った使用法をすると、そう表示します」と言う仕様だと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA セル間のリンク修正につい...
-
【マクロ】並び替えの範囲が、...
-
VBAでCOPYを繰り返すと、処理が...
-
Vba Array関数について教えてく...
-
【VBA】 結合セルに複数画像と...
-
Excel VBA 選択範囲の罫線色の...
-
複数のExcelファイルをマージす...
-
【マクロ】開いているブックの...
-
改行文字「vbCrLf」とは
-
VBA 最終行の取得がうまくいか...
-
VB.net 文字列から日付型へ変更...
-
【マクロ】シートの変数へ入れ...
-
Excelのマクロについて教えてく...
-
vbs ブック共有を解除
-
【ExcelVBA】値を変更しながら...
-
vba textboxへの入力について教...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【ExcelVBA】5万行以上のデー...
-
Excelのマクロについて教えてく...
-
エクセルのVBAコードについて教...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
c# ネットワークプログラム
-
ユーザーフォームのVBAエラー
-
条件によって別のクラスのイン...
-
excel vba グラフ データラベル...
-
VB.NETで、DLLを頂いたんですが...
-
C#で別スレッドからメインform...
-
プロパティについて
-
C#でVB.NETのReplaceコマンドを...
-
C# フォームのShow()のオーバー...
-
Eval関数を使いたい!ドキュメ...
-
BCB5:フォームに自作のプロパ...
-
C# using の有効範囲
-
MSDNのリファレンスの見方が分...
-
既定のコンストラクタがない?
-
ダイアログ表示時にチェックボ...
-
FriendとPublicの違い。。。
-
(UWSC) 「#32770」の意味わかり...
-
エディットコントロールでEnter...
-
イベントにAddHandlerされてい...
-
MFCアプリのコマンドラインでパ...
おすすめ情報