- ベストアンサー
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
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
いっぺんにできますよ。 Sub test() For Each ws In Worksheets ws.Activate ActiveWindow.Zoom = 75 Next End Sub
その他の回答 (3)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 >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
お礼
おかげで解決しました。どうもありがとうございます。
- pascal3141
- ベストアンサー率36% (99/269)
次のようにするとできます。どちらも標準モジュールにコピペ。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
お礼
おかげで解決しました。どうもありがとうございます。
- wild_turkey
- ベストアンサー率31% (10/32)
こんな感じで動くと思います。 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
お礼
おかげで解決しました。どうもありがとうございます。
お礼
おかげで解決しました。どうもありがとうございます。