プロが教えるわが家の防犯対策術!

Excelで「A」というマクロ処理を特定(複数)のシートのみ実行する方法を教えてください。
以下の方法を教えていただいたのですが、
シートは1シートずつではなく「4~10」のように指定したいです。

Sub 複数シート()
Dim sh As Worksheet
For Each sh In Worksheets(Array("Sheet1", "sheet3"))
sh.Select
Call Aマクロ
Next
End Sub

質問者からの補足コメント

  • 回答ありがとうございます!
    すみません、以下でエラーが出てしまうのですが、
    対処方法を教えていただくことは出来ますか?

     i_start = Worksheets(sh_start).Index
     i_end = Worksheets(sh_end).Index

    初心者で知識が足りず申し訳ございません。

    No.2の回答に寄せられた補足コメントです。 補足日時:2021/07/21 11:47

A 回答 (3件)

Const sh_start As String = "Sheet1"


 Const sh_end As String = "Sheet6"

これは、任意に指定してね。
ここでは仮の値を入れてますが。

開始シートと終了シートの間に、処理したいシートを挟めばいい、
という汎用性を持たせています。
    • good
    • 1
この回答へのお礼

早々のご連絡ありがとうございます。
やってみます。

お礼日時:2021/07/21 13:02

開始終了シート含まず、その間のシートで実行



Sub 複数シート()
 Const sh_start As String = "Sheet1"
 Const sh_end As String = "Sheet6"
 Dim i_start, i_end
 i_start = Worksheets(sh_start).Index
 i_end = Worksheets(sh_end).Index

 For i = i_start + 1 To i_end - 1
  Worksheets(i).Select
  Call AAA
 Next i
End Sub
この回答への補足あり
    • good
    • 0

こんにちは


Call Aマクロにシート名などを渡して分岐すれば良いかと

Sub 複数シート()
Dim sh As Worksheet
For Each sh In Worksheets(Array("Sheet1", "sheet3"))
sh.Select
Call Aマクロ(sh.Name)
Next
End Sub
Sub Aマクロ(sh As String)
If sh = "sheet3" Then
メイン処理
End If
End Sub
    • good
    • 1
この回答へのお礼

早々の回答ありがとうございます。

お礼日時:2021/07/21 11:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A