Excel2013のボタンキャプションが文字化けする

お世話になります。

 

Excelでツールを作っております。

 

Excel2013での動作試験を行ったところ、

以下の現象を確認いたしました。

 

ボタンを配置し、キャプションに全角記号を入力すると、文字化けする。

例:キャプションに「←」を入力すると、©(著作権の丸C)が表示される。

 

2台のWindows7、Officeは2013のみインストールしているパソコンで確認しました。

なお、2台とも確認用にWindowsのインストールから行ったパソコンで、

影響しそうなしそうなソフトウェアは、以下のみです。

・Symantec Endpoint Protection

・秘文 Advanced Edition

 

追加情報1:仮名や漢字、「+」「¥」など基本的な記号は文字化けしない。

追加情報2:フォントを「MS ゴシック」にしても「メイリオ」にしても文字化けする。

追加情報3:ボタンをクリックしてアクティブにすると、ちゃんと「←」が表示される。

追加情報4:「*.xls」でも「*.xlsx」でも、新規作成したブックでも文字化けする。

 

当該ツールは、配布して使ってもらっているものなので、

できればツールの改訂なしに対応できれば良いと考えています。

 

よろしくお願いします。

 

 

おっしゃる通り文字化けしますね。

多分バグでしょうが、元々ActiveXコントロールはシート上で使用するものではありません。

(ユーザーフォーム上ではそんなことは起こりません)

フォームコントロールのボタンを使うことをお勧めします。

(VBA関係は余程重大な問題でなければ、バグ報告してもサービスパック等で対応されることは稀ですので代替手段を取る方が早いです)

 

この返信が役に立ちましたか?

役に立ちませんでした。

素晴らしい!フィードバックをありがとうございました。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。今後のサイト改善に役立てて参ります。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。

y sakuda さん、いつもアドバイスありがとうございます。
KrK as さん、こんにちは。
マイクロソフト コミュニティをご利用いただき、ありがとうございます。

手元の Excel 2013 で確認してみた結果、こちらの環境でも文字化けする動作でした。

手元でさらに調べてみた結果、直接シート上のボタンを右クリックし、 [ コマンド ボタン オブジェクト ] の編集から直接文字を入力して Caption を付けてみると文字化けは発生しなかったです。
(この方法で入力した後、ボタンのプロパティを確認してみると Caption に入力はできてました)

もしかするとすでにお気づきの方法かもしれないですが、上記の方法で回避ができるか試してみるのもよいと思います。
大沢 孝太郎– Microsoft Support

一人がこの返信を役に立ったと思いました

·

この返信が役に立ちましたか?

役に立ちませんでした。

素晴らしい!フィードバックをありがとうございました。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。今後のサイト改善に役立てて参ります。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。

y sakuda様、大沢孝太郎様、ご返答ありがとうございます。

 

確かに [ コマンド ボタン オブジェクト ] の編集から直接「ひだり」で「←」を入力すれば文字化けしませんね。

しかし、他で「←」をコピーして、[ コマンド ボタン オブジェクト ] の編集に貼り付けると文字化けします。

 

また、一部の文字は、直接入力しても文字化けします。

 

ちょっと調べてみました。

■「プロパティ」に貼り付けても文字化けしない
 、。,.・:;?! ゛ ゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~|…‥‘’“”()〔〕[]
{}〈〉《》「」『』【】+-±×÷=<>°′″¥$¢£%#&*@§※〒〓¶
ΑΒΓαβγ АБВабв ①②③ ⅠⅡⅢ ㏍㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼㍻ ㎜㎎㏄№℡

 

■ [ コマンド ボタン オブジェクト ] に入力するとOK
→←↑↓≠≦≧∞∴∵≡≒⊥∠√

 

■ [ コマンド ボタン オブジェクト ] に入力しても文字化け
☆★○●◎◇◆□■△▲▽▼♂♀℃♪┌┐㎝㎞㎏㎡

 

ミリメートルは文字化けせず、センチメートルが文字化けしたり、基準が分かりません。

こうなってくると、通常の漢字も文字化けするものがあるのではないかと不安になります。

 

また、主題から外れますが、もう一つ質問させてください。

y sakuda様のおっしゃっている様に、ActiveXコントロールはシート上で使用するものではないのでしょうか?

私の調べたところ、フォームコントロールは古い規格だということで、ActiveXコントロールを使ったのですが…。

ActiveXコントロールの方が、チェックボックスを入力できなくできたりして便利なのですが…。

(フォームコントロールではできないと思いますが…。)

それとも、シート上にボタンを沢山貼ること自体非推奨で、

難しい処理をするときはユーザーフォームを使えということなのでしょうか?

 

よろしくお願いします。

この返信が役に立ちましたか?

役に立ちませんでした。

素晴らしい!フィードバックをありがとうございました。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。今後のサイト改善に役立てて参ります。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。

明確に“ここが悪い”と言うほどのものはありませんし、私自身もたまに使いますが、長年ここのようなQ/Aを眺めていると、シート上で使用した場合のマイナートラブルの質問と言うのは結構目立ちます。

また、わずかなサイズでしょうが、Tempファイルにゴミが残るそうです。(わざわざ確認したことはありません)

ツールコントロールボックスのオブジェクトはActiveXコントロールですから、Excel97以降に加わったもので、Excel95以前はフォームコントロールしかなかったはずです。

>フォームコントロールは古い規格だということで

確かに古いものですが、すべてAcetiveXに変えるべきと言う話は聞いたことがありません。

ただ、フォームコントロールではイベント処理ができないとか、チェックボックスの図柄が悪いなど不都合な場合もありますので、ActiveXを使わざるを得ない場合もあります。

 

この返信が役に立ちましたか?

役に立ちませんでした。

素晴らしい!フィードバックをありがとうございました。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。今後のサイト改善に役立てて参ります。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。

y sakuda様。さっそくのご返答ありがとうございます。

 

たてつくわけではありませんが、再び質問をさせていただきます。

 

確かに現状フォームコントロールで組んであるツールをActiveXコントロールに「変える」必要はないと思います。

 

しかし、単純に「ActiveXコントロールの方が機能が充実している」という点だけを見れば、

ツールを新規作成する際にはActiveXコントロールを選ぶのが普通だと思うのですが、どうでしょうか?

「普段はフォームコントロールを使い、必要な機能がない箇所にのみActiveXコントロールを使う」というのも、

なにか、こう、不自然な気がするのですが…。後から機能を追加したくなるかもしれませんし…。

少なくとも私なら、前任者がその様なものを作っていたら、何故そうしたのか理由を聞くと思います。

 

機能が充実することにより、動作が重たくなったりコーディングが複雑になったりすれば話は別ですが、

特に重たい感じはしませんし、コーディングに関して言えば、ActiveXコントロールの方が簡単な気がします。

 

y sakuda様のおっしゃる「マイナートラブル」とは、

Tempファイルのゴミ以外に、どのようなものを言っているのでしょうか?

「ちょっとした工夫がないと思い通りにならない」様なものでしょうか?

Cのポインタの様な「ちゃんと使わないと誤動作を起こす」様なものでしょうか?

単純にバグが多いのでしょうか?

 

ActiveXコントロールはExcel97で実装されたとのことなので、既に16年の実績があり、

「フォームコントロールよりActiveXの方が明確にバグが多い」という段階ではないと思うのですが…。

また、「ちょっと気を付ければ解決できる」のなら、

私なら機能の多いActiveXコントロールを選びますが、どうでしょうか?

 

よろしくお願いします。

この返信が役に立ちましたか?

役に立ちませんでした。

素晴らしい!フィードバックをありがとうございました。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。今後のサイト改善に役立てて参ります。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。

いちいち気にしませんが例えば今回みたいなケースです。

(基本的に自分では使わないので、シート上のActiveXの問題については気にしてませんが、時々Q/Aサイトで目にするというだけです)

>ActiveXの方が明確にバグが多い」

そういう意味ではなく、MSの開発サイドが基本的にはVBAにはそれほど注意を払っておらず、更にActiveXとシートの相性に注意を払っているとは思えないと言う程度です。また、VBAがらみのバグはすぐには対応されません。

いずれにしろ、VBAに関して言えばOfficeのVersionが変わった場合、既存のコードは一通りチェックして見ないと安心できません。

2013でも私の印象に一番残っているのは、VBAで別ブックを操作している際、ユーザーフォームを表示すると、その時点のActiveSheet関係なく、そのユーザーフォームがLoadされた際のActiveSheetが見えてしまうと言う奴でした。

これなんかは小手先の細工で回避できましたが、そうとは限りませんので代替手段を見つけるなど誤魔化すしかないと思ってます。

それに、MSはOfficeAppの方に舵を切っているような気もしますので、VBAもいつまでサポートされるのか心配ではあります。

 

一人がこの返信を役に立ったと思いました

·

この返信が役に立ちましたか?

役に立ちませんでした。

素晴らしい!フィードバックをありがとうございました。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。今後のサイト改善に役立てて参ります。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。

y sakuda様。何度も返信ありがとうございます。

 

> VBAにはそれほど注意を払っておらず、更にActiveXとシートの相性に注意を払っているとは思えない

> VBAもいつまでサポートされるのか心配ではあります。

 

そうなんですか…。

もうVBA自体がレガシー扱いなんでしょうか。

ちょっとショックです。

 

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

2 ユーザーがこの返信を役に立ったと思いました

·

この返信が役に立ちましたか?

役に立ちませんでした。

素晴らしい!フィードバックをありがとうございました。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。今後のサイト改善に役立てて参ります。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。

 
 

質問情報


最終更新日 2021年2月05日 表示 14,164 適用先: