
マクロの記録にて、グラフに横軸ラベルの追加を記録したところ
以下のようなコードになりました。
ActiveSheet.ChartObjects("グラフ 30").Activate
ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Text = "μsec"
これと同じことをVBAのコードから実行しようとしたのですが、
ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Text = "μsec"
の行にて"オブジェクトが必要です"というエラーがでました。
何のオブジェクトが足りないのでしょうか?
ActiveSheet.ChartObjects("グラフ 30").Activate にて
チャートオブジェクトは指定されているので、チャートオブジェクトでは無いと思うのですが・・
No.1ベストアンサー
- 回答日時:
>"オブジェクトが必要です"
のエラーですか。
『AxisTitleクラスのTextプロパティを設定できません』ではなく?
バージョンが2010なのでしょうか。
いずれにしても、Activateに頼らないコーディングに切り替えたほうが良いです。
それにマクロ記録で .Axes(xlValue, xlPrimary).HasTitle = True 的なコードは記録されていませんか?
対象の「軸ラベル」を表示させてからのText設定、なのでしょう。
With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue, xlPrimary)
.HasTitle = True
.AxisTitle.Text = "μsec"
End With
>『AxisTitleクラスのTextプロパティを設定できません』ではなく?
>バージョンが2010なのでしょうか。
Excel2007です。
「オブジェクトが必要です」とメッセージボックスが表示されました。
>いずれにしても、Activateに頼らないコーディングに切り替えたほうが良いです。
すいません、どうやって追加するのか試しにマクロ記録を使用したところ深みにはまりました
>それにマクロ記録で .Axes(xlValue, xlPrimary).HasTitle = True 的なコードは
>記録されていませんか?
HasTitleはなく、以下のようなコードが記録されました。
ActiveChart.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis)
ActiveSheet.ChartObjects("グラフ 3").Activate
ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Text = "μsec"
ActiveSheet.ChartObjects("グラフ 3").Activate
ActiveChart.ChartArea.Select
原因がわかりました初歩的な勘違いです。
チャートオブジェクトを以下で定義できると考えていたのですが、
シート名.ChartObjects("グラフ名")
正しくは以下ですね
シート名.ChartObjects("グラフ名").Chart
これで「オブジェクトが必要です」は解決できましたが、
これでも別のエラーが出ました、おそらくラベルが表示されてないエラーだと思います。
教えていただいた HasTitle = True を使用して
以下のようにしたところうまくいきました、
ありがとうございました。
ChartObjects(ActiveChart.Parent.Name).Chart.Axes(xlValue, xlPrimary).HasTitle = True
ChartObjects(ActiveChart.Parent.Name).Chart.SetElement (msoElementPrimaryValueAxisTitleRotated)
ChartObjects(ActiveChart.Parent.Name).Chart.Axes(xlValue, xlPrimary).AxisTitle.Text = "電界強度(V/m)"
ChartObjects(ActiveChart.Parent.Name).Chart.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis)
ChartObjects(ActiveChart.Parent.Name).Chart.Axes(xlCategory, xlPrimary).AxisTitle.Text = "μsec"
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 配列にしたセル範囲でのコメントがあるかどうかを取得するコードの書き方 2 2022/09/17 05:09
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- Excel(エクセル) エクセルのVBAの標準モジュールの名前が文字化けしてしまうのですが。。 2 2022/11/28 16:34
- Excel(エクセル) エクセル VBAの構文について 2 2023/02/10 18:26
- Visual Basic(VBA) findメソッドの変数について 6 2023/06/23 08:01
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- Visual Basic(VBA) エクセルVBA Workbook変数に変数を使ったファイル名を格納したい 5 2023/06/13 14:46
- Visual Basic(VBA) Excel VBA オブジェクトマクロ 使用指定について お詳しい方教えてください。 共通エクセルフ 2 2023/03/14 17:26
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
テキストボックス中の文字列の...
-
実行時エラー 3265「要求された...
-
Excelでフィルタをかけると警告...
-
エクセルのVBAの標準モジュール...
-
ASP レコードセットしたオブジ...
-
VBAで Set wb = Sheets(1).Cop...
-
VBAで既に開いている別アプリケ...
-
EXCEL VBA オートシェイプナン...
-
エクセルVBAで配列内に空白デー...
-
VBScriptからDLL参照設定したい
-
[VBA]CDOメッセージ送信エラー
-
Excel VBAでWordの複数ファイル...
-
CreateObjectとGetObjectの違い
-
ExcelVBAでのNZ関数について
-
Excel2007 VBA ラジオボタン Ca...
-
VBAについてです。 初心者です...
-
VBで引数にDictionaryオブジェ...
-
VBAからPDFファイルにパスワー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
実行時エラー 3265「要求された...
-
エクセルのVBAの標準モジュール...
-
Excelでフィルタをかけると警告...
-
VBAで既に開いている別アプリケ...
-
テキストボックス中の文字列の...
-
EXCEL VBA オートシェイプナン...
-
VBAで Set wb = Sheets(1).Cop...
-
ExcelVBAでのNZ関数について
-
[VBA]CDOメッセージ送信エラー
-
VBAからPDFファイルにパスワー...
-
エクセルVBAでcode128のバー...
-
VBScriptからDLL参照設定したい
-
VBAについてです。 初心者です...
-
エクセルマクロエラー「'Cells'...
-
オブジェクトが見つかりません
-
エクセルVBAで配列内に空白デー...
-
Excel VBAでWordの複数ファイル...
-
VBScriptでファイルの日時順(降...
おすすめ情報