• ベストアンサー

excelマクロ記述

EXCELのBOOKがあり、n枚のシートを含んでいます。 Macro1という名称のマクロで、 そのBook内のすべてのシートにMacro2というマクロを実行させる という場合、Macro1はどのように書けばいいのですか。 次次にシートを開くという操作をどう表すか? このMacro2では、例えばシートの文字の表示を75%のサイズで表示のようなものを考えています。 またそのときmacro2は、何か記述の追加が必要ならそれはどのようなものか。 よろしくお願いいたします。 Sub Macro1( ) ' Macro1 Macro ' 次次とシートを開き、75%サイズにする xxxxxxxx Sub Macro2( ) ' Macro1 Macro ActiveWindow.Zoom = 75 End Sub End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

いっぺんにできますよ。 Sub test() For Each ws In Worksheets ws.Activate ActiveWindow.Zoom = 75 Next End Sub

taktta
質問者

お礼

おかげで解決しました。どうもありがとうございます。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 >Macro1という名称のマクロで、 >そのBook内のすべてのシートにMacro2というマクロを実行させる >という場合、Macro1はどのように書けばいいのですか。 >次次にシートを開くという操作をどう表すか? >このMacro2では、例えばシートの文字の表示を75%のサイズで表示のようなものを考えています。 サブルーチンにする必要があるかないかは別として、以下のようになりますね。 Sub Macro1 ()  Call Macro2 End Sub Sub Macro2()  Sheets.Select  ActiveWindow.Zoom = 75  ActiveSheet.Select End Sub >またそのときmacro2は、何か記述の追加が必要ならそれはどのようなものか。 あえて付けるなら、Private ステートメントをつけます。 Private Sub Macro2()   ・   ・   ・ End Sub

taktta
質問者

お礼

おかげで解決しました。どうもありがとうございます。

回答No.3

次のようにするとできます。どちらも標準モジュールにコピペ。Macr2の処理を変えると、色々な処理をさせることができます。 ========================== Sub Macro1() Dim Ws As Object ' Macro1 Macro ' 次次とシートを開き、75%サイズにする For Each Ws In Sheets Ws.Activate Macro2 Next End Sub ========================= Sub Macro2() ' Macro1 Macro ActiveWindow.Zoom = 75 End Sub

taktta
質問者

お礼

おかげで解決しました。どうもありがとうございます。

回答No.1

こんな感じで動くと思います。 Sub Macro1() Dim i As Integer For i = 1 To ActiveWorkbook.Sheets.Count Step 1 'シート枚数分繰り返し ActiveWorkbook.Sheets(i).Activate '次々とシートを開く ActiveWindow.Zoom = 75 '75%サイズにする Next i End Sub

taktta
質問者

お礼

おかげで解決しました。どうもありがとうございます。

関連するQ&A