none
excel2019のVBAのActiveXコントロール上のcaptionでの文字化け RRS feed

  • 質問

  • 初めて質問します。

    Excel2016の開発画面で フォームを作り、そのフォームのCaptionを全角で入力すると、文字化けします。

    ちなみにWord2016でも同じです。

    例えば、ActiveX のコマンドボタンを作り、 データ入力 とすると メタ痘ヘ と変換されます。

    ちなみに、デフォルトは MS明朝 にしています。

    対処法はあるのでしょうか?

    (ちなみに、ネットで検索したら、Excel2013のレジストリエディタによる数値の変更の記事がありましたが、2016には同様の名前がありませんでした。 コンピューター\HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Excel\Options )

    2020年5月26日 1:37

すべての返信

  • "MS明朝" というのは、
    "MS 明朝" のことかと思いますが、当方では再現させられませんでした。

    Excel 2016 MSO (16.0.12730.20144) 32 ビット
    バージョン 2004 (ビルド 12730.20270 クイック実行)
    月次チャネル

    ひとまず、フォントキャッシュを削除してみるというのは如何でしょう。

    2020年5月26日 4:52
  • そのフォームの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


    2020年5月26日 6:08
  • ありがとうございました。

    フォントキャッシュの削除ではできませんでした。

    が、次の プログラムからのセット では文字化けをせず、うまくできました。

    やはり、デザイン画面のプロパティ入力では文字化けします。


    • 編集済み ysyamato 2020年5月27日 1:33
    2020年5月27日 1:26
  • 事象が発生しているのは、CommandButton の Caption でしょうか。UserForm の Caption でしょうか。

    先述した通り、UserForm の Caption 表示は、OS 側の設定に依存するはずです。

    あるいは、デザイン時に化けるだけで、実行時には化けない状態でしょうか? だとすると、開発環境固有のトラブルかもしれません。

    現在使用している Office の「詳細」なバージョンを教えてください。
    今回の質問では、標題が『excel2019』、本文が『Excel2016』となって不一致になっていますが、知りたいのは、[ファイル]-[アカウント]-[Excel のバージョン情報]で確認できる、より詳細なバージョン情報です。

    2020年5月27日 1:45
  • 事象が発生しているのは、CommandButton の Caption でしょうか。UserForm の Caption でしょうか。

    両方です。

    実行時も化けたままです。

    エクセルのバージョンです。最初、2019と思い込んでましたが、2016でした。(失礼しました。)

    Microsoft excel 2016(16.0.5005.1000)mso(16.0.4993.1002)64ビット

    です。

    2020年5月27日 2:53
  • システムロケールは何になっていますか?

    http://www.soft-j.com/release/formtext.pdf

    2020年5月27日 3:08
  • ありがとうございました。

    面白いことがわかりました。

    現在のシステムロケールは 日本語(日本) ですが、その下の ワールドワイド言語サポートでUnicode UTF-8を使用 にチェックを入れるとエクセルで化けません。

    ただし、メールソフト(Becky)で文字化けがしますが。

    2020年5月27日 4:02
  • 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 バージョンにも左右されるのかな…。


    2020年5月27日 4:18
  • ありがとうございました。

    OSのバージョン及びUTF-8のチェックは同じです。

    UTF-8にチェックすると文字化けせずに動く、というのは何なのでしょうか。

    2019にバージョンアップせよ、ということなのでしょうか。

    2020年5月27日 7:00
  • 以前から発生していた事象でしょうか。

    今月から最近急に発生したのであれば、直近の Office の更新に問題があったのかもしれません。(具体的に今回のケースの障害報告が挙がっているかどうかは調べていません)

    もしかしたら、最近インストールされた KB を削除してみるか…あるいは Office をいったん削除し、再インストールすることで回復するかもしれません。

    2020年5月27日 7:06
  • ありがとうございました。

    再インストールまたはKBの削除をやってみたいと思います。

    お世話になりました。とりあえず、クローズいたします。

    2020年5月27日 7:17
  • 「データ入力」と直接記入せず、クリップボードから貼り付けた場合にも、「メタ痘ヘ」に化けてしまうのでしょうか?

    ネットで検索したら、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

    2020年5月27日 9:13
  • >「データ入力」と直接記入せず、クリップボードから貼り付けた場合にも、「メタ痘ヘ」に化けてしまうのでしょうか?

    やってみましたが、化けません!!

    それと、 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

    2020年5月28日 2:27
  • Excel 2013
    キー名 : HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\Options
    名前:QFE_17407
    種類:DWORD
    データ: 1

    を追加したら、治りました。

    長い間、ありがとうございました。

    なければ追加できるんですね。

    感謝します!!

    2020年5月28日 2:48
  • 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
    2020年5月28日 3:04
  • すみません。表記をそのままに書いてしまいました。

    16.0の下に追加しました。

    ありがとうございました。

    2020年5月28日 4:05