• ベストアンサー

ファイルのオープン時に今日の日付にジャンプ

エクセルでA列に日付を入力しました。 ファイルのオープン時に自動的に今日の日付にカーソルがジャンプするように設定したいのですが? また、ファイルオープン時にカーソルが一番左又は日付の右に移動するように設定できますか?

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.4

こんにちは。KenKen_SP です。 Find メソッドは文字列の検索なので、検索値を日付の表示形式に書式を そろえてやる必要があります。Match 関数を使うと日付書式に関係なく シリアル値で検索ができます。ご参考までに。 標準モジュールに下記をコピー&ペーストして下さい。 Sub AUTO_OPEN()   Dim lngR As Long   On Error Resume Next   Worksheets("Sheet1").Activate   lngR = WorksheetFunction.Match(CDbl(Date), Range("A:A"), 0)   If Err.Number = 0 Then     Cells(lngR, "A").Select   Else     MsgBox "今日の日付は見つかりません"   End If   On Error GoTo 0 End Sub

VWT4
質問者

お礼

大変参考になりました。 ありがとうございました。

その他の回答 (3)

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.3

日付の右に移動するものです。 日付の列の場合は Offset(0, 0) にしてください。 Public Sub Auto_Open() Dim rng As Range On Error GoTo Func_Exit Worksheets("sheet1").Activate For Each rng In ActiveSheet.Range("A:A") If IsDate(rng) Then If rng = Date Then rng.Offset(0, 1).Select Exit For End If End If Next Func_Exit: Exit Sub End Sub

  • masa_019
  • ベストアンサー率61% (121/197)
回答No.2

#1の回答の訂正です。 よく確認しないで、投稿してしまいました。 今日の日付にジャンプさせるには、 Sub Auto_Open() Worksheets("Sheet1").Activate Range("A:A").Find(What:=Format(Date, "m月d日"), _ LookIn:=xlValues, LookAt:=xlWhole).Select End Sub です。Offsetは余計でした。 ひとつ右隣を選択の場合には Offset(, 1) を付けてください。

  • masa_019
  • ベストアンサー率61% (121/197)
回答No.1

こんばんは。 日付の入力されたシートの名前がSheet1だとして、 ファイルを開く時にマクロを動作させるには、 標準モジュールに Sub Auto_Open() Worksheets("Sheet1").Activate Range("A:A").Find(What:=Format(Date, "m月d日"), _ LookIn:=xlValues, LookAt:=xlWhole).Offset(, 1). _ Select End Sub とするか、 ThisWorkbookの Private Sub Workbook_Open()に 上記と同じ内容のコードを書けば出来ると思います。 サンプルでは、Format関数の書式表示文字列を "m月d日"としていますが、この部分は実際の書式表示に 合わせて変えてください。 また日付のセルの右を選択させるには、上記で選択されたセルのOffset(,1)を 選択すれば良いと思います。

関連するQ&A