• ベストアンサー

ワードで数字以外の半角文字を検索し、全角に置換したい

ワード2003です。 30Pの文書にカタカナの文字が多数あり、半角と全角が入り混じっています。また、数字も、半角で入力されています。 その中から カタカナの半角文字だけを検索し、全角に置換したいのですができますか どなたか教えてください。

質問者が選んだベストアンサー

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

こんにちは。 この種の問題は、単に、「全角・半角のゆらぎ」ですから、 ツール-オプション-スペルチェックと文章校正 文章校正の自動文章校正にチェックを入れ、 詳細設定の中の  カタカナ設定-全角統一 にしてあれば、文章を書き終わった後に、  ツール-文章校正 をクリックして 「緑」の波線で出てきますので、変更していけばよいです。「全角・半角のゆらぎ」以外にも、問題が出てくるはずです。

sainokuniob
質問者

お礼

ありがとうございます。 「ゆらぎ」なんて 知りませんでした 早速 やって見ました そのほかの問題点がいろいろ出てきました。 ツールの 「文章校正」でも問題点が見つかりました。 ほんとうにありがとうございました。 今後とも御指導よろしく御願いします。

その他の回答 (1)

回答No.1

Option Explicit 'ほぼ 'http://www.moug.net/tech/exvba/0140015.htm 'のコピーです Sub Sample() Dim i As Integer Dim myLetter As String Dim myStr As String Dim j As Integer For j = 1 To ActiveDocument.Characters.Count myStr = ActiveDocument.Characters(j) i = 1 Do While (i <= Len(myStr)) myLetter = Mid(myStr, i, 1) Select Case Asc(myLetter) Case 167 To 181, 197 To 201, 207 To 223 myStr = Left(myStr, i - 1) & StrConv(myLetter, vbWide) _ & Mid(myStr, i + 1) Case 182 To 196, 202 To 206 If (i < Len(myStr)) Then Select Case Asc(Mid(myStr, i + 1, 1)) Case 222 To 223 myStr = Left(myStr, i - 1) & _ StrConv(Mid(myStr, i, 2), vbWide) & _ Mid(myStr, i + 2) Case Else myStr = Left(myStr, i - 1) & StrConv(myLetter, vbWide) & _ Mid(myStr, i + 1) End Select Else myStr = Left(myStr, i - 1) & StrConv(myLetter, vbWide) & _ Mid(myStr, i + 1) End If End Select i = i + 1 Loop ActiveDocument.Characters(j) = myStr Next End Sub

sainokuniob
質問者

補足

早速の回答ありがとうございます。 ワードで半角カタカナを直したいのです。 それに せっかく教えていただきましたが 年寄だもんで敵国語(マクロ)はどうも苦手です。