• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:2バイト文字を検出するマクロってありませんか?)

2バイト文字を検出するマクロと海外用のWORD文書作成について

このQ&Aのポイント
  • 海外用のWORD文書を作成する際、一般的には2バイト文字を使わないようにします。しかし、2バイト文字チェックマクロによって、どの文字が引っかかるかが分かりません。また、海外用のWORD文書で使用するTimesNewRomanフォントとSymbolフォントは通常は2バイト文字を含んでいないはずですが、特殊文字「×」は2バイト文字のようです。どの文字が2バイト文字か、簡単に判断する方法はありますか?また、海外用のWORD文書作成で便利なマクロはどこかで配布されているでしょうか?
  • 海外用のWORD文書作成では一般的に2バイト文字を避ける必要がありますが、2バイト文字チェックマクロの結果が異なっている場合があります。また、TimesNewRomanフォントとSymbolフォントは通常は2バイト文字を使用しないため、特殊文字「×」が2バイト文字であることに驚くかもしれません。2バイト文字かどうかを簡単に判断する方法や便利なマクロがあれば教えてください。
  • 海外用のWORD文書を作成する際には、通常は2バイト文字を避けるようにします。しかし、2バイト文字チェックマクロの結果が一貫していない場合があり、正しい判断が難しいことがあります。また、海外用のWORD文書で使用するTimesNewRomanフォントとSymbolフォントは通常は2バイト文字を含まないはずですが、特殊文字「×」は2バイト文字として扱われます。2バイト文字かどうかを簡単に判断する方法や便利なマクロがあれば教えてください。

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

  • ベストアンサー
  • TTak
  • ベストアンサー率52% (206/389)
回答No.1

次のマクロ"BYTE2_FIND"で試してみてください。 なお、Macでは使用できません。 Sub BYTE2_FIND() Dim myText As String Dim i As Integer For i = 1 To ActiveDocument.Characters.Count myText = Selection.Text If LenMbcs(myText) > 1 Then  Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend  MsgBox "2バイト文字です" End If Selection.MoveRight Next i End Sub Function LenMbcs(ByVal str As String)  LenMbcs = LenB(StrConv(str, vbFromUnicode)) End Function

jun29435
質問者

補足

やってみました! 2バイト文字は検索できますが、 すいません、2バイト文字がなくなるまで 検索し続けます(・_・;) 止められるマクロにできませんか??? すいません!!!

その他の回答 (1)

  • TTak
  • ベストアンサー率52% (206/389)
回答No.2

これは失礼(^^;) MsgBox "2バイト文字です" の一行を If MsgBox("2バイト文字が見つかりました。続けますか?", vbYesNo) = vbNo Then Exit Sub に差し替えてください。

jun29435
質問者

お礼

できました~っっ!! 止められました! 最初、試しに和文でマクロを実行したら、 数十ページ、検索しそうになったので、 タスクマネージャーで強制終了させました(・_・;) これなら大丈夫です。 使わせていただきます。 ありがとうございました!

関連するQ&A