• ベストアンサー

質問NO:325404  の続きのような感じですが・・。 エクセルマクロ教えて下さい~!

私も、同じ悩みで苦戦していたので、回答のマクロを作成して、応用させていただきました。 本当に助かりました!ありがとうございます。 ですが、マクロを走らせるブックのシート数が、それぞれ異なります。 その場合、”あるシートすべてを選ぶ” 場合はどんなプログラムを組み込めばいいのでしょうか? 教えて下さ~い!

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

マクロ記録を行ったのであれば、  シート単位に選ぼうが、  シートタブを右クリックし、全てのシートを選択しようが、記録されるマクロは、 Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select ・・・・・(A) のようなものではないでしょうか。(シートが3つの場合)これでは、汎用のマクロにはならないでしょう。 (A)の部分を汎用に書き換える例として、 WorksheetsコレクションオブジェクトのSelectメソッドを利用してみます。 (A)の行を削除して下の7行に書き換えてみて下さい。そのBookの全ワークシートを選択するはずです。 ここから ↓ Dim ws As Worksheet 'ワークシート Dim FLG As Boolean '追加選択するためのフラグ FLG = True For Each ws In Worksheets   ws.Select FLG   FLG = False Next ↑ ここまで Arrayの中身を作る方法もありますが、こちらが簡単だと思います。ご参考に。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

下記のようなのもあります。 Bookの中の全てのSheetに何かを行う時使えませんか。 ただBookの中の全てのSheetに、同じかプログラム化 出来る事ってあまり考えつかないですが。 Sub test04() Workbooks(1).Activate Dim sh As Worksheet For Each sh In ActiveWorkbook.Sheets ' MsgBox sh.Name Workbooks(1).Sheets(sh.Name).Range("b1") = "s" Next End Sub

mizuharu
質問者

お礼

ありがとうございました。 ただ、ちょっとご説明いただいた内容が私にはむずかしくて・・。 マクロは奥が深いですね。 もっと勉強してみます!

  • BlueRay
  • ベストアンサー率45% (204/453)
回答No.1

>”あるシートすべてを選ぶ” とは、存在するシート全てと言うことですか? それなら、質問NO:325404にある通りの3番で出来ないですか??? (3)シートを作業グループとする。(シート見出しを右クリックし、全てのシートを選択する。をクリック) 以上です。違ってたりしたら、補足してください。ではでは。

mizuharu
質問者

お礼

ありがとうございました。 説明不足ですみません。 一応、伺いたかったことはそれぞれの異なるシート数のブックに マクロを走らせたかったんです。 結果は、 Sheets().Copy Sheets().Select でやってみたらいけました。 早速のご回答ありがとうございました!

関連するQ&A

専門家に質問してみよう