Find インターフェイス
ドキュメントやファイルを編集できる環境での一般的なテキストの Find 操作をサポートします。
名前空間: EnvDTE
アセンブリ: EnvDTE (EnvDTE.dll 内)
構文
'宣言
<GuidAttribute("40D4B9B6-739B-4965-8D65-692AEC692266")> _
Public Interface Find
[GuidAttribute("40D4B9B6-739B-4965-8D65-692AEC692266")]
public interface Find
[GuidAttribute(L"40D4B9B6-739B-4965-8D65-692AEC692266")]
public interface class Find
[<GuidAttribute("40D4B9B6-739B-4965-8D65-692AEC692266")>]
type Find = interface end
public interface Find
Find 型で公開されるメンバーは以下のとおりです。
プロパティ
名前 | 説明 | |
---|---|---|
Action | 次を検索、すべて検索、置換と検索などの検索方法を取得または設定します。 | |
Backwards | 現在の位置から後方検索を実行するかどうかを示す値を取得または設定します。 | |
DTE | トップレベルの機能拡張オブジェクトを取得します。 | |
FilesOfType | 検索するファイルの拡張子を取得または設定します。 | |
FindWhat | 検索するテキストまたはパターンを取得または設定します。 | |
KeepModifiedDocumentsOpen | Replace 操作の後に、変更したドキュメントが開いたままであるかどうかを示す値を取得または設定します。 | |
MatchCase | 検索で大文字と小文字を区別するかどうかを示す値を取得または設定します。 | |
MatchInHiddenText | 検索に隠し文字列を含めるかどうかを示す値を取得または設定します。 | |
MatchWholeWord | 完全に一致する単語だけを検索するかどうかを示す値を取得または設定します。 | |
Parent | Find オブジェクトの直接の親オブジェクトを取得します。 | |
PatternSyntax | 検索パターンの指定に使用する構文を取得または設定します。 | |
ReplaceWith | 置換操作の置換後のテキストを取得または設定します。 | |
ResultsLocation | 一括検索操作の結果を表示する場所を取得または設定します。 | |
SearchPath | 複数ファイルからの検索操作に使用するディレクトリの一覧を取得または設定します。 | |
SearchSubfolders | サブフォルダーを Search 操作に含めるかどうかを示す値を取得または設定します。 | |
Target | 検索操作の対象を取得または設定します。たとえば、アクティブなドキュメント、開いてるすべてのドキュメント、ファイルなどがあります。 |
このページのトップへ
メソッド
名前 | 説明 | |
---|---|---|
Execute | Find オブジェクトに設定されたオプションに基づいて検索を実行します。 | |
FindReplace | Find に設定されたオプションに影響を与えずに、メソッドに渡された引数に基づいて検索操作または置換操作を実行します。 |
このページのトップへ
解説
Find オブジェクトを使用すると、検索や置換をサポートするコード エディターなどの環境にあるテキストを検索および置換できます。
Find オブジェクトは、主にマクロの記録を目的として開発されました。 エディターのマクロ記録機構では、TextSelection.FindPattern ではなく、Find を使用してグローバル検索機能を実行できます。一般に、複数ファイルからの検索操作などでは、この方法は TextSelection オブジェクトを使用するよりも便利です。
Visual Studio 環境には、検索機能を備えたすべての Visual Studio ツール間で共有されるグローバル検索状態があります。 たとえば、Visual Studio のすべての要素は、セッション中に使用された検索パターンの履歴や、開いたドキュメントに対する次の Find 操作が前方検索であるか後方検索であるかの情報を共有します。 Find オブジェクトのプロパティは、グローバル検索状態と情報をやり取りし、その状態を追跡します。 Find オブジェクトでプロパティを設定すると、グローバル検索状態も設定されます。 ユーザーが環境内で Find 操作を実行すると、Find オブジェクトは、実行した検索の種類を反映します。 環境の UI スレッドと同期してオートメーション コードが実行されるので、Execute を呼び出す前に、あらかじめプロパティを設定し、ユーザーに検索を実行させる必要はありません。
Execute メソッドは、Find オブジェクトの設定に基づいて、Find 操作を実行します。 また、FindReplace メソッドに引数を渡して、グローバル検索状態に影響を与えずに検索を実行することもできます。 オートメーション クライアントで検索を実行する場合、グローバル検索状態やエンド ユーザーが使用している環境の状態モデルに影響を与えないようにする必要があります。
例
Sub FindExample()
Dim objTextDoc As TextDocument
Dim objEditPt As EditPoint
Dim iCtr As Integer
Dim objFind As Find
' Create a new text file.
DTE.ItemOperations.NewFile("General\Text File")
' Get a handle to the new document and create an EditPoint.
objTextDoc = DTE.ActiveDocument.Object("TextDocument")
objEditPt = objTextDoc.StartPoint.CreateEditPoint
objFind = objTextDoc.DTE.Find
' Insert ten lines of text.
For iCtr = 1 To 10
objEditPt.Insert("This is a test." & Chr(13))
Next iCtr
' Set the find options.
objFind.Action = vsFindAction.vsFindActionReplaceAll
objFind.Backwards = False
objFind.FilesOfType = "*.txt"
objFind.FindWhat = "test"
objFind.KeepModifiedDocumentsOpen = True
objFind.MatchCase = False
objFind.MatchInHiddenText = False
objFind.MatchWholeWord = True
objFind.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxLiteral
objFind.ReplaceWith = "NEW THING"
objFind.ResultsLocation = vsFindResultsLocation.vsFindResultsNone
objFind.SearchPath = "c:\temp"
objFind.SearchSubfolders = False
objFind.Target = vsFindTarget.vsFindTargetCurrentDocument
' Perform the Find operation.
objFind.Execute()
End Sub