Home » エクセルマクロ・Excel VBAの使い方 » イベントプロシージャ » ファイルを開いたときに今日の日付をアクティブにするExcelマクロ

ファイルを開いたときに今日の日付をアクティブにするExcelマクロ

対象:Excel2002, Excel2003, Excel2007

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

 Application.ScreenUpdating = True
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

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » イベントプロシージャ » ファイルを開いたときに今日の日付をアクティブにするExcelマクロ

「イベントプロシージャ」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.