Module.Find メソッド (Access)

標準モジュールまたはクラス モジュール内で、指定されたテキストを検索します。

構文

検索 (TargetStartLineStartColumnEndLineEndColumnWholeWordMatchCasePatternSearch)

Module オブジェクトを表す変数。

パラメーター

名前 必須 / オプション データ型 説明
Target 必須 String 検索するテキストを指定します。
Startline 必須 長整数型 (Long) 検索を開始する行を指定します。 一致するものが見つかった場合、 StartLine 引数の値は、一致するテキストの先頭文字が見つかった行に設定されます。
StartColumn 必須 長整数型 (Long) 検索を開始する列。 行内の各文字は、モジュールの左側の 0 から始まる個別の列にあります。 一致するものが見つかった場合、 StartColumn 引数の値は、一致するテキストの先頭文字が見つかった列に設定されます。
EndLine 必須 長整数型 (Long) 検索を停止する行を指定します。 一致するものが見つかった場合、 EndLine 引数の値は、一致するテキストの終了文字が見つかった行に設定されます。
EndColumn 必須 長整数型 (Long) 検索を停止する列を指定します。 一致するものが見つかった場合、 EndColumn 引数の値は、一致するテキストの先頭文字が見つかった列に設定されます。
WholeWord 省略可能 ブール型 (Boolean) True を指定すると、単語全体のみが検索の対象になります。 既定値は False です。
MatchCase 省略可能 ブール型 (Boolean) True を指定すると、引数 Target の大文字と小文字を区別して検索します。 既定値は False です。
PatternSearch 省略可能 ブール型 (Boolean) True を指定すると、引数 Target にアスタリスク (*) または疑問符 (?) が含まれている場合に、その種の文字がワイルドカード文字として検索されます。 既定値は False です。

戻り値

Boolean

注釈

Find メソッドを使うと、 Module オブジェクト内で特定のテキスト文字列を検索できます。 文字列が見つかった場合、 Find メソッドは True を返します。

検索テキストが見つかったモジュール内の位置を確認するには、StartLineStartColumnEndLineEndColumn 引数の空の変数を Find メソッドに渡します。 一致するテキストがある場合は、テキストの先頭の行番号および列の位置がそれぞれ StartLine および StartColumn に格納され、末尾の行番号および列の位置がそれぞれ EndLine および EndColumn に格納されます。

たとえば、検索テキストが 5 行目で見つかり、列 10 で始まり、列 20 で終わる場合、これらの引数の値は StartLine = 5、 StartColumn = 10、 EndLine = 5、 EndColumn = 20 になります。

次の例は、モジュール内で特定の文字列を検索し、その文字列を含む行を別の行に置換します。

Function FindAndReplace(strModuleName As String, _ 
 strSearchText As String, _ 
 strNewText As String) As Boolean 
 Dim mdl As Module 
 Dim lngSLine As Long, lngSCol As Long 
 Dim lngELine As Long, lngECol As Long 
 Dim strLine As String, strNewLine As String 
 Dim intChr As Integer, intBefore As Integer, _ 
 intAfter As Integer 
 Dim strLeft As String, strRight As String 
 
 ' Open module. 
 DoCmd.OpenModule strModuleName 
 ' Return reference to Module object. 
 Set mdl = Modules(strModuleName) 
 
 ' Search for string. 
 If mdl.Find(strSearchText, lngSLine, lngSCol, lngELine, _ 
 lngECol) Then 
 ' Store text of line containing string. 
 strLine = mdl.Lines(lngSLine, Abs(lngELine - lngSLine) + 1) 
 ' Determine length of line. 
 intChr = Len(strLine) 
 ' Determine number of characters preceding search text. 
 intBefore = lngSCol - 1 
 ' Determine number of characters following search text. 
 intAfter = intChr - CInt(lngECol - 1) 
 ' Store characters to left of search text. 
 strLeft = Left$(strLine, intBefore) 
 ' Store characters to right of search text. 
 strRight = Right$(strLine, intAfter) 
 ' Construct string with replacement text. 
 strNewLine = strLeft & strNewText & strRight 
 ' Replace original line. 
 mdl.ReplaceLine lngSLine, strNewLine 
 FindAndReplace = True 
 Else 
 MsgBox "Text not found." 
 FindAndReplace = False 
 End If 
 
Exit_FindAndReplace: 
 Exit Function 
 
Error_FindAndReplace: 
 
MsgBox Err & ": " & Err.Description 
 FindAndReplace = False 
 Resume Exit_FindAndReplace 
End Function

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。