Option Explicit '=========================================================== ' 指定文字列内パターンマッチング ' Ver 1.0 ' [戻り値]: ' Boolean ' True: 一致 ' False:不一致 ' [引 数]: ' isTargetString(String) ' 比較文字列 ' lsChkStringArray(String()) ' チェック対象の文字列群 ' 先頭に*を指定することで後方一致チェックする("*.log") ' 末尾に*を指定することで前方一致チェックする("/home/*") '=========================================================== Function isPatternMatching( _ isTargetString As String _ , lsChkStringArray() As String _ ) As Boolean Dim lbRet As Boolean lbRet = False Dim liLoopCounter1 As Integer For liLoopCounter1 = 0 To UBound(lsChkStringArray) Step 1 Dim lsChkString As String lsChkString = lsChkStringArray(liLoopCounter1) If (lsChkString = "") Then Exit For End If Dim lsLowPar1 As String Dim lsLowPar2 As String lsLowPar1 = StrConv(isTargetString, vbLowerCase) lsLowPar2 = StrConv(lsChkString, vbLowerCase) If (lsLowPar1 Like lsLowPar2) Then lbRet = True Exit For End If Next liLoopCounter1 isPatternMatching = lbRet End Function '=========================================================== ' テスト用 '=========================================================== Sub call_isPatternMatching() Dim lstRet() As String lstRet = _ SpilitString( _ getSysParaBySheet(ActiveSheet.Name, "D03P2"), _ "," _ ) Dim lsMsg As String lsMsg = "[" & _ getSysParaBySheet(ActiveSheet.Name, "D03P1") & "]" & _ Chr(10) & _ lsMsg & _ "[" & "," & "]" & _ Chr(10) & Chr(10) Dim liLoopCounter1 As Integer For liLoopCounter1 = 0 To UBound(lstRet) Step 1 lsMsg = _ lsMsg & "[" & lstRet(liLoopCounter1) & "]" & _ Chr(10) Next liLoopCounter1 MsgBox _ getSysParaBySheet(ActiveSheet.Name, "D03P1") & _ Chr(10) & _ lsMsg & _ Chr(10) & _ isPatternMatching( _ getSysParaBySheet(ActiveSheet.Name, "D03P1"), _ lstRet _ ) End Sub