あなたはエクセルのカレンダーを開いた時に、カーソルを今日の日付のところに移動するのが面倒だと思ったことはありませんか?
予定表を開いたら今日の予定を見たいので、今日のところにカーソルがあった方がいいですよね。
毎回エクセルを開くたびに別の日付の部分で開いて、いちいち今日の日付のところまで移動するなんて面倒です。
エクセルVBAを使えば、エクセルを開いた時に、今日の部分を開くことができます。
今回は「エクセルでカレンダーを開いたら今日の日付のところを開くVBAを作る方法」を紹介します。
エクセルでカレンダーを開いたら今日の日付のところを開くVBAを作る方法
エクセルでカレンダーを開いたら今日の日付のところを開くVBAを作る方法です。
普通に開くと、A1セルがアクティブセルの状態で開きます。
これを書いている日は、7/12なのですが、ここから7月まで移動するのは面倒です。
1.「alt」+「F11」を押す →コード入力画面が開く
2.ThisWorkbookをダブルクリック
3.コードを入力
コードを入力します。
エクセルを開いたら今日の日付のところにカーソルを合わせて開く、という意味です。
4.上書き保存して、エクセルを閉じる →再度エクセルを開く
上書き保存したら、エクセルを閉じて、エクセルを開いてみて下さい。
5.今日の日付で開いた
今日の日付の部分にカーソルがある状態で開きました。
これなら今日の日付で開くので、便利ですよね!
予定表が縦書きでも大丈夫
カレンダーが縦書きの場合でも大丈夫です。
コードのRange(***)の***のところに日付の範囲を入れます。
一度ファイルを閉じて開くと・・・
ちゃんと今日の日付のところで開きました!
まとめ
エクセルでカレンダーを開いたら今日の日付のところを開くVBAを作る方法です。
1.「alt」+「F11」を押す →コード入力画面が開く
2.ThisWorkbookをダブルクリック
3.コードを入力
4.上書き保存して、エクセルを閉じる →再度エクセルを開く
5.今日の日付で開いた
これなら予定表のチェックがしやすくなりますね!
最後に、赤枠部のコードです。
横並び版
Private Sub Workbook_Open()
Dim rng As Range
Dim cell As Range
Dim today As Date
today = Date
Set rng = Sheets("予定表").Range("B1:ND1") ' ←1行目に日付が横並び
For Each cell In rng
If IsDate(cell.Value) Then
If cell.Value = today Then
Application.Goto cell, True
Exit For
End If
End If
Next cell
End Sub
縦並び版
Private Sub Workbook_Open()
Dim rng As Range
Dim cell As Range
Dim today As Date
today = Date
Set rng = Sheets("予定表").Range("A1:A368") ' ←1列目に日付が縦並び
For Each cell In rng
If IsDate(cell.Value) Then
If cell.Value = today Then
Application.Goto cell, True
Exit For
End If
End If
Next cell
End Sub