質問者
excel2019のVBAのActiveXコントロール上のcaptionでの文字化け

質問
-
初めて質問します。
Excel2016の開発画面で フォームを作り、そのフォームのCaptionを全角で入力すると、文字化けします。
ちなみにWord2016でも同じです。
例えば、ActiveX のコマンドボタンを作り、 データ入力 とすると メタ痘ヘ と変換されます。
ちなみに、デフォルトは MS明朝 にしています。
対処法はあるのでしょうか?
(ちなみに、ネットで検索したら、Excel2013のレジストリエディタによる数値の変更の記事がありましたが、2016には同様の名前がありませんでした。 コンピューター\HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Excel\Options )
すべての返信
-
"MS明朝" というのは、
"MS 明朝" のことかと思いますが、当方では再現させられませんでした。Excel 2016 MSO (16.0.12730.20144) 32 ビット
バージョン 2004 (ビルド 12730.20270 クイック実行)
月次チャネルひとまず、フォントキャッシュを削除してみるというのは如何でしょう。
-
そのフォームのCaptionを全角で入力すると、文字化けします。
ちなみに、デフォルトは MS明朝 にしています。
Form の Caption のフォントは UserForm 側からは指定できず、OS の設定に準拠するはずです。CommandButton の Caption であれば、Font プロティにてフォントを設定できます。
データ入力 とすると メタ痘ヘ と変換されます。
Shift_JIS でエンコードしてみると、バイナリの一部が欠けたようにも見えますね…。
83-66-81-5B-83-5E-93-FC-97-CD:「データ入力」
83-81-83-5E-93-97-CD:「メタ痘ヘ」問題が発生するのはデザイン時だけなのでしょうか。
プログラムから Caption をセットした場合はどうなりますか?Option Explicit Private Sub CommandButton1_Click() Const SHIFTJIS As Integer = 128 Dim msg As String msg = "データ入力" Dim f As StdFont Set f = New StdFont f.Name = "MS 明朝" f.Charset = SHIFTJIS Set Me.CommandButton1.Font = f Set Me.Label1.Font = f Set Me.Font = f Me.CommandButton1.Caption = msg Me.Label1.Caption = msg Me.Caption = msg End Sub
- 編集済み 魔界の仮面弁士MVP 2020年5月26日 7:40
-
事象が発生しているのは、CommandButton の Caption でしょうか。UserForm の Caption でしょうか。
先述した通り、UserForm の Caption 表示は、OS 側の設定に依存するはずです。
あるいは、デザイン時に化けるだけで、実行時には化けない状態でしょうか? だとすると、開発環境固有のトラブルかもしれません。
現在使用している Office の「詳細」なバージョンを教えてください。
今回の質問では、標題が『excel2019』、本文が『Excel2016』となって不一致になっていますが、知りたいのは、[ファイル]-[アカウント]-[Excel のバージョン情報]で確認できる、より詳細なバージョン情報です。 -
-
Excel 2016 MSO (16.0.12730.20144) 32 ビット
バージョン 2004 (ビルド 12730.20270 クイック実行)
月次チャネル更新して下記のバージョンにしてみましたが、当方ではやはり再現しませんでした。
Excel 2016 MSO (16.0.12730.20352) 32 ビット
バージョン 2004 (ビルド 12730.20342 クイック実行)
月次チャネルこちらの OS は、Win10 バージョン 1909 (OS ビルド 18363.836) です。
システムロケールは日本語で、UTF-8 を使用のチェックは OFF の状態です。OS バージョンにも左右されるのかな…。
- 編集済み 魔界の仮面弁士MVP 2020年5月27日 4:21
-
「データ入力」と直接記入せず、クリップボードから貼り付けた場合にも、「メタ痘ヘ」に化けてしまうのでしょうか?
ネットで検索したら、Excel2013のレジストリエディタによる数値の変更の記事がありましたが、2016には同様の名前がありませんでした。
上記は、 KB416637 のことでしょうか。レジストリ項目が無かったとのことですが、該当エントリを追加したら改善されないでしょうか。
知恵袋にて、今回の事象と同種のトラブルが書き込まれており、その方は新規にレジストリ項目を追加することで解消されたそうです。2019年1月時点の Excel 2013 の書き込みですが、状況がほぼ同じなので無関係では無さそう。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11201813726
上記での化け方は
> 入力:「個人」 ⇒ 表示「倹l」
> 入力:「検査」 ⇒ 表示「訣ク」とのことなので、「データ入力」⇒「メタ痘ヘ」の時と同パターンですね。
個人:8C-C2-90-6C
倹l:8C-90-6C
検査:8C-9F-8D-B8
訣ク:8C-8D-B8 -
>「データ入力」と直接記入せず、クリップボードから貼り付けた場合にも、「メタ痘ヘ」に化けてしまうのでしょうか?
やってみましたが、化けません!!
それと、 https://support.microsoft.com/ja-jp/help/416637 の中の その2 一文字づつ入れれば化けません。
レジストリですが、以下をOptionsの下に作る、ということですよね。
Excel 2013
キー名 : HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\Options
名前:QFE_17407
種類:DWORD
データ: 1 -
Excel 2013
キー名 : HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\Options
名前:QFE_17407
種類:DWORD
データ: 1を追加したら、治りました。
Excel 2016 をお使いだったのですよね。15.0 の下で大丈夫でしたか?
16.0 → Excel 2016/2019
15.0 → Excel 2013
14.0 → Excel 2010
12.0 → Excel 2007
11.0 → Excel 2003
10.0 → Excel 2002
9.0 → Excel 2000
8.0 → Excel 97
7.0 → Excel 95