何方か、回答をお願いします。
下記のマクロは全てのシートに対して埋込グラフのタイトルをシート名にする物ですが
ChartObjectsメソッドは失敗しましたと出るときが有ります。
On Error GoTo が効いてErrHandlerに行くときも有るのでよく分かりません。
有識者の方々のもっと良いコードを教えて下さい。
(1つのシートに対してグラフは0~3個です。)
Sub シート名グラフ名()
Dim mysheet As Worksheet
For Each mysheet In Worksheets
On Error GoTo ErrHandler
With mysheet.ChartObjects(1).Chart
.ChartTitle.Text = mysheet.Name
End With
With mysheet.ChartObjects(2).Chart
.ChartTitle.Text = mysheet.Name
End With
With mysheet.ChartObjects(3).Chart
.ChartTitle.Text = mysheet.Name
End With
ErrHandler:
Next mysheet
End Sub
No.3ベストアンサー
- 回答日時:
こんばんは。
ためしに、元のコードに付け足してみました。
不必要なものは、削除してしまってください。
Sub グラフ名前調査() 'グラフをアクティブにしておく
Dim strName As String
Dim ChartName As String
Dim myChart As Object
Dim i As Integer
Dim t As String
strName = StrConv(TypeName(Selection), vbUpperCase)
If strName = "CHARTAREA" Or _
strName = "GRIDLINES" Or _
strName = "PLOTAREA" Then
ChartName = ActiveChart.Name '名前
i = ActiveChart.Parent.Index 'インデックス
t = ActiveChart.ChartTitle.Caption 'タイトル
MsgBox "名前:" & ChartName & vbCrLf & _
"インデックス: " & CStr(i) & vbCrLf & _
"タイトル:" & t
End If
End Sub
Wendy02様回答ありがとう御座います。
名前・インデックス値等取れることを確認しました。
今回も、勉強になるコードありがとう御座いました。
No.2
- 回答日時:
こんばんは。
Wendy02です。それは良かったです。VBAで、出来そうで出来ないのが、グラフですね。経験(=失敗の数)に勝る学習はありませんね。
>シート名+コメントみたいに変更出来ませんでしょうか?
>(sh.Name & "(グラフ1)" sh.Name & "(グラフ2)" sh.Name & "(グラフ3)"
出来ると思いますが、ただ、"(グラフ1)" というのは、たぶん、作った順で、位置の順ではありませんから、もし、それでは上手くない時は、また考えます。
また、一応、シートごとで、番号を振ることにします。
Sub ChartTitleArrangeR()
Dim sh As Variant
Dim cht As Variant
Dim i As Integer
For Each sh In Worksheets
For Each chrt In sh.ChartObjects
With chrt
i = i + 1
.Chart.HasTitle = True
.Chart.ChartTitle.Characters.Text = sh.Name & "(グラフ" & CStr(i) & ")"
End With
Next chrt
i = 0
Next sh
End Sub
この回答への補足
Wendy02様何時も回答ありがとう御座います。
私の補足質問が間違っていました、すみません。
シート名+コメントなのですが、sh.Name & "(グラフ東京)"、sh.Name & "(グラフ大阪)"
こんな感じで数字でなく文字でした。
後もう一つ別件ですが良ければ教えて下さい。
下記のマクロでグラフの名前は取れますが、ChartObjects(3)と言うような
インデックス番号(間違っているかも?)この場合3を調べたのですがどの様な
コードを書けば宜しいのでしょうか。?
Sub グラフ名前調査() 'グラフをアクティブにしておく
Dim namaaa As String
namaaa = ActiveChart.Name
MsgBox namaaa
End Sub
No.1
- 回答日時:
こんばんは。
Wendy02です。私は、今、前の発言を調べてみたけれども、以前、それについては書かなかったようですね。
今回は、前回の失敗を学んで、Excel2000で調べております。
最初は、まず、エラー・トラップは入れておりません。これで試してみていただけますか?
Sub ChartTitleArrange()
Dim sh As Variant
Dim cht As Variant
For Each sh In Worksheets
For Each chrt In sh.ChartObjects
With chrt
.Chart.HasTitle = True
.Chart.ChartTitle.Characters.Text = sh.Name
End With
Next chrt
Next sh
End Sub
この回答への補足
Wendy02様何時も回答ありがとう御座います、作動確認してバッチリでした。
もし良ければですが、補足質問をお願いします。
現在はシート名とグラフタイトルはシート内で同じですが、
シート名+コメントみたいに変更出来ませんでしょうか?
(sh.Name & "(グラフ1)" sh.Name & "(グラフ2)" sh.Name & "(グラフ3)"
こんな感じ)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) vbaで列幅について 1 2022/11/15 08:31
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Excel(エクセル) VBAのoffsetの動き方について教えてください 3 2022/11/25 23:36
- Excel(エクセル) 複数のブックをひとつのブック(複数のシートにまとめる)場合にシートとの順番について 5 2022/12/28 20:47
- Visual Basic(VBA) シート削除のマクロで「deleteメソッドは失敗しました」となります。助けてください! Sub 不要 6 2022/09/08 16:41
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
はみ出たレーダーチャートの表...
-
エクセルのグラフの色を統一す...
-
ワードでCos、sinの図を書きたい
-
グラフの線だけをコピペしたい!
-
Excelで膨大な系列数のグラフを...
-
Excelグラフについて
-
EXELグラフをWORDに貼り付ける...
-
エクセルでグラフの平均化を教...
-
エクセルのグラフに上下限値の...
-
【至急】Excelで睡眠時間のグラ...
-
Excel:角ばったグラフの線を滑...
-
Excel 散布図グラフ 外れ値 セ...
-
Excelのグラフで
-
Sma4のグラフ作製
-
excelで線と線の間を塗りつぶし...
-
wordで数直線・グラフを作成
-
エクセルVBAでグラフのインデッ...
-
Excelのグラフで上と右の枠線を...
-
エクセル2007で一定の角度の線...
-
パワーポイントでコストアップ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのグラフの色を統一す...
-
エクセルのグラフに上下限値の...
-
はみ出たレーダーチャートの表...
-
【至急】Excelで睡眠時間のグラ...
-
Excelのグラフで
-
グラフの線だけをコピペしたい!
-
Excelのグラフ「プロット...
-
Excelのグラフで上と右の枠線を...
-
EXELグラフをWORDに貼り付ける...
-
パワーポイントでコストアップ...
-
Excel:角ばったグラフの線を滑...
-
エクセルでグラフの平均化を教...
-
EXCELで数値に対応したベクトル...
-
Excelグラフ
-
excelで、折れ線グラフと折れ線...
-
エクセル グラフのプロットエ...
-
Excelで膨大な系列数のグラフを...
-
エクセルのグラフを自動で一色に
-
グラフの上側が空いているので...
-
excelで線と線の間を塗りつぶし...
おすすめ情報