Excelを使ってスケジュール管理のようなことをしている方は少なくありません。
そういった方から、
「Excelファイルを開いたときに今日の日付をアクティブにするにはどうしたらいいのでしょう?」
といったご質問をいただくことがあります。
例えば、ワークシートに1か月分の日付を入力しておいて、Excelファイルを開いたときに、今日の日付の入力されているセルをアクティブにしたい、といった要望です。
今日の日付の入力されているセルを選択するAUTO_OPENマクロ
VBA(Visal Basic for Applications)を使える方なら、ファイルを開いたときに自動的に実行されるAuto_Openマクロに、今日の日付の入力されているセルをアクティブにするというプロシージャを作成しておけばOKです。
Sub Auto_Open()
Dim sh As Worksheet
Dim rng As Range
Application.ScreenUpdating = False
For Each sh In Worksheets
sh.Activate
Set rng = sh.Cells.Find(what:=Date)
If Not (rng Is Nothing) Then
rng.Activate
Exit For
End If
Next sh
End Sub
「今日の日付をアクティブにするには?」
といったご要望をいただく場合、シートを1か月ごとに作成して、Excelファイル内に複数のシートが存在していることが多いように感じます。
ですからここでは、Excelファイル内に存在するすべてのワークシートを順番にチェックし、今日の日付の入力されているセルを見つけ選択するというマクロにしました。
サンプルマクロの解説
すべてのワークシートにループを回して、
For Each sh In Worksheets
シートを選択してから、今日の日付をそのシートの中で探します。
sh.Activate
Set rng = sh.Cells.Find(what:=Date)
RangeオブジェクトのFindメソッドの引数に「what:=Date」と指定することで、今日の日付を探しているわけです。
今日の日付の入力されているセルがみつかったときに、
If Not (rng Is Nothing) Then
そのセルを選択して、ループを終了しています。
rng.Activate
Exit For
- Newer:メニューバーを表示するには?−Altキー
- Older:アウトラインで本文が途中から表示されない−1行目のみ表示
Home » エクセルマクロ・Excel VBAの使い方 » イベントプロシージャ » ファイルを開いたときに今日の日付をアクティブにするExcelマクロ