遅刻の「言い訳」選手権

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

A 回答 (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
    • good
    • 5
この回答へのお礼

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

お礼日時:2006/02/14 21:15

日付の右に移動するものです。


日付の列の場合は 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
    • good
    • 1

#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)
を付けてください。
    • good
    • 2

こんばんは。


日付の入力されたシートの名前が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)を
選択すれば良いと思います。
    • good
    • 3

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A