Home » Excel VBA Rangeオブジェクト » セル検索 » Excel VBAのCells.Find(What:=Date)とは

Excel VBAのCells.Find(What:=Date)とは

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2210 ビルド15726.20202 Microsoft Store)

「Set rng = sh.Cells.Find(what:=Date)」
という検索で、アクセスがありました。

結論からお伝えします。

[スポンサードリンク]
Set rng = sh.Cells.Find(what:=Date)

とは、Worksheet型のオブジェクト変数shに代入されているワークシートの

Set rng = sh.Cells.Find(what:=Date)

全セルから、

Set rng = sh.Cells.Find(what:=Date)

今日の日付の入力されているセルを検索して、

Set rng = sh.Cells.Find(what:=Date)

Range型のオブジェクト変数rngに代入している

Set rng = sh.Cells.Find(what:=Date)

式(コード)です。

今日の日付のセルを検索するサンンプルマクロ

アクティブなワークシートに日付をいくつか入力しておいてから、以下のExcelマクロを実行してください。

Sub 今日の日付を検索する()
On Error GoTo ErrHandl

 Dim rng As Range
 Set rng = Cells.Find(What:=Date)
 rng.Select
 MsgBox rng.Address(False, False)

Exit Sub
ErrHandl:
 MsgBox "今日の日付が入力されているセルは見つかりませんでした。"
 Err.Clear
End Sub

今日の日付の入力されているセルがあれば、そのセルが選択され、

rng.Select

セル番地がメッセージボックスに表示されます。

MsgBox rng.Address(False, False)

検索できない場合は引数LookInを

今日の日付が入力されているにもかかわらず検索されない場合には、

Set rng = Cells.Find(What:=Date)

の部分を

Set rng = Cells.Find(What:=Date, LookIn:=xlFormulas)

にしてください。

「Cells.Find(What:=Date)」の読解

上記のサンプルマクロの「Cells.Find(What:=Date)」を、読み解いておきましょう。

全セルを表すRangeを返すCellsプロパティ

上記マクロの「Cells」は、

Set rng = Cells.Find(What:=Date)

Excelライブラリの、グローバルメンバーのCellsプロパティです。

実行されると、アクティブなワークシートの全セルを表すRangeオブジェクトを返します。

この記事のキッカケとなった
「Set rng = sh.Cells.Find(what:=Date)」
の場合は、Worksheetオブジェクトに用意されているCellsプロパティです。

こちらも、そのワークシートの全セルを表すRangeオブジェクトが戻り値です。

セルを検索するRange.Findメソッド

つづく「.Find」は、

Set rng = Cells.Find(What:=Date)

Rangeオブジェクトに用意されているFindメソッドです。

Range.Findの引数Whatに指定されているDateはVBAの関数

Range.Findメソッドの引数Whatに指定されているDateは、

Set rng = Cells.Find(What:=Date)

今日の日付を返すVBAのDate関数です。

最終更新日時:2022-12-13 15:10

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » セル検索 » Excel VBAのCells.Find(What:=Date)とは

「セル検索」の記事一覧

検索


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

.