|
▼aoba さん:
腹一杯かも知れませんが(^^
If a = b Then の 「=」や、
If s Like p Then の「Like」は 分類上
比較演算子と呼ばれるものです。
たとえば、
If a = b Then は aが b「と等しいか」比較しています。
aとbが等しければ 式 (a = b) は Trueを返します。
If a > b Then は a が b「より大きいか」を比較しています。
aがbより大きければ 式 (a > b) は Trueを返します。
If CDate("2011/01/01") < Date は今日が2011/1/1より大きいか
(2011年1月1日が過去の日付か?)を調べています。
Dim c As Range
Set c = Range("A1:A1000").Find("あいう")
If c Is Nothing Then
MsgBox c.Address
End If
の
> If c Is Nothing Then
「Is演算子」はRangeオブジェクトc が 「Nothingであるか」を
比較しています。
(cがNothingだったら、Find検索で見つかったセルがなかった
ことが分かります)
これらと同じように、
> If s Like p Then
は 文字列s が pというパターンと合致しているかを比較しています。
簡単にいえば
「=」演算子は 演算子の両側の値「が等しいか」を調べているのに対し、
「Like」演算子は両側の文字列「が似ているか」を調べています。
Dim s As String
s = "ABC20110101.xls"
If s Like "ABC*" Then
これは 文字列(実はファイル名)が「ABCで始まっているか」を
調べています(s と "ABC*"というパターンとを比較しています)
If Lcase$(s) Like "*.xls" Then
これは ファイル名(拡張子)が「xlsであるか」をLike演算子で
調べています(s と "*.xls"というパターンとを比較しています)
If s Like "???2011*" Then
これはファイル名の4文字目以降に"2011"という文字列が含まれ
ているかを調べています。
If s Like "???####*" Then
これはファイル名の4文字目以降に任意の数字が含まれているか
を調べています。(文字列sとパターン"???####*"を比較しています)
If s Like "*########*" Then
これはファイル名のなかに「8桁の数字がが含まれているか」
を調べています。(文字列sとパターン"???####*"を比較しています)
|
|