プロが教えるわが家の防犯対策術!

業務上Word2007で文書を作成する機会が多く、編集作業で検索と置換機能を多用しています。
そこで不便をしているのがデフォルトでONに設定されている「あいまい検索」機能です。使いたくないので毎度Word立ち上げ時にOFFの作業をする必要があります。かなり手間です。

自分でも色々検索をしたのですがマクロを動かす方法も含め、解決策を発見できていません。

「あいまい検索自体をOFFにすることは出来ないが、あいまい検索が実行している内容=オプション項目のチェックをすべて外せば実質上あいまい検索は機能しない。オプション項目のチェックは次回以降Wordを立ち上げた際にも維持されるので、実質的にあいまい検索をデフォルトでOFFにするのと同じになる」
との記載を見付け、試してみました、が、どうも
(1)あいまい検索ON+オプションの項目全てOFF

(2)あいまい検索OFF
は挙動が違うようなのです。
(1)で検索をかけてもヒットしない項目が(2)ではヒットすることがあります。
(「●●[文字列]^p」で置換をかけた際に↑の挙動を確認しました。
 特殊文字にかかるあいまい検索機能のON/OFFはオプション項目になかったので、手動では外せないということなのかもしれません)
 
前置きが長くなりましたが、Word2007で「あいまい検索」機能をデフォルトで立ち上がらないようにする(OFFにする)、あるいはそれと同等の挙動をさせることは可能でしょうか。
お詳しい方、ご回答いただけるとありがたいです。
よろしくお願いいたします。

A 回答 (3件)

こちら↓のようなマクロではだめなのでしょうか?


http://oshiete.goo.ne.jp/qa/5353756.html

常に[あいまい検索]のチェックを外しておきたいのなら、Word起動時に
検索ダイアログの各項目のチェック項目の指定をして文書を開くようにする方法もあります。
これでも、一番最初の設定を変更しない限り維持されるので。

VBEを開き、NormalのThisDocumentに以下のマクロを登録します。

Private Sub Document_Open()
'
' 既存のファイルを開く場合
'
 With Selection.Find
  .Text = ""
  .Replacement.Text = ""
  .Forward = True
  .Wrap = wdFindContinue
  .Format = False
  .MatchCase = False
  .MatchWholeWord = False
  .MatchByte = False
  .CorrectHangulEndings = False
  .MatchAllWordForms = False
  .MatchSoundsLike = False
  .MatchWildcards = False
  .MatchFuzzy = False ' あいまい検索の指定部分
 End With


End Sub

Private Sub Document_New()
'
' 新規にファイルを作る場合
'
 With Selection.Find
  .Text = ""
  .Replacement.Text = ""
  .Forward = True
  .Wrap = wdFindContinue
  .Format = False
  .MatchCase = False
  .MatchWholeWord = False
  .MatchByte = False
  .CorrectHangulEndings = False
  .MatchAllWordForms = False
  .MatchSoundsLike = False
  .MatchWildcards = False
  .MatchFuzzy = False
 End With

End Sub
    • good
    • 0

No.1の回答者です。


Document_Openのマクロは、そのままだと不具合が生じるかも。
開くファイルにテキストがない場合にエラーになるようなので。

常に[あいまい検索]のチェックだけを外しておきたいのなら、その部分
だけにして単純にしたほうがよいみたいです。

Private Sub Document_Open()
' 
' 既存文書で、あいまい検索の指定部分のみチェックを外す
'
 Selection.Find.MatchFuzzy = False

End Sub

Private Sub Document_New()
' 
' 新規文書で、あいまい検索の指定部分のみチェックを外す
'
 Selection.Find.MatchFuzzy = False

End Sub

その他の部分は、初期設定の反対にしたい部分のみを、必要に応じて
FalseをTrueにする場合や逆の場合などで適宜追加してください。
    • good
    • 0
この回答へのお礼

enunokokoroさま

質問直後にお返事頂けているとは思わず、
お礼が遅くなり、申し訳ありません。

実は引用していただいた質問履歴は見付けていて、
回答にあったマクロも試してみたのですがどうしても置換の方で上手く動かず(どちらかというと検索よりも置換の方を頻繁に使っています)、
改めて質問させて頂いたものです。

enunokokoroさんに戴いたご回答のマクロを二種とも試してみました。…が、やはり動かないようです(あいまい検索のチェックが入った状態で置換メニューが立ち上がります)。入れるときに何か間違えているのかもしれないです…
※VBAはきちんと勉強したことがないので、いただいたものが何を意図してどういうことを書たものなのかは
何となーく分かる程度なのです。

最初にご指摘戴いたURLの方のマクロを先ほど改めて試してみました。
検索の方は一応初めからあいまい検索が外れた状態で動きましたので(そして一度検索を立ち上げると、次に置換を立ち上げた際には置換の方もあいまい検索が外れた状態になります)ちょっとまだるっこしくはありますが当初よりは大分楽になりました。
暫くはこれで使ってみようと思います。

有難うございましたm(__)m

お礼日時:2014/06/30 13:45

No.1の回答者です。


マクロについては、少し理解する程度なのですね。

置換を主にするなら、過去ログの回答にある置換のマクロそのままでは
[あいまい検索]のチェックを外しておくことはできません。
検索のマクロと同じ内容で置換ダイアログを出すマクロに修正の必要が
あるためです。

' 置換ダイアログ

Sub EditReplace()
'
' EditReplace Macro
' 指定した文字列または書式を検索して置換します。
'
 Selection.Find.ClearFormatting
 Selection.Find.Replacement.ClearFormatting
 With Selection.Find
  .Text = ""
  .Replacement.Text = ""
  .Forward = True
  .Wrap = wdFindContinue
  .Format = False
  .MatchCase = False
  .MatchWholeWord = False
  .MatchByte = False
  .MatchSoundsLike = False
  .MatchWildcards = False
  .MatchFuzzy = False
 End With
Application.CommandBars.FindControl(ID:=313).Execute
End Sub

' 検索ダイアログ

Sub EditFind()
'
' EditFind Macro
' 指定した文字列または書式を検索します。
' あいまい検索のチェックをはずしてダイアログを開きます。

 Selection.Find.ClearFormatting
 Selection.Find.Replacement.ClearFormatting
 With Selection.Find
  .Text = ""
  .Forward = True
  .Wrap = wdFindContinue
  .Format = False
  .MatchCase = False
  .MatchWholeWord = False
  .MatchByte = False
  .MatchSoundsLike = False
  .MatchWildcards = False
  .MatchFuzzy = False
 End With
Application.CommandBars.FindControl(ID:=141).Execute
End Sub

一部不要なものがあったので削除してあります。
一応コマンドIDで開くようにしてありますが、もしもエラーになるなら
End With の下にある Application.CommandBars の行を消して、
以下のように修正します。

置換ダイアログの場合
  Dialogs(wdDialogEditReplace).Show

検索ダイアログの場合
  Dialogs(wdDialogEditFind).Show

http://ameblo.jp/gidgeerock/entry-11001068484.html
    • good
    • 0
この回答へのお礼

enunokokoroさま

はぁぁぁ!出来ました!感動です。
自分で入れていたマクロと見比べてみて何が違ったのかも分かりました。
(記述が一行足りませんでした(恥))
とても助かりました。
そして勉強になりました。末尾のURLも参照してもう少し勉強してみようと思います。

重ねてのご回答、本当に有難うございました。

お礼日時:2014/07/01 12:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!