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バイト文字かどうかを簡単に判断する方法や便利なマクロがあれば教えてください。
回答を見る
  • ベストアンサー

2バイト文字を検出するマクロってありませんか?

会社で海外用のWORD文書を作るのですが、 2バイト文字は使わないようにするのが一般的ですよね。 でも2バイト文字チェックマクロで、以前から持っていたマクロでは引っかかり、新しく配布された方では引っかからない文字があって、 どちらが正解なのか判断に困りました。 TimesNewRoman の特殊文字「×」は、2バイトみたいですね。 主にTimesNewRomanとSymbolフォントを使うのですが、 両方とも英語フォントだから2バイト文字は通常ない気がするのに、 あるものなんですね? その文字が2バイトなのか、1バイトなのか、 すぐにわかる方法ありませんか? また、WORDの文書で使うマクロ、どこかで配布されてませんか?

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

  • ベストアンサー
  • 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

  • Symbolフォントのマクロ検索方法

    WindowsXP Pro Word2003 Symbolフォントを使用して±などの記号を使用していたのですが TimesNewRomanに変更したいので、文書全体を選択後フォントをTimesNewRomanに 変更したところ、フォント名はTimesNewRomanに変更されましたが フォント自体はSymbolのままのチグハグ状態になってしまいました。 1つ1つ見ていけば直せるのですが量が多く大変なのでマクロを組んで 検索できないものかと思い調べてみましたが見つかりませんでした。 Wordのフォント検索ではSymbolは見つかりませんでした。(フォント名がTimesになっているので) If ActiveDocument.Range(文字の位置).Font.Name = "Symbol" then でもひっかかりませんでした。 Selection.InsertSymbol CharacterNumber:=177, Font:="Symbol", Unicode:=False これでSymbolフォントの文字挿入ができるので、逆に1文字ずつのCharacterNumberを 取得できればSymbolフォントかどうかを判断できるかなぁと思ったのですが、不可能でしょうか。 この様な状態でマクロでのSymbolフォントを検索できる方法はありませんでしょうか?

  • さらに>2バイト文字を検出するマクロってありませんか?

    先日No.2057187回答していただいたものです。 マクロを教えていただいたのですが、 word文書で、罫線(表)内の改行文字のすべてに引っかかります。 罫線でない、本文の方の改行文字には引っかからないのですが・・・。 あと、ページ数25枚の文書で「オーバーフロー」というエラーが出て機能しませんでした・・・。 どうしたらいいでしょう?

  • 検索のマクロの作成

    記号入力のツールバー(マクロ)があります。 そのツールバーから入力していない同じ記号 (例:MSゴシックで入力されている)文字を 検索するマクロを作成したいのですが 、どうしたらいいのですか。 ツールバーに登録されているマクロ↓ 以下のマクロでTimesNewRomanの%が入力できます。 Sub enpercent() Selection.InsertSymbol CharacterNumber:=37, Font:="TimesNewRoman", Unicode:=True, Bias:=0 End Sub

  • Excelグラフの軸タイトルにギリシャ文字を混在させる

    英文のグラフを作っています。 グラフの軸タイトルに半角ギリシャ文字(Symbolフォント)とTimesNewRomanを混在させたいのですが、2つのフォントを混在させることができず困っています。どなたかアドバイス、参考URLなど教えて頂ければありがたいです。 (例)Stress(sigma)MPa このsigmaの部分だけギリシャ文字(σ)にしたいです。英文の文書を作成しているので全角ギリシャ文字は使用不可です。

  • マクロ(VBA)でSymbolフォントを挿入したいです

    Sub μ() '' Selection.InsertSymbol Font:="Symbol", CharacterNumber:=-3987, Unicode:= _ True End Sub 上記マクロでSymbolフォントをWordに入力しようとしています. マクロで入力したフォントを選択すると, Wordの「書式設定」ツールバーでは,スタイルに規定されているフォント (スタイルで「Century」の場合は「Century」)になっていますが, PDFに変換し,TouchUPテキストツールでフォントを確認すると, 上記マクロで入力した「Symbol」になっていました. 上記マクロで入力したフォントをスタイルを変更することなく, Wordの「書式設定」ツールバーでも「Symbol」と表示されるようにできないでしょうか?

  • ワードの表に対するマクロ

    ワード2002を使っています。 エクセルや他のワードから表をコピペしてきて、 貼られた表に同じスタイルをかけるのでマクロ化しようと思います。 記録マクロで記録しただけだと「表」であることを認識しないのか、 うまく動きません。 カーソルのある表を前選択し、プロパティ表示 ↓ 表タブのオプションで規定のセルの余白を設定 (上下0mm、左右0.5mm) ↓ 表タブで表の幅、インデントの設定 (幅115mm、インデント40.5) ↓ 行タブで高さの設定のチェックが入っている場合ははずす ↓ プロパティから抜けて、表中のフォントを設定 (日本語=MS明朝、英数字=TimesNewRoman、サイズ=8) 以上のような設定をしたいと思っています。 記録マクロでは表示されないコードが必要なのでは。。 と思っていますが、アドバイスお願いします。

  • ワードのテンプレートでマクロを組みましたが、動作しません

    ワードの文書テンプレートにマクロを組みました。 ところが、いざテンプレートから文書を起こしても、肝心のマクロが実行されません。 どうしてマクロが実行されないのか、アドバイスいただけないでしょうか。 ちなみに、ワードは2000、OSはXPと2000と両方試しました。 また、マクロの内容は、文書中に配置されたフォームフィールドのテキストを、ボタンを押すとクリップボードにコピーするという、素朴なものです。 よろしくお願いいたします。

  • 海外PCで開くときのPDF中の特殊文字(2バイト文字)

    日本語の文章を英訳して、PDFにし、海外に送る予定です。 その際、日本語ではよく使われる、丸で囲まれた数字(1)(2)や、点・、 矢印→、四角□■◆□などの2バイト文字を英文中に使っても良い(海外のPCで読める)のでしょうか。 なんとなく、オリジナル文書(ワード)では2バイト文字は海外では文字化けしそうな感じがするのですが、PDFにすると2バイト文字も読めるのかなぁと言う気もしています。 NGの場合、回避テクニックもあれば教えてください。 ご指導よろしくお願いいたします。

  • ワードのマクロについて

    お世話になります。 エクセルのマクロについてはここでよくアドバイスをもらっていますが、今回ワードでの処理について教えてください。 1つのフォルダにワード文書がたくさん入っています。 各ワード文書に対し以下の操作を自動化させたい。 1.すべてを選択(ctrl+A) 2.置換で「改行」をすべて削除   あいまい検索のチェックをはずした上で 検索する文字列 ^p  置換後の文字列は「空白」   すべて置換 3.置換で「スペース」をすべて削除   あいまい検索のチェックをはずした上で 検索する文字列 ^w  置換後の文字列は「空白」   すべて置換     4.すべてを選択 5.メニュー→書式→文字種の変換→全角にチェック→OK    ですべての文字を全角にする まとめると「すべての改行、スペースを削除し、全文字を全角に統一する」 この作業をフォルダ内の全ワード文書に対して一括で処理できないでしょうか? ちなみにワード文書は元々メモ帳(*.txt)で作成されていたものをリネームソフトで拡張子を*.docに変換したものです。そのためファイルを閉じるときに「書式なし形式で使用できない機能が含まれています」と聞いてきますが「はい」でOKです。 アドバイスおねがいします。

  • [ページ設定]で指定した1行の文字数を使用する……の意味は?

    WindowsXP、Word2003を使っています。 書式 → フォント 文字幅と間隔 とクリックすると、 [ページ設定]で指定した1行の文字数を使用する にチェックを入れるか入れないか、選択するところがあります。 手元にある適当な文書でチェックを入れる・入れないの両方を試しましたが、 いまひとつ違いが分かりません。 チェックを入れないと、若干文字同士の間隔が広がるかな…… という程度の印象です。 これはどういうときに用いると効果が(目に見えて)現れるのでしょうか? ご存知の方いらっしゃいましたら、ご教示下さい。

専門家に質問してみよう