• ベストアンサー

シート選択をVBAでやる方法について教えてください。

シート選択をVBAでやる方法について教えてください。 4月から順に12シートあります。その中で 先月、今月、来月の分の3シートをまとめて選択したいのです。 11月12月1月2月3月とシートは並んでいて 今は1月なので12月、1月、2月のシートを選択という感じです。 これは可能でしょうか? 最終的にはコピーして新しいブックに張付ける予定です。 EXCEL2003です。宜しくお願いします。

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

  • ベストアンサー
  • kuroizell
  • ベストアンサー率55% (95/170)
回答No.3

少し目に優しく・・・ Sub SheetSelect_CurrentBeforeAfter()   Dim C As String 'Current month   Dim B As String 'Before month   Dim A As String 'After month   With ActiveSheet     C = .Name     B = .Previous.Name     A = .Next.Name   End With   Worksheets(Array(C, B, A)).Select End Sub

hikaruj22
質問者

お礼

本当に目に優しいですね!解りやすかったです。 ありがとうございました。

その他の回答 (2)

  • S-Fuji
  • ベストアンサー率36% (592/1624)
回答No.2

1月がアクティブになっている場合、アクティブシートの番号を取得しその前後を合わせて選択する Sub TEST1() Dim n As Integer n = ActiveSheet.Index Worksheets(Array(n - 1, n, n + 1)).Select End Sub nに現在のシート番号が入ります。 但し、3月になったら、4月のシートがある事が前提です。 名前での方法もありますが、新たな4月になった場合はどのようになりますか?。 どちらにしても、若干の工夫が必要かと思います。

hikaruj22
質問者

お礼

すばやい回答で、見ていてなるほど!!と思いました。 ありがとうございました。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

シート名が「1月」「2月」~「12月」なんですね。 シート選択だけでしたら↓こんな感じでどうでしょう Sub Sample()  Dim sBeforeMonth, sNowMonth, sAfterMonth  sBeforeMonth = Month(Now() - Day(Now())) & "月" '先月のシート名  sNowMonth = Month(Now()) & "月" '今月のシート名  sAfterMonth = Month(Now() - Day(Now()) + 32) & "月" '来月のシート名  Sheets(Array(sBeforeMonth, sNowMonth, sAfterMonth)).Select End Sub

hikaruj22
質問者

お礼

ちゃんと今月に行ってくれるので助かりました。 使わせていただきます。ありがとうございました。

関連するQ&A

専門家に質問してみよう