[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBA ファイルを開いたら今日の日付にジャンプ』(BUBISON)
エクセルファイルに一か月の予定を入れています。(A〜H列)
ファイルを開いたときに、今日の日付に飛ぶようにしたいのですが、どうすればよいでしょうか。
< 使用 Excel:Excel2019、使用 OS:Windows10 >
ネット検索でそれっぽいのがヒットしますよ。
(tkit) 2021/09/02(木) 11:21
Private Sub Workbook_Open() Dim SearchRange As Range Dim ws As Worksheet Dim rng As Range For Each ws In ThisWorkbook.Worksheets Set SearchRange = Intersect(ws.Range("A1:H1").EntireColumn, ws.UsedRange) For Each rng In SearchRange If rng.Value = Date Then rng.Select Exit Sub End If Next Next End Sub
試作品です。
ThisWorkbookモジュールに記入します。
ワークシートと行の指定がないので全部探します。
このままでは実用的ではありません。
(めざめるパワー) 2021/09/02(木) 11:25
めざめるパワーさん
できました。
範囲は指定しましたが、シートはsheet1だけなのですが、このままでよいのでしょうか?
これは、全シートをチェックしているのですか?
(BUBISON) 2021/09/02(木) 13:07
Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets (中略) Next
この部分で全シートを巡回しています。
1つしかなければその1つしか巡回しませんが
全シート巡回できるようにしている分無駄な処理をしています。
同様にA〜H列の使用している全セルを巡回しているのでこれも無駄です。
予期しないエラーを回避するためにも日付の入力されているセルだけを巡回するのが良いです。
他にも問題ありの試作マクロですがとりあえず。
(めざめるパワー) 2021/09/02(木) 13:19
8列(A〜H列)にWORKDAY関数ってことは、日付が複数行に渡ってるってことですかね?
私なら、日付かどうか分からない範囲で比較する場合、IsDateでエラートラップして、DateDiff関数で日付の差を取得します。
または、日付の表示形式を統一して、ワークシートのMATCH関数で検索するかですね。
セル位置が分からないので、コードは提示しません。
VBAの経験が御有りのようですので、詰まったらコードを提示してみてください。
(tkit) 2021/09/02(木) 14:22
Private Sub Workbook_Open()
Dim FRng As Range Worksheets("TagetSheet").Activate Set FRng = Rows("1:150").Find(Date, LookIn:=xlFormulas) If Not FRng Is Nothing Then FRng.Activate Else MsgBox "今日の日付が見つかりません。", vbExclamation End If Set FRng = Nothing End Sub (BUBISON) 2021/09/02(木) 16:48
めざめるパワーさんが提供してくれたコードで
動いている、ということですので、これにて失礼させていただきます。
(tkit) 2021/09/03(金) 11:07
'イミディエイトウィンドウに出力追加 Private Sub Workbook_Open() Dim SearchRange As Range Dim ws As Worksheet Dim rng As Range For Each ws In ThisWorkbook.Worksheets Debug.Print "シート検索 :" & ws.Name Set SearchRange = Intersect(ws.Range("A1:H1").EntireColumn, ws.UsedRange) Debug.Print "検索セル範囲:" & SearchRange.Address(False, False) For Each rng In SearchRange If rng.Value = Date Then rng.Select Debug.Print "判定セル&値:" & rng.Address(False, False) & ":" & rng.Value & ":Select" Exit Sub Else Debug.Print "判定セル&値:" & rng.Address(False, False) & ":" & rng.Value End If Next Next End Sub
(tkit) 2021/09/03(金) 14:32
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.