|    | 
     実際の作業のことを考えてみたら、 
もう一捻り必要でした。 
 
選択範囲を指定して、[検索]ボタンを押すと、 
指定した文字列を検索。 
選択していない状態で、[検索]ボタンを押すと、 
先に検索した文字列を再検索。 
以下、修正版。 
 
Sub MyFindOne() 
 Rem *----*----*  *----*----*  *----*----*  *----*----* 
 Rem 選択文字列単発検索処理 
 Rem 記録者: 
 Rem 言語:Word VBA 
 Rem 機能:選択した文字列を検索する。 
 Rem 注記... 
 Rem  MyFindOneを起動して使用。 
 Rem  Officeアシスタント(モードレス表示)による検索実行。 
 Rem 第1版:2006/11/01:作成。 
 Rem *----*----*  *----*----*  *----*----*  *----*----* 
 Dim blln As Balloon 
 Dim bttn As Long 
 Dim bllnID As Long 
 Rem *----*----*  *----*----*  *----*----*  *----*----* 
 ' 
 Rem 初期処理を実行させる。 
 bttn = -888 
 Call MyFindOneBttn(blln, bttn, bllnID) 
End Sub ' MyFindOne *----*----*  *----*----*  *----*----*  *----*----* 
 
Sub MyFindOneBlln(myCbox As Variant) 
 Rem *----*----*  *----*----*  *----*----*  *----*----* 
 Rem バルーン表示処理 
 Rem *----*----*  *----*----*  *----*----*  *----*----* 
 Assistant.Visible = True 
 ' 
 With Assistant.NewBalloon 
  .Animation = msoAnimationIdle 
  .BalloonType = msoBalloonTypeButtons 
  .Icon = msoIconAlertQuery 
  .Button = msoButtonSetSearchClose 
  .Heading = "MyFindOne" & vbCr & "選択 文字列" & vbCr & "単発 検索 処理" 
  .Text = "文字列を選択して、[検索]して下さい。" 
  .Checkboxes(1).Checked = myCbox 
  .Checkboxes(1).Text = "検索方向:文書の先頭へ" 
  .Mode = msoModeModeless 
  .Callback = "MyFindOneBttn" 
  .Show 
 End With 
End Sub ' MyFindOneBlln *----*----*  *----*----*  *----*----*  *----*----* 
 
Sub MyFindOneBttn(blln As Balloon, bttn As Long, bllnID As Long) 
 Rem *----*----*  *----*----*  *----*----*  *----*----* 
 Rem 各ボタン処理 
 Rem *----*----*  *----*----*  *----*----*  *----*----* 
 Static myCbox As Variant 
 ' 
 Select Case bttn 
  Case -888 
   Call MyFindOneInit(myCbox) 
   Call MyFindOneBlln(myCbox) 
   Exit Sub 
  Case msoBalloonButtonClose ' [閉じる]ボタン時 
   myCbox = blln.Checkboxes.Item(1).Checked 
   blln.Close 
   Assistant.Visible = False 
   Exit Sub 
 End Select 
 ' 
 If Tasks.Exists(Name:="Microsoft Word") = True Then 
  Tasks("Microsoft Word").Activate 
 End If 
 ' 
 Select Case bttn 
  Case msoBalloonButtonSearch 
   myCbox = blln.Checkboxes.Item(1).Checked 
   Call MyFindOneExec(myCbox) 
 End Select 
End Sub ' MyFindOneBttn *----*----*  *----*----*  *----*----*  *----*----* 
 
Sub MyFindOneExec(myCbox As Variant) 
 Rem *----*----*  *----*----*  *----*----*  *----*----* 
 Rem 検索処理 
 Rem *----*----*  *----*----*  *----*----*  *----*----* 
 Dim myText As String 
 ' 
 If Selection.Range.Text = "" Then 
  With Selection.Find 
   If myCbox = True Then 
    .Forward = False ' 文書の先頭へ検索 
   Else 
    .Forward = True ' 文書の末尾へ検索 
   End If 
   .Execute ' 検索実行 
  End With 
  Exit Sub 
 End If 
 ' 
 myText = Selection.Range.Text 
 ' 
 With Selection.Find 
  .ClearFormatting 
  .Text = myText 
  .Replacement.Text = "" 
  If myCbox = True Then 
   .Forward = False ' 文書の先頭へ検索 
  Else 
   .Forward = True ' 文書の末尾へ検索 
  End If 
  .Wrap = wdFindAsk 
  .Format = False 
  .MatchCase = False 
  .MatchWholeWord = False 
  .MatchByte = False 
  .MatchAllWordForms = False 
  .MatchSoundsLike = False 
  .MatchWildcards = False 
  .MatchFuzzy = True 
  .Execute ' 検索実行 
 End With 
End Sub ' MyFindOneExec *----*----*  *----*----*  *----*----*  *----*----* 
 
Sub MyFindOneInit(myCbox As Variant) 
 Rem *----*----*  *----*----*  *----*----*  *----*----* 
 Rem 初期処理 
 Rem *----*----*  *----*----*  *----*----*  *----*----* 
 If TypeName(myCbox) <> "Notihng" Then Exit Sub 
 ' 
 myCbox = False ' 既定値 
End Sub ' MyFindOneInit *----*----*  *----*----*  *----*----*  *----*----* 
 | 
     
    
   |