![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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で実行すると、文字化けせずに表示されます。
何かいい解決策はないでしょうか?
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
この回答への補足
>このマクロを別PCのWindows XP、VISTA上のWordで実行すると、文字化けせずに表示されます。
これらのPCは、以下が「Japanese」になっているからだと思われます。以下の設定を「英語(米国)」にするとこれらのPCでもまったく同じ現象がおこりました。VBのコメントなどSJISで書かれた文字が全て文字化けします。やはりユニコード対応しないと以下の設定が「英語(米国)」場合、文字化けしてしまうようです。
Regional and Langage Option画面の[Advanced]タブ、Language for non-Unicode programs」
今から、アドバイスいただいた方法を試してみます。助かります。ありがとうございました。
上記で教えていただいた方法を試しても駄目でした。
しょうがないので、なんとかこのサーバーの管理者に頼んで、
Regional and Langage Option画面の[Advanced]タブ、Language for non-Unicode programs」を「Japanese」
に変更してもらいました。
その変更により、文字化けは解消されました。
ご回答、ありがとうございました。
No.2
- 回答日時:
#1で触れましたが、Unicode とは言っても、アジアの言語のフォントが入っていないことがありますから、日本語のフォントは確認していますでしょうか?
http://www.daw-pc.info/windows/jpcorrespond.htm
2.日本語フォントをインストールします
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になっています。
No.1
- 回答日時:
「PCがWindow Server2003英語版上のMicrosoft Word」
と
「OSはSJISの文字コード対応していない」
とは条件が違います。Microsoft Wordも英語バージョンということなら、
スタートメニューのOffice のメニューに、Langauge Setting があったはずです。
日本語のフォントはいれてあるものとします。
それで、日本語を使用するようにしてあればよかったと思います。それをしていないと、表示出来ません。
それで、Word で日本語が保存できないようなら、VBEditor 側から、ThisWorkbook のブロパティから、SaveEncording から、Unicode などを選べばよいと思います。
ご回答ありがとうございます。このサーバーは、アメリカの企業が提供しているもので、それをアメリカのNewYorkにある日系企業が導入しています。もともとアメリカ企業向けサーバーなので、OSもMS Wordも英語版です。それを日本語の入力と表示を可能にして、リモートデスクトップでアクセスし、利用しています。
WordのLanguage settingは日本語が追加されていました。Word上でキーボードでは、日本語入力が可能です。また日本語の表示は可能です。別のPCで日本語入力(SJIS)したファイルをこのPCで開くと日本語部分が文字化けします。そのファイルをユニコード変換した後に表示すると正しく日本語が表示されます。
作成したマクロから、Word上で日本語を入力すると文字化けします。VBEditor 側から、ThisWorkbook のブロパティで、SaveEncording をUnicodeにしてやってみましたが、やっぱり文字化けしてしまいました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
outlook 文字を揃えたい。tab...
-
マイクロ(μ)の文字を半角で出...
-
教えてください。
-
MsgBoxについて
-
英字フォントが指定された場合...
-
似ているフォント(Win⇔Mac)
-
CommonDialogでの、キャンセル...
-
C# Font GdiCharSet
-
英語版OSでの遊明朝、游ゴシック
-
Excel:一部のフォントでセルの...
-
printf("文字列\\n")が円マーク...
-
フォントファイル(.ttf , .otf)...
-
VB.NETでフォントのカラーを変...
-
VBでデバックするとエラーになる。
-
このフォントは何でしょうか?
-
FontDialogでTrueType以外
-
HPで使って文字化けしないフォ...
-
Outlookのメールを送信するマクロ
-
VB6とVB.NETでは同じフォントで...
-
WORD VBAでハイパーリ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
outlook 文字を揃えたい。tab...
-
マイクロ(μ)の文字を半角で出...
-
教えてください。
-
「MS Pゴシック」と同じ幅の...
-
MsgBoxについて
-
似ているフォント(Win⇔Mac)
-
英語版OSでの遊明朝、游ゴシック
-
C# Font GdiCharSet
-
font-family の記載方法
-
逆向き/(スラッシュ)の入力方法
-
ワードでゴシックの文字を太く...
-
メールで、榊の文字を木辺に神...
-
Excel:一部のフォントでセルの...
-
Visual C++ 6.0 行番号の表示
-
エクセルVBAが中国のPCでは動か...
-
エクセルの代替フォントを指定...
-
縦書きテキストボックスの表示"...
-
printf("文字列\\n")が円マーク...
-
外国語版メイリオはある?
-
WORD VBAでハイパーリ...
おすすめ情報