Word VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


387 / 886 ←次へ | 前へ→

【513】Re:選択範囲の文字を検索したい
回答  H. C. Shinopy  - 06/11/3(金) 23:32 -

引用なし
パスワード
   実際の作業のことを考えてみたら、
もう一捻り必要でした。

選択範囲を指定して、[検索]ボタンを押すと、
指定した文字列を検索。
選択していない状態で、[検索]ボタンを押すと、
先に検索した文字列を再検索。
以下、修正版。

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 *----*----*  *----*----*  *----*----*  *----*----*

2,536 hits

【509】選択範囲の文字を検索したい ぱんくろうママ 06/10/31(火) 23:56 質問[未読]
【510】Re:選択範囲の文字を検索したい H. C. Shinopy 06/11/1(水) 21:05 回答[未読]
【513】Re:選択範囲の文字を検索したい H. C. Shinopy 06/11/3(金) 23:32 回答[未読]
【515】ありがとうございました ぱんくろうママ 06/11/6(月) 1:03 お礼[未読]

387 / 886 ←次へ | 前へ→
ページ:  ┃  記事番号:
207137
(SS)C-BOARD v3.8 is Free