VBA(MS WORD)Unicode対応

このQ&Aのポイント
  • マイクロソフトWORDのマクロ機能を使って、マイクロソフトWordの文章支援ツールを作成しています。
  • 導入するPCがWindow Server2003英語版上のマイクロソフトWordで、このOSはSJISの文字コードに対応していないため、文字化けしてしまいます。
  • マクロを別のPCのWindows XPやVISTA上のWordで実行すると、文字化けせずに表示されます。解決策はありますか?
回答を見る
  • ベストアンサー

VBA(MS WORD)Unicode対応

Microsoft WORDのマクロ機能(Visaual Basic6.0)を使って、Microsoft Wordの文章支援ツールを作成しています。 しかし、導入するPCがWindow Server2003英語版上のMicrosoft Wordで、このOSはSJISの文字コード対応していないようで、文字化けしてしまい、困っています。 このマクロは、ツリービューに表示した文字列を、Wordに挿入するだけのソフトですが、使用しているツリービュー(Tree View, Microsoft TreeView Control version 6.0)コントロールはSJISしか日本語を表示してくれません。しかし、WordにはSJISの文字列を挿入しても、文字化けします。このPC上の日本語はユニコードで入力されるようです。このPC上では、テキストファイル内の日本語やVisual Basic上の日本語コメントなどSJISで書かれた文字はすべてが文字化けします。 SJISをユニコードに変換してから、Wordへ挿入など試しましたが、依然文字化けして表示されます。 このマクロを別PCのWindows XP、VISTA上のWordで実行すると、文字化けせずに表示されます。 何かいい解決策はないでしょうか?

  • tosi_u
  • お礼率77% (514/662)

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

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

誠にすみません!私は、読み間違い/勘違いをしてしまいました。 私も英語版では、VBEditor 上では、まったく同じです。解決策はありませんでした。 >このマクロを別PCのWindows XP、VISTA上のWordで実行すると、文字化けせずに表示されます。 逆に、質問文にあった、こちらの方がどうしてなのか分かりません。 Office 2007では、英語バージョンでも、ほとんど問題なく日本語表示が利きます。しかし、VBEdiotor 側は、いろいろ試してみましたが、日本語表示は利きません。オプションで、日本語のMs Gothic など試してみましたが、Document への挿入とかは出来ません。もしかしたら、Multilingual CD(有償)などを利用しなくてはならないのかもしれません。 >SJISをユニコードに変換してから、Wordへ挿入など試しましたが、依然文字化けして表示されます。 単語の部分は、Unicode の変換は必要ありませんが、私は、こんなことしかできませんでした。 Selection.Range.InsertAfter ChrW(&H65E5) & ChrW(&H672C) & ChrW(&H8A9E) これは、あえて、ChrやChrW を使わずとも、同じ構造なら、配列でbinary にしても、可能だと思います。 たぶん、どこかには、この問題については書かれているはずですが、今は、この件は、そのままになっています。 私自身のアイデアですが、Active X などの表示は無理ですから、MsgBox も出来ません。 Sub Test1() '←これは別のパソコンで作るか、Document から文字コードを取る Dim a() As Byte Dim n As Variant a = "日本語を表示する" For Each n In a  Debug.Print n 'Imeadiate Window で取る Next End Sub Sub Test2() '←VBEで日本語を表示せずに日本語を挿入する Dim a() As Byte Dim buf As Variant Dim i As Long buf = Split("229,101,44,103,158,138,146,48,104,136,58,121,89,48,139,48", ",") ReDim a(UBound(buf)) For i = 0 To UBound(buf)  a(i) = buf(i) Next  Selection.InsertAfter CStr(a) End Sub

tosi_u
質問者

お礼

上記で教えていただいた方法を試しても駄目でした。 しょうがないので、なんとかこのサーバーの管理者に頼んで、 Regional and Langage Option画面の[Advanced]タブ、Language for non-Unicode programs」を「Japanese」 に変更してもらいました。 その変更により、文字化けは解消されました。 ご回答、ありがとうございました。

tosi_u
質問者

補足

>このマクロを別PCのWindows XP、VISTA上のWordで実行すると、文字化けせずに表示されます。 これらのPCは、以下が「Japanese」になっているからだと思われます。以下の設定を「英語(米国)」にするとこれらのPCでもまったく同じ現象がおこりました。VBのコメントなどSJISで書かれた文字が全て文字化けします。やはりユニコード対応しないと以下の設定が「英語(米国)」場合、文字化けしてしまうようです。 Regional and Langage Option画面の[Advanced]タブ、Language for non-Unicode programs」 今から、アドバイスいただいた方法を試してみます。助かります。ありがとうございました。

その他の回答 (2)

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

#1で触れましたが、Unicode とは言っても、アジアの言語のフォントが入っていないことがありますから、日本語のフォントは確認していますでしょうか? http://www.daw-pc.info/windows/jpcorrespond.htm 2.日本語フォントをインストールします

tosi_u
質問者

お礼

Fontには、MS Gothic & MS PGothic & MS UI Gothic (True type)、MS Mincho & MS PMincho(True Type)は入っております。IMEの日本語対応はされていて、Wordで日本語入力が可能なので、日本語の言語フォントは入っているのではないでしょうか? 教えていただいたページのうち、下記以外の項目は日本語設定ができています。 「[Advanced]タブをからLanguage for non-Unicode programsでJapaneseを選択」 この設定は、現在このPCにAdministratorでログインできないため、設定変更できません。OS側でLanguage for non-Unicode programsの設定を変更するのでなく、ソフト側でUnicode対応をしようと努力しています。 Regional and Langage Option画面Languagesタブの「Supplemental language support」で「Install files for east Asian languages」はチェックONになっています。

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

「PCがWindow Server2003英語版上のMicrosoft Word」 と 「OSはSJISの文字コード対応していない」 とは条件が違います。Microsoft Wordも英語バージョンということなら、 スタートメニューのOffice のメニューに、Langauge Setting があったはずです。 日本語のフォントはいれてあるものとします。 それで、日本語を使用するようにしてあればよかったと思います。それをしていないと、表示出来ません。 それで、Word で日本語が保存できないようなら、VBEditor 側から、ThisWorkbook のブロパティから、SaveEncording から、Unicode などを選べばよいと思います。

tosi_u
質問者

お礼

ご回答ありがとうございます。このサーバーは、アメリカの企業が提供しているもので、それをアメリカのNewYorkにある日系企業が導入しています。もともとアメリカ企業向けサーバーなので、OSもMS Wordも英語版です。それを日本語の入力と表示を可能にして、リモートデスクトップでアクセスし、利用しています。 WordのLanguage settingは日本語が追加されていました。Word上でキーボードでは、日本語入力が可能です。また日本語の表示は可能です。別のPCで日本語入力(SJIS)したファイルをこのPCで開くと日本語部分が文字化けします。そのファイルをユニコード変換した後に表示すると正しく日本語が表示されます。 作成したマクロから、Word上で日本語を入力すると文字化けします。VBEditor 側から、ThisWorkbook のブロパティで、SaveEncording をUnicodeにしてやってみましたが、やっぱり文字化けしてしまいました。

関連するQ&A

  • Unicode

    先日は文字コードについて色々助言してくださりありがとうございました。 おかげさまでJIS,EUC,SJISの変換はできましたが、 Unicodeについて詰まっているところがあります。 SJIS→UnicodeはSJISにあったU+XXXXに変換し、 それを1~4バイトにさらに変換して文字表記されることで出来ます。 後者の1~4バイトにさらに変換するやり方は出来ているのですが、 前者のSJISにあったU+XXXXに変換するところで詰まっています。 ##SJIS Unicode Name Note 0x00 U+0000 # <control> 0x01 U+0001 # <control> 0x02 U+0002 # <control> 0x03 U+0003 # <control> 0x04 U+0004 # <control> 0x05 U+0005 # <control> 0x06 U+0006 # <control> 0x07 U+0007 # <control> : : こういった変換表(テキストファイル)があるのですが、 どのようにしたらこのファイルをプログラム上で操作? できるのでしょうか? 例)SJISで0x07→U+0007→1~4バイト変換の 0x07→U+0007部分についてです。 また、逆に変換する際の0x07←U+0007についても わからないでいます。 何かヒントをください。

  • HTMLファイルへのユニコード系のアジア言語の記述について及びDWCS4のライブビューとの対応

    タイ語の語学系Webページを作っています。 タイ語のフォントにはWindows Vistaのコントロールパネルからユニコード文字(タイ語 Kedmanee)を呼び出して使っています。このタイ語のユニコード文字ですが、DWCS4のライブビューで閲覧するとタイ語のフォント部分だけごっそり抜けちゃった表示になります(ブラウザではIE、Firefoxともにちゃんと表示されています。)。これは単にDWCS4のライブビューが対応していないだけなのか、私の使い方が悪いのかをはっきりさせたいので質問させていただきます。 DWCS4ではデフォルトでのDTD宣言文はXHTMLのTransitional、meta要素内のキャラクターセットの文字コードはutf-8になっています。utf-8はユニコード文字対応ではなかったかと思うのですが、ライブビューで表示がうまくいかないのはこれだけでは何かが足りないということなのでしょうか? 足りないとすれば何が足りないのでしょうか? よろしくお願いします。

  • Unicode 対応の sed って無いのですか?

    Windows でUTF8 日本語を処理できる sed は未だ存在しないのでしょうか? SJIS の日本語文章は正しく動作しますが、unicode のファイルの日本語処理は動作しません。 utf8 の入力ファイル、スクリプトファイル(.sed)を使用すると正しく動きません。 処理可能な sed はありますか? 例えば:  in.txt の内容 = 日本語, script.sed 内容= s/日本語/jjjj/ の uft8 ファイル、とし、 sed -f script.sed in.txt > ot.txt を実行 →エラー発生。 no such command as ・ソs/譌・譛ャ隱・jjjj/ と文字化け?。・ソ、ってゴミ?。 (日本語なしの script でも同一) script.sed をSJIS とすると、エラーは出ないが、ot.txt は空。 (色々の sed で確認しましたが、onigsed での --ctype=utf8 指定も駄目でした。)

  • Flash8のユニコードについて。(mySQLとの連携)

    Flash8とPHPとmysqlの連携でアプリケーションを作っています。 mysqlで作ったデータベースからphpで日本語のテキストを読み込み、ActionScriptで表示させたいのですが、ユニコード(?)が違うらしく文字化けが起こってしまいます。(ムービープレビューの際) mysqlのユニコードShift-JISにしています。 Flashのユニコードを変更することはできるのでしょうか? また、文字化け解消のアドバイスなどあればお願いします。

    • ベストアンサー
    • Flash
  • unicode対応のテキストファイルについて

    ドイツ語のウムラウトが入った文章をOCRソフトを使って認識させ、テキストファイルにした後、ワード2000にて編集しています。 OSはWin-XPを使用しております。 教えていただきたいのは、ワード上で上記のテキストファイルを開く際に、一旦そのテキストファイルをunicodeのどの形式で開くのかというメッセージがでてからウムラウトが文字化けせずに開かれる場合と、何も聞かれずにウムラウトが文字化けされた状態で開かれる場合があり、どのような場合に後者のような状態になってしまうのかが分からないでおります。 お分かりの方いらしたらよろしくお願いいたします。

  • 多言語環境--Unicode非対応アプリに対する言語設定アプリ

    ●多言語環境に関してのアプリケーションの名称を教えてください。 Unicode非対応のアプリケーションの対応言語を個々に設定するものです。 マイクロソフトのサイトからダウンロードして数年前まで使っていたのですが....ノートパッドのようにアクセサリに分類されていました。 コントロールパネル>地域と言語のオプション>詳細設定 で Unicodeに対応していないアプリケーションに対しての設定をどうするか...という方法ではありません。いわゆるMUIに関する質問でもありせん。 補足説明: 英語版OSで日本語ソフト、あるいは日本語版OSでフランス語ソフトを使うと文字化けするものがあります。Unicode非対応なのでしょう。一つの英語版OSで、数種類のUnicode非対応アプリケーションを使う場合の言語設定アプリケーションを探しているのです。(マイクロソフトが提供しているもの) Unicodeに対応しているWordでは問題ありません。日本語XP上でフランス語版、イタリア語版のOffice(Word,Excel...)がこの特別なソフトなしで作動しています。 よろしくお願いします。

  • Unicode

    グローバルIME、市販ソフトで中国簡体字フォントを入手して簡体字を使用して電子メール送信しようとしたらそのまま送信する。Unicodeで送信する。選択肢のメッセージがでました。 そのまま送信にすると文字化けが起き、Unicodeなら文字化けしないということでしょうか? それともツールバー表示からエンコードをクリック外国、言語から中国語簡体字2312?をクリックすればいいんでしょうか? Webサイトや受信メールなどは文字化けはエンコードを中国簡体字にすれば正常に戻りますが送信したメールは相手にどう表示されてるかわかりません。 送信済みメールをみればいいのでしょうか?

  • リダイレクトする時の文字コードをUnicodeに

    現在、VisualStudioで、システムコールの標準出力結果をリダイレクトしてファイルに保存する プログラムを書いています。 _tsystem(command); のような感じで、commandには "hogehoge > hoge.txt"のように入ります。 ※command はTCHAR この出力結果が、Shift-Jisになっているようで、Shift-Jisだと日本語が文字化けせずに表示されるのですが、Unicode UTF-16にすると文字化けしてしまいます。 Unicode UTF-16とかUnicode UTF-8など文字コードを指定してリダイレクトできないのでしょうか。 ちょっと調べてみましたがうまく見つかりませんでした。

  • インターネット Unicode(Utf-8) 表示されない。

    こんにちは、 環境:Windows2000PRO、IE6.0 インターネットをブラウズすると、エンコードが Unicode(Utf-8) になっていて文字化けしたり、表示されなくなります。 画面で右クリックしてエンコードを日本語(SHIFT-JIS)にすると直ります。この状態をどのように直せばいいのでしょうか? 何かお分かりの方がいましたら教えてください。 よろしくお願いします。

  • MS Word 2007 マクロの書き方

    Word2003 でマクロを使っております。手順は文書として保存してあります。これをWord2007 に書き込みたいのです。(修正が必要かも知れないのは覚悟しております。)Word2007 の VisualBasicEditor を開きたいのですが、うまく行きません。 Word2003 では、メニューバー/ツール/マクロ/VisualBasicEditor と進むとNormal-標準モジュール-NewMacros と言うツリーが表示されましたが、 Word2007 ではNewMacros が出てこないのです。ご援助いただければと思います。 追加ですが、Word2000 でも同様の問題があり、困っておりますので、こちらもよろしく。

専門家に質問してみよう