Excelのこととか色々

Excel のこととか楽天とか いろいろ書いてみます・・・

【VBAスタンダードに挑戦!】セルの検索(Find)

【VBAスタンダードに挑戦!】

f:id:tuna-kichi:20200614200940p:plain

 

本日の5分勉強の内容

 

 

********************************************************

Find メソッド

・セルを検索するときに使う

・指定した語句/数値を検索するだけなので、見つけたセルを選択したり、
 色を付けたり、見つけたあとの処理が必要

・範囲. Find(引数)

・以下は引数

 What  検索語句を指定する
 After  ここで指定したセルの次のセルから検索開始する 
 LookIn  検索する対象を指定する(値、数式 etc.)
 LookAt  完全一致かどうかを指定する
 SearchOrder  検索方向を指定する(右 or 下)
 SerchDirection   検索の向きを指定する(次 or 前)
 MatchCase  大小文字を区別するか指定する
 MatchByte  全半角を区別するか指定する
 SearchFormat  書式を含めるか指定する

 

・「What」は必ず指定する

・前回検索した設定が残ってしまうので、「LookAt」は指定した方が安全
 (シート上で手動の検索したときの設定が残る)

 

                      

f:id:tuna-kichi:20200813103729p:plain

表から「Jacket」を検索して赤字にするRange("A1:C5").Find(What:="Jacket").Font.ColorIndex = 3

 

列を指定して「Jacket」を検索して赤字にする
Columns(2).Find(What:="Jacket").Font.ColorIndex = 3

 

表から「Jac」を含むセルを検索して赤字にする
Range("A1:C5").Find(what:="Jac", LookAt:=xlPart).Font.ColorIndex = 3
※完全一致は LookAt:=xlWhole

                      

Is Nothing

 ・検索値が見つからなかった場合、エラーとなる為、
 見つからなかった時の処理が必要となる

f:id:tuna-kichi:20200813105535p:plain

If Columns(2).Find(What:="Jacket") Is Nothing Then
 
処理

Else
 処理

End If

 

********************************************************

Find も使ったことはあります。

最初のころは、見つからなかった時の処理をどうしたらよいか

わからず、苦戦していましたが、

 

If Columns(2).Find(What:="Jacket") Is Nothing Then
 '処理を何も書かない

Else
 メインの処理

End If

 

とすると、見つからなかった時に何もせずスルーしてくれるので、

エラーも発生せず、次の処理に移行してくれます。

 

しかし、Find も最初に見つけたセルのみに対して処理を実行するので、

同じデータが複数ある場合には、違う方法にしたり、補足の処理が必要です。

 

SearchOrder とか SearchDirection は、全く使ったことがないから

別途、勉強が必要かな。

 

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/