• 締切済み

WORDのワイルドカード置換について

WORDで、ワイルドカード[0-9]で半角数字を検索し(検索は出来ました)、これを全角数字に置換したいとき、置換後の文字列はどういう風に入力したらよいでしょうか。全角数字の表示形式が分かりません。[0-9]では出来ませんでした。 文字種の変換で行うしかないのでしょうか?

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 もとのマクロは、全角を半角にするためのものだったので、全角to半角という名前になっています。なるべく標準モジュールのほうがよいのですが、ThisDocument でも可能です。  Zenkaku2Hankaku "0", "9"      0 と 9 は、半角と半角。0と9 なら、全角と全角で かならず、範囲になるようにしてください。その部分に半角を入れれば、全角に、 全角を入れれば、半角に変換されます。 '-------------------------------------------------------------- Sub HenKanMainMacro()  '必ず、引数は、範囲に囲まれていることが条件です。  Zenkaku2Hankaku "0", "9" End Sub Private Sub Zenkaku2Hankaku(ch1 As String, Optional ch2 As String, Optional blnShp As Variant) 'ch1 検索ワイルドカードのはじめ、ch2 検索ワイルドカードの終わり 'blnShp =False 半角へ/True 全角へ Dim myMsg As String Dim mWhat As String Selection.HomeKey Unit:=wdStory '文書の先頭に On Error GoTo Errmsg: With Selection.Find   .ClearFormatting   .Text = ""   .Replacement.Text = ""   .MatchFuzzy = False   '設定をクリア If ch2 <> "" Then   mWhat = "[" & ch1 & "-" & ch2 & "]{1,}" Else   mWhat = ch1 End If If IsMissing(blnShp) Then If StrComp(StrConv(ch1, vbWide), ch1, vbBinaryCompare) = 0 Then   blnShp = False Else   blnShp = True End If End If While .Execute(FindText:=mWhat, _   Wrap:=wdFindContinue, MatchWildcards:=True) = True   If blnShp = False Then   Selection.Range.CharacterWidth = wdWidthHalfWidth   'ここで、文字を半角に変換。   Else   Selection.Range.CharacterWidth = wdWidthFullWidth   'ここで、文字を全角に変換。   End If    Wend End With   Exit Sub Errmsg:   MsgBox "エラー!: " & Err.Description, vbExclamation End Sub '--------------------------------------------------------------

回答No.1

ワイルドカードを使用した場合、特定の半角数字を全角にするならば 置換だけで済みますが、[0-9]のように範囲を指定した場合は置換だけ では無理ですね。 Word2002以降ならば[検索]を使用して出来ます。置換と同じように検索 内容を指定します。 [見つかったすべての項目を強調表示する]にチェックを入れ[OK]します。 このままの状態で[文字種の変換]を使用して[半角]を指定して下さい。 Word2000以前の場合はマクロを使用するか、個々の数字を置換する方法 をしたほうが確実ですね。こういうものを使用すれば簡単かも↓。 http://www7.plala.or.jp/hikita/sidea/program/vb/mcrtool_wd.html

関連するQ&A