Excel VBA 質問スレッド No.6 (未解決)

VBA ファイル内の全シート内のグラフに対して連続でマクロを実行するには

投稿者 : junko     投稿日時 : 2015/10/25(Sun) 12:25:33     OS : Windows 8     EXCEL : Excel 2010
追加したいこと。

1.グラフ選択機能
2.次シートへの自動移動

これは、全11シートしかないのですがもう一つ「1ファイル8シート」が16ファイル
あるので短時間で変更したいのです。
どこに、どう書けばよいのかご教示願います。

Sub graph_change()

Dim str1 As String, str2 As String, i As Integer

str1 = InputBox("変更前の値を入力してください")
If str1 = "" Then Exit Sub
str2 = InputBox("変更後の値を入力してください")
If str2 = "" Then Exit Sub

With ActiveChart
For i = 1 To .SeriesCollection.Count
.SeriesCollection.Item(i).Formula = Replace(.SeriesCollection.Item(i).Formula, "$" & str1, "$" & str2)
Next i
End With
End Sub

[返信 1] Re : VBA ファイル内の全シート内のグラフに対して連続でマクロを実行するには
投稿者 : 管理人     投稿日時 : 2015/10/28(Wed) 22:05:05
■[質問] junkoさん(2015-10-25 12:25:33)の記事
> 追加したいこと。

> 1.グラフ選択機能
> 2.次シートへの自動移動

> これは、全11シートしかないのですがもう一つ「1ファイル8シート」が16ファイル
> あるので短時間で変更したいのです。
> どこに、どう書けばよいのかご教示願います。


開いているブックの全シートの全グラフに対してgraph_change処理を繰り返したいということであれば、
単純に For Each で繰り返せばいいと思います。
graph_changeと同じモジュール内に以下のtest処理をコピーし、このtestを実行してください。
あと、このマクロを実行するときには、処理したいブックをすべて開いておいてください。

Sub test()
Dim wb As Workbook
Dim ws As Worksheet
Dim co As ChartObject

' すでに開いているブックに対する繰り返し
For Each wb In Workbooks
wb.Activate

' ブック内の全シートに対する繰り返し
For Each ws In wb.Worksheets
ws.Activate

' シート内の全グラフに対する繰り返し
For Each co In ws.ChartObjects
co.Activate
Call graph_change
Next
Next
Next
End Sub

スポンサード リンク
 
 
当掲示板について
返信入力フォーム
お 名 前  :
内  容   :
ステータス  : この質問を解決済みにする

認証コード  :
        キャプチャ画像


( 処理日時 : 2019-08-26 09:44:24 )

Page
Top