|
「myText = Selection.Range.Text」でマクロ処理上の問題は解決します。
しかし、実際に使う上で問題になるのが起動方法です。
メニューバーの[ツール]から[マクロ]を選んで…というのは、
手間が掛かかって面倒です。
こうした作業が頻発するのでしたら、
マクロ起動用のボタンをツールバーに追加すると便利です。
1.メニューバーの[ツール]をクリックし、[ユーザー設定…]を選ぶ。
2.[ユーザー設定]ダイアログボックスの[コマンド]タブを選ぶ。
3.[コマンド]タブの中の左側 [分類]の「マクロ」をクリックする。
4.右側の[コマンド]の中から[MySearch]あるいは[Macro15]を探す。
5.[MySearch]あるいは[Macro15]をクリックして選び、
これをツールバー上(の御自分の好きな位置)にドラッグする。
(ドラッグ&ドロップする)
→マクロ起動用のボタンがツールバー上にできる。
6.[閉じる]ボタンを押す。
これで、文字列を選択後、ツールバーのボタンを押すだけで、
マクロを実行することができます。
Sub MySearch()
Rem *----*----* *----*----* *----*----* *----*----*
Rem 選択文字列一回検索処理
Rem 記録者:
Rem 言語:Word VBA
Rem 機能:選択した文字列を検索する。
Rem 注記...
Rem MySearchを起動して使用。
Rem Officeアシスタント(モードレス表示)による検索実行。
Rem 第1版:2006/11/01:作成。
Rem *----*----* *----*----* *----*----* *----*----*
Assistant.Visible = True
'
With Assistant.NewBalloon
.Animation = msoAnimationIdle
.BalloonType = msoBalloonTypeButtons
.Icon = msoIconAlertQuery
.Button = msoButtonSetSearchClose
.Heading = "選択 文字列" & vbCr & "検索 処理"
.Text = "選択して下さい。"
' .Labels(1).Text = "あああ"
.Mode = msoModeModeless
.Callback = "MySearchBttn"
.Show
End With
End Sub ' MySearch *----*----* *----*----* *----*----* *----*----*
Sub MySearchBttn(blln As Balloon, bttn As Long, bllnID As Long)
Rem *----*----* *----*----* *----*----* *----*----*
Rem 各ボタン処理
Rem *----*----* *----*----* *----*----* *----*----*
If bttn = msoBalloonButtonClose Then ' [閉じる]ボタン時
blln.Close
Assistant.Visible = False
Exit Sub
End If
'
If Selection.Range.Text = "" Then
MsgBox "文字列が選択されていません。"
If Tasks.Exists(Name:="Microsoft Word") = True Then
Tasks("Microsoft Word").Activate
End If
Exit Sub
End If
'
'Assistant.Visible = True
Select Case bttn
Case msoBalloonButtonSearch
Call Macro15
End Select
'
' If Tasks.Exists(Name:="Microsoft Word") = True Then
' Tasks("Microsoft Word").Activate
' End If
' Assistant.Visible = True
End Sub ' MySearchBttn *----*----* *----*----* *----*----* *----*----*
Sub Macro15()
' Macro15 Macro
' 記録日 2006/10/31 記録者
' 「myText」・Officeアシスタントに係る部分を追加しました。
' *----*----* *----*----* *----*----* *----*----*
Dim myText As String
'
myText = Selection.Range.Text
'
' *----*----* Selection.Copy
Selection.Find.ClearFormatting
With Selection.Find
.Text = myText ' *----*----* "aaa"
.Replacement.Text = ""
.Forward = False ' 文書の末尾から先頭へ検索
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = True
End With
'
If Tasks.Exists(Name:="Microsoft Word") = True Then
Tasks("Microsoft Word").Activate
End If
'
Selection.Find.Execute
End Sub
|
|