Findメソッド,Like演算子を使った検索:Excel VBA入門 |
スポンサードリンク | |
Findメソッド | Like演算子 | Replaceメソッド |
引数 | 定数 | 内容 |
What | 検索するデータを指定 | |
After | 省略可:検索を開始するセルを指定。 指定したセル自体は、検索が範囲全体を一度検索して戻ってくるまで検索されません。 省略すると左上端から開始します。 |
|
LookIn | 省略可:情報の種類を指定。 | |
xlFormulas | 数式 | |
xlValues | 値 | |
xlComents | コメント文 | |
LookAt | 省略可 | |
xlPart | 一部が一致するセルを検索 | |
xlWhole | 全てが一致するセルを検索 | |
SearchOrder | 省略可:検索の方向を指定 | |
xlByRows | 検索方向を行にします | |
xlByColumns | 検索方向を列にします | |
SearchDirection | 省略可:検索の順序を指定 | |
xlNext | 順方向 | |
xlPrevious | 逆方向 | |
MatchCase | 省略可:大文字と小文字を区別する。 | |
True | 区別する | |
False | 区別しない | |
MatchByte | 省略可:半角と全角を区別する | |
True | 区別する | |
False | 区別しない | |
SearchFormat | 省略可:検索に書式を含める。 | |
True | 含める | |
False | 含めない |
Sub Find_01() Dim c As Object Dim myKey As String, fAddress As String myKey = "鹿児島県" With Worksheets(1).Range("a1:a30") Set c = .Find(What:=myKey, LookIn:=xlValues, lookat:=xlWhole, _ SearchOrder:=xlByColumns, MatchByte:=False) If Not c Is Nothing Then fAddress = c.Address Do c.Interior.ColorIndex = 4 '明るい緑 Set c = .FindNext(c) If c.Address = fAddress Then Exit Do Loop End If End With End Sub |
Sub Find_02() Dim c As Object Dim myKey As String, fAddress As String myKey = "崎" With Worksheets(1).Range("a1:a30") Set c = .Find(What:=myKey, LookIn:=xlValues, lookat:=xlPart, _ SearchOrder:=xlByColumns, MatchByte:=False) If Not c Is Nothing Then fAddress = c.Address Do c.Interior.ColorIndex = 4 '明るい緑 Set c = .FindNext(c) If c.Address = fAddress Then Exit Do Loop End If End With End Sub |
Sub Find_03() Dim c As Object Dim r As Range Dim myKey As String For Each r In Range("A2:A4") myKey = Left(r.Value, 5) Set c = Range("E2:E9").Find(myKey, LookAt:=xlWhole) If c Is Nothing Then MsgBox myKey & "は見つかりませんでした。" Else r.Offset(0, 1).Value = c.Offset(0, 1).Value End If Next r End Sub |
文字パターン | 引数stringの中の一致する文字 |
? | 任意の1文字 |
* | 任意の数の文字 |
# | 任意の1文字の数字 (0-9) |
[charlist] | 文字リスト(charlist)に指定した文字の中の任意の1文字 |
[!charlist] | 文字リスト(charlist)に指定した文字以外の任意の1文字 |
Sub Find_01() Dim c As Object For Each c In Worksheets(1).Range("a1:a30") If c.Value Like "鹿児島県" Then c.Interior.ColorIndex = 3 '赤 End If Next c End Sub |
Sub Like_02() Dim c As Object For Each c In Worksheets(1).Range("a1:a30") If c.Value Like "*崎*" Then c.Interior.ColorIndex = 3 '赤 End If Next c End Sub |
Sub Like_03() Dim c As Object For Each c In Worksheets(1).Range("a1:a30") If c.Phonetic.Text Like "[か-こ]*" Then c.Interior.ColorIndex = 3 '赤 End If Next c End Sub |
Sub Find_02() Dim c As Object With Worksheets("Sheet1").Range("C1:C30") .Replace What:="福岡県", Replacement:="鹿児島県", _ SearchOrder:=xlByColumns, MatchByte:=False End With End Sub |
スポンサードリンク
PageViewCounter
Since2006/2/27