• ベストアンサー

複数のシートでマクロの実行

同じブック内のSheet1~Sheet10で同一のマクロを実行させたいのですが。 VBEditorにどのような記述をすればいいでしょうか。

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

  • ベストアンサー
  • ape5
  • ベストアンサー率57% (85/148)
回答No.3

同じマクロを実行したいシートをすべて選択しておきます。 そして以下のマクロを実行すればご希望通りの動作をすると思います。 -------------------------------------------- Dim ws As Worksheet For Each ws In ActiveWindow.SelectedSheets   ws.Cells(15, 2).Value = ws.Name '希望する処理で置き換えてください。 Next ws -----------------------------------------------

yumerie
質問者

お礼

回答ありがとうございます。 こういうのを求めていました。

その他の回答 (3)

  • NCU
  • ベストアンサー率10% (32/318)
回答No.4

標準モジュールに書けばよろしいのでは?

yumerie
質問者

お礼

最初から標準モジュールに書いてますが。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

#1です。 シート名で特定するとか、シート順で特定するとか、何かロジック化出来る必要があります。 ベタですが、シート名が Sheet1, Sheet3, Sheet5 の時だけ、A1にシート名を入れます。 Sub Test1() Dim ws As Worksheet  For Each ws In Worksheets    Select Case ws.Name     Case "Sheet1", "Sheet3", "Sheet5"        ws.Range("A1").Value = ws.Name    End Select  Next ws End Sub

yumerie
質問者

お礼

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

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

どんな処理なのか、、、にもよります。 シートイベントならば Thisworkbook に書けば良いし、それ以外ならループさせる感じでしょうか。 例えば下記を標準モジュールに書いて実行すると、ブック内の全シートのA1にシート名を入力します。 Sub Test() Dim ws As Worksheet  For Each ws In Worksheets    ws.Range("A1").Value = ws.Name  Next ws End Sub

yumerie
質問者

お礼

回答ありがとうございます。 シートイベントではありません。 Sheet1~20あるうちのSheet1~10までに対応させたいのですが。 (場合によっては連番でないこともあります)