방법: 문서에서 텍스트 검색
Find 개체는 Selection과 Range 개체 모두의 멤버이며 이 중 하나를 사용하여 Microsoft Office Word 문서에서 텍스트를 검색할 수 있습니다. Replace 명령은 Find 명령의 확장입니다. 문서에서 텍스트 바꾸기에 대한 자세한 내용은 방법: 문서에서 텍스트 검색 및 바꾸기를 참조하십시오.
적용 대상: 이 항목의 정보는 Word 2007 및 Word 2010의 문서 수준 프로젝트 및 응용 프로그램 수준 프로젝트에 적용됩니다. 자세한 내용은 Office 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.
Selection 개체 사용
Selection 개체를 사용하여 텍스트를 찾는 경우 지정된 모든 검색 조건은 현재 선택한 텍스트에 대해서만 적용됩니다. Selection이 삽입 지점인 경우 문서 전체를 검색합니다. 검색 조건에 일치하는 항목을 찾으면 이 항목이 자동으로 선택됩니다.
Find 조건은 누적된다는 사실에 주의해야 합니다. 즉, 이전 검색 조건에 새 조건이 추가됩니다. 따라서 검색을 수행하기 전에 ClearFormatting 메서드를 사용하여 이전 검색의 서식을 지워야 합니다.
Selection 개체를 사용하여 텍스트를 찾으려면
검색 문자열을 변수에 할당합니다.
Dim findText As String = "find me"
object findText = "find me";
이전 검색의 서식을 지웁니다.
Application.Selection.Find.ClearFormatting()
Application.Selection.Find.ClearFormatting();
검색을 실행하여 메시지 상자에 결과를 표시합니다.
If Application.Selection.Find.Execute(findText) = True Then MessageBox.Show("Text found.") Else MessageBox.Show("The text could not be located.") End If
if (Application.Selection.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { MessageBox.Show("Text found."); } else { MessageBox.Show("The text could not be located."); }
다음 예제에서는 전체 메서드를 보여 줍니다.
Private Sub SelectionFind()
Dim findText As String = "find me"
Application.Selection.Find.ClearFormatting()
If Application.Selection.Find.Execute(findText) = True Then
MessageBox.Show("Text found.")
Else
MessageBox.Show("The text could not be located.")
End If
End Sub
private void SelectionFind()
{
object findText = "find me";
Application.Selection.Find.ClearFormatting();
if (Application.Selection.Find.Execute(ref findText,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing))
{
MessageBox.Show("Text found.");
}
else
{
MessageBox.Show("The text could not be located.");
}
}
Range 개체 사용
Range 개체를 사용하면 사용자 인터페이스에 아무런 메시지도 표시하지 않은 채 텍스트를 검색할 수 있습니다. Find 개체는 검색 조건에 일치하는 텍스트를 찾으면 True를 반환하고 그렇지 않으면 False를 반환합니다. 또한 이 개체는 텍스트를 찾으면 Range 개체를 검색 조건에 일치하도록 다시 정의합니다.
Range 개체를 사용하여 텍스트를 찾으려면
문서의 두 번째 단락으로 구성된 Range 개체를 정의합니다.
다음 코드 예제는 문서 수준 사용자 지정에 사용할 수 있습니다.
Dim rng As Word.Range = Me.Paragraphs(2).Range
Word.Range rng = this.Paragraphs[2].Range;
다음 코드 예제는 응용 프로그램 수준 추가 기능에 사용할 수 있습니다. 이 예제에서는 활성 문서를 사용합니다.
Dim rng As Word.Range = Me.Application.ActiveDocument.Paragraphs(2).Range
Word.Document document = this.Application.ActiveDocument; Word.Range rng = document.Paragraphs[2].Range;
Range 개체의 Find 속성을 사용하여 먼저 기존의 서식 옵션을 모두 지우고 find me라는 문자열을 검색합니다.
rng.Find.ClearFormatting() If rng.Find.Execute(findText) Then
rng.Find.ClearFormatting(); if (rng.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) {
검색 결과를 메시지 상자에 표시하고 Range를 선택하여 이를 표시합니다.
MessageBox.Show("Text found.") Else MessageBox.Show("Text not found.") End If rng.Select()
MessageBox.Show("Text found."); } else { MessageBox.Show("Text not found."); } rng.Select();
검색에 실패하면 두 번째 단락이 선택됩니다. 검색에 성공하면 검색 기준이 표시됩니다.
다음 예제에서는 문서 수준 사용자 지정의 전체 코드를 보여 줍니다. 이 예제를 사용하려면 프로젝트의 ThisDocument 클래스에서 이 코드를 실행하십시오.
Private Sub RangeFind()
Dim findText As String = "find me"
Dim rng As Word.Range = Me.Paragraphs(2).Range
rng.Find.ClearFormatting()
If rng.Find.Execute(findText) Then
MessageBox.Show("Text found.")
Else
MessageBox.Show("Text not found.")
End If
rng.Select()
End Sub
private void RangeFind()
{
object findText = "find me";
Word.Range rng = this.Paragraphs[2].Range;
rng.Find.ClearFormatting();
if (rng.Find.Execute(ref findText,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing))
{
MessageBox.Show("Text found.");
}
else
{
MessageBox.Show("Text not found.");
}
rng.Select();
}
다음 예제에서는 응용 프로그램 수준 추가 기능의 전체 코드를 보여 줍니다. 이 예제를 사용하려면 프로젝트의 ThisAddIn 클래스에서 이 코드를 실행하십시오.
Private Sub RangeFind()
Dim findText As Object = "find me"
Dim rng As Word.Range = Me.Application.ActiveDocument.Paragraphs(2).Range
rng.Find.ClearFormatting()
If rng.Find.Execute(findText) Then
MessageBox.Show("Text found.")
Else
MessageBox.Show("Text not found.")
End If
rng.Select()
End Sub
private void RangeFind()
{
object findText = "find me";
Word.Document document = this.Application.ActiveDocument;
Word.Range rng = document.Paragraphs[2].Range;
rng.Find.ClearFormatting();
if (rng.Find.Execute(ref findText,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing))
{
MessageBox.Show("Text found.");
}
else
{
MessageBox.Show("Text not found.");
}
rng.Select();
}