| 
    
     |  | 昨日投稿した内容の続きです。 マナさんのご回答より、Excel動作停止の原因は、
 使用しているグラフに含まれているエラーバーの可能性が非常に高いです。
 
 そこで、処理として以下の流れにすることで
 Excel動作停止を避けたいと考えています。
 
 【VBA内容】
 1.ActiveChartのエラーバーの設定値取得
 2.ActiveChartのエラーバーの削除
 3.ActiveChartのコピー
 4.For文開始
 5.各グラフの残したい縦横軸、エラーバーの設定値を変数に格納
 6.各グラフのエラーバー削除
 7.各グラフにActiveChartの書式をコピー
 8.各グラフに変数に格納した縦横軸、エラーバー設定値を反映
 9.For文終了
 
 2.のエラーバーの削除方法は分かったのですが、
 1.、5.ので使用するErrorBarsプロパティの引数を取得する方法が分かりません。
 
 ご助言のほどよろしくお願いいたします。
 
 
 ▼しょしんしゃ さん:
 >マクロ初心者です。
 >ActiveChartの書式をActiveSheet内の全グラフに反映させる
 >マクロを作成いたしましたが、
 >マクロ処理完了後、Excelの動作が停止してしまいます。
 >
 >VBAのフローに不備がございましたら、教えていただければ幸いです。
 >
 >【使用PCスペック】
 >OS:windows10
 >CPU:Core(TM)i3-6100U CPU @2.30GHz
 >RAM:4GB
 >
 >【VBA内容】
 >縦軸と横軸の最大最小値、目盛りの間隔は元の状態を維持したい為、
 >
 >1.ActiveChartのコピー
 >2.For文開始
 >3.各グラフの残したい縦横軸の設定値を変数に格納
 >4.各グラフにActiveChartの書式をコピー
 >5.各グラフに変数に格納した縦横軸設定値を反映
 >6.For文終了
 >
 >といった処理を行っています。
 >
 >【処理結果】
 >・ActiveSheet内のグラフの書式は狙ったとおりに反映される
 >・各グラフの結果を確認する為に、Excelをいじっていると
 > 10秒程度たった後に動作が停止する
 >
 >
 >【VBA】
 >----------------------------------------
 >Sub グラフ書式の統一()
 >
 >Dim objChart As Object
 >Dim x_MinScale As Single
 >Dim x_MaxScale As Single
 >Dim y_MinScale As Single
 >Dim y_MaxScale As Single
 >Dim x_MjrUnit As Single
 >Dim y_MjrUnit As Single
 >
 >
 >On Error GoTo ErrorHandler
 >
 >
 >If ActiveChart Is Nothing Then
 >  MsgBox "基準となるグラフを選択した状態で実行してください"
 >  Exit Sub
 >End If
 >
 >'基準となるグラフのコピー(後に書式を貼り付け)
 >ActiveChart.ChartArea.Copy
 >
 >
 >'全てのチャートにおいて、"縦横軸の設定保持⇒基準グラフの書式貼り付け⇒元の縦横軸の設定に戻す"を繰り返す
 >For Each objChart In ActiveSheet.ChartObjects
 >
 >
 >  '貼り付け先のグラフの横軸の設定を取得
 >  With objChart.Chart.Axes(xlCategory)
 >    x_MinScale = .MinimumScale
 >    x_MaxScale = .MaximumScale
 >    x_MjrUnit = .MajorUnit
 >
 >  End With
 >
 >  '貼り付け先のグラフの縦軸の設定を取得
 >  With objChart.Chart.Axes(xlValue)
 >    y_MinScale = .MinimumScale
 >    y_MaxScale = .MaximumScale
 >    y_MjrUnit = .MajorUnit
 >  End With
 >
 >
 >  '基準となるグラフの書式を貼り付け
 >  objChart.Select
 >  ActiveSheet.PasteSpecial Format:=2
 >
 >  '保持していた元の横軸設定を反映
 >  With objChart.Chart.Axes(xlCategory)
 >    .MinimumScale = x_MinScale
 >    .MaximumScale = x_MaxScale
 >    .MajorUnit = x_MjrUnit
 >
 >  End With
 >
 >  '保持していた元の縦軸設定を反映
 >  With objChart.Chart.Axes(xlValue)
 >    .MinimumScale = y_MinScale
 >    .MaximumScale = y_MaxScale
 >    .MajorUnit = y_MjrUnit
 >  End With
 >
 >
 >Next
 >
 >''''''
 >
 >ErrorHandler:
 >Exit Sub
 >
 >'''''''
 >
 >End Sub
 >-----------------------------------------------------
 
 |  |