質問:
エクセルのマクロで、複数のシートを選択するプログラムを記述したいのですが、
シート数に依存しないよう、一般化して記述するにはどうしたらよいか分かりません。
可能でしょうか?

例えば、あるBookのSheet1〜Sheet3までをまとめて選択したければ、
Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select
という記述で可能だと思います。しかしこの記述では当然、Sheet1〜3
の選択しか出来ません。そこで、選択する先頭のシートをi,
最後のシートをjとし、このiとjを用いてシートの選択を行うような
記述が出来たらと考えています。選択するシートは連続していると
限定して構いません。(1〜3、2〜4のように連続している。
2・4・6の様に飛び飛びではない。)

動作が遅くなるような記述でも全く構いません。
ご存知の方宜しくお願い致します。
答え:
シート番号ではなくて、シート名がSheet1,Sheet2・・・となっていて、このSheetの後ろの番号を指定するわけですね?

サンプルとしてはこんな感じでしょうか。(2〜4を選択する場合)

Public Sub SheetsSelect()
Dim i As Integer, j As Integer
Dim k As Integer
Dim SheetNames() As String
i = 2
j = 4
ReDim SheetNames(i To j)
For k = i To j
SheetNames(k) = "Sheet" & k
Next
Sheets(SheetNames).Select
End Sub
補足の質問:
選択したいシートを配列に入れて、その配列をSheets().Selectに渡してあげればよかったんですね。ありがとうございました!この質問・回答は役に立ちましたか?

ウェブサイトのユーザーによる情報ポスト、JPQA.comのない保証の正しさ.

  • ホットカーペットを購入したんですが、ホットカーペッ...
  • ワードでの入力について質問なのですが温度の単位「...
  • 70代の男性が簡単に使えて剃り残しの少ない電気髭剃...
  • エクセルのシート1をシート2にそのまま、コピー貼り...
  • 文書ソフトの一太郎で罫線を引いたあと両サイドに矢印...
  • mp3やWMP、AACなどに圧縮せず、CD音源のまま焼けば音...