特殊・他 findメソッド(バージョンによっては使えない)

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。


'※難しいメソッドに思えますが、意外に簡単です 
'
'ヘルプにもありますが、ヘルプの方が判り難いかもしれません。
'対象 Rangeオブジェクト(つまりエクセルのセル)
'構文 expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte)
'expression  検索の対象となるRange オブジェクトを指定(捜される側の範囲)
'引数What    省略不可、(バリアント型 )検索する値を指定。
'引数After   省略可能、(バリアント型 )検索を開始するセル。単一セルを指定。検索は指定したセルの次から始まる。指定したセル自体は、検索が範囲全体を一度検索して戻ってくるまで検索されません。
'省略すると 対象セル範囲の左上端のセルが検索の開始点になる。
'引数LookIn  省略可能、(バリアント型 )セル内の何を対象とするのか指定。
'    xlFormulas  数式    LookIn:=xlValues
'    xlValues 値
'    xlComments コメント
'引数LookAt  省略可能、(バリアント型 )検索方法の指定。
'    xlPart  一部分でも含まれていたら    LookAt:=xlPart
'    xlWhole 完全同一値のみ
'省略すると xlPartとなります。
'引数SearchOrder 省略可能、(バリアント型 )検索方向の指定。
'    xlByColumns 列  SearchOrder:=xlByRows
'    xlByRows 行
'引数SearchDirection 省略可能、(バリアント型 )検索始点の決定。
'    xlNext  次から  SearchDirection:=xlNext
'    xlPrevious 前から
'省略すると xlNextとなります。
'引数MatchCase   省略可能、(バリアント型 )大文字と小文字の区別。
'    TRUE    区別する    MatchCase:=False
'    FALSE   区別しない
'省略すると Falseとなります。
'引数MatchByte   省略可能、(バリアント型 )半角と全角の区別。
'    TRUE    区別する    MatchByte:=False
'    FALSE   区別しない
'省略すると Falseとなります。
'返値 検索をし最初に見つかったセルを返します。
'例 .Find(What:="2001", After:=ActiveCell, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)
'
'使用例

Dim FoundDate As Variant
            
    Set FoundDate = Worksheet("対象").Columns("A:A").Find(What:="1999/4/5") '①
            
    If FoundDate Is Nothing Then '②
            
    MsgBox "nothing  "
            
    Else
            
    Worksheet("記録").Range("a1").Value = FoundDate.Offset(0, 1).Value '③
            
    End If
'解説    上記の例にて、①万一検索対象の「Worksheet.Columns("AD:AD")」セル内に「1999/4/5 12:00:01」の情報値が入っていた場合、必要引数をすべて省略しているため見つかったセル③を返します。しかし、引数LookAtのxlWholeを指定した場合は②Nothingということになります。時間を扱う場合には注意が必要です。
'    でも、大抵の場合全ての引数は省略①してもよいでしょう。
'    又③では「見つかった場合そのセルのすぐ右横のセルの内容を記録する」になってます。使い方によっては大変便利なメソッドです。
'注意    引数 LookIn、LookAt、SearchOrder、および MatchByte の設定は、このメソッドが使われるたびに保存されます。次にこのメソッドを使うときに、これらの引数の指定を省略すると、保存された設定が使われます。

 

 

 

2000年01月01日|[VBサンプルコード]:[特殊・他]