- ベストアンサー
質問NO:325404 の続きのような感じですが・・。 エクセルマクロ教えて下さい~!
私も、同じ悩みで苦戦していたので、回答のマクロを作成して、応用させていただきました。 本当に助かりました!ありがとうございます。 ですが、マクロを走らせるブックのシート数が、それぞれ異なります。 その場合、”あるシートすべてを選ぶ” 場合はどんなプログラムを組み込めばいいのでしょうか? 教えて下さ~い!
- みんなの回答 (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)
下記のようなのもあります。 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
- BlueRay
- ベストアンサー率45% (204/453)
>”あるシートすべてを選ぶ” とは、存在するシート全てと言うことですか? それなら、質問NO:325404にある通りの3番で出来ないですか??? (3)シートを作業グループとする。(シート見出しを右クリックし、全てのシートを選択する。をクリック) 以上です。違ってたりしたら、補足してください。ではでは。
お礼
ありがとうございました。 説明不足ですみません。 一応、伺いたかったことはそれぞれの異なるシート数のブックに マクロを走らせたかったんです。 結果は、 Sheets().Copy Sheets().Select でやってみたらいけました。 早速のご回答ありがとうございました!
お礼
ありがとうございました。 ただ、ちょっとご説明いただいた内容が私にはむずかしくて・・。 マクロは奥が深いですね。 もっと勉強してみます!