こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

VBAコード”当月”のシートの選択

いつもお世話になっております。
下記についてどうしてもうまい方法が思いつかないので、
どなたかご教示願います。

・当月のシートを選択させたい
・詳細
エクセルBOOKでシート名が【2019年4月】【2019年5月】【2019年6月】があり、
今後も7月8月と増えていく
→このシートの中の”当月”のものを選択させたい!
※月が新しくなる度に書き換えるてまを省きたい。

以上です。
どうぞご回答お願い致します。

投稿日時 - 2019-06-18 11:37:21

QNo.9626917

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

次のような挙動でいいでしょうか?

シート名は
【2019年4月】
【2019年5月】
【2019年6月】
【2019年12月】などである。

このブックを開くと
実行日の年月に該当するシートが自動的に選択される。
該当するシートがない場合は、
シートたちの最後にシートを追加し、
選択の上、シート名を設定する。

ならば、
ThisWorkbookオブジェクトに次のコードを配置します。

Option Explicit

Private Sub Workbook_Open()
 Dim ShCount As Long
 Dim tgShName As String
 Dim ShCounter As Long
 
 With ThisWorkbook
  ShCount = .Sheets.Count
  tgShName = Format(Date, "【yyyy年m月】")
  'MsgBox (tgShName)
  For ShCounter = 1 To ShCount
   If .Sheets(ShCounter).Name = tgShName Then
    .Sheets(ShCounter).Activate
    Exit Sub
   End If
  Next ShCounter
 
  .Sheets(ShCount).Select
  Sheets.Add After:=.Sheets(ShCount)
  .Sheets(ShCount + 1).Name = tgShName
 End With
End Sub

投稿日時 - 2019-06-19 14:14:07

ANo.2

シート名は手入力ですか?スペースが入っていたら全角だったりすると該当のシートが見つからないこともあるかもしれません。
まずはNo1の回答で動くことを確認したらエラー回避をいろいろ考えましょう。

投稿日時 - 2019-06-18 22:52:26

ANo.1

こんな感じ?
sht = Format(Date, "yyyy年m月")
Sheets(sh).Select

投稿日時 - 2019-06-18 12:21:43

あなたにオススメの質問