« 忍者アクセス解析のリニューアルに想うこと | トップページ | 2-上尾市は団地で人口急増し、団地から人口減少が加速 »

2015年9月 9日 (水)

Excelのマクロボタンが勝手に小さくなったり拡大する問題の対策

Excelのワークシート上のマクロボタンが勝手に小さくなったり大きくなる怪現象
 
●対策とその後の経過を末尾に追記。
 
昔からずーと気になったままでした。明らかにExcelのバグと思うのに、解決策が見つからないので手の付けようがないトラブルです。
 
初めはExcel2002(XP)からExcel2007に切り替えたころのような気がします。その頃はExcel2007のリボンインターフェースが酷すぎて使うのを避けましたが、その後全面的にExcel2010を使い始めても、この怪現象はたまに発生します。
 
Excelのマクロを定義したワークシート上のボタンが、何かの拍子に勝手に拡大したり縮小したり、あるいはその位置がずれて表示されます。下図はマクロボタンが小さくなって位置もずれた例です。
Excel_2  
特にはボタンをクリックするたびに、ボタンサイズが拡大して巨大化した例もありました。研修でプロジェクターで投影中に起きたときは、汗顔ものでした・・・
「あっ、これはExcelのバグです」って言ってのけました(Excelにバグがあるなんて思わない人が多いけど、Excel97の頃は酷かったですよ・・・)
 
この現象が起きてもデザインモードで直すのは簡単ですが、頻繁化するといちいち面倒です。
 
当時も、ネットで検索して解決策を探したけれど見当たらず、そもそもこの怪現象を上げている例が極わずかでした・・・。
まあ、思いつくのはコントローの書式設定で、位置やサイズ変更に影響するプロパティ内の定義と思って、試したことはありますが、それでも解決しません。
Photo_2
 
久しぶりにネットで調べたら、今はトラブルとして認識されているようですが・・・解決策の決め手が良くわかりません。
 
ユーザーとしては発生原因を知りたいのではなく、たんに直ればよいのです。このトラブル自体はデータを壊してしまうものではなく、ボタンの表示サイズが狂ってしまうだけなので…
ということで、一つ今までやってないことで、ネット上にあったヒントとして試したのが複数のボタンをグループ化することです。
暫くこれで様子を見てみます・・・
 
●2015/12
ボタン図形のグループ化後は、ボタンが拡大する現象は現れてないので効果があったような気がする。しかし先日、PC側画面と接続プロジェクター画面で、投影切替をしているとき、複製モード中にボタンに書いた文字が小さくなる現象が発生。動作的には何の問題もない。
後で、そのボタンのサイズを変更(確か実際は変更しないが)しようとする操作をすると、ボタン内の文字が正常に戻った。
 
その後も、プレゼンなどでプロジェクターに複製モードにした時(PC側とプロジェクター画面の解像度の違いがある場合)に、ボタン内の文字がクリックするたびに小さくなることは確実に発生します。でもボタン自体が拡大する現象は一度も起きないので、図形グループ化は効果が有ったように思う。
 
追記
上記の画面の複製モードで起きやすい時は、なるべく拡張モードで使うようにしています。
 
参考 

プロジェクターを拡張モード表示でプレゼンに利用する方法

« 忍者アクセス解析のリニューアルに想うこと | トップページ | 2-上尾市は団地で人口急増し、団地から人口減少が加速 »

パソコン・インターネット」カテゴリの記事

コメント

ActiveXのボタンのバグです。 プロジェクターを接続するなどした時に解像度に変化が発生すると必ず出ます。

まだ直らないのですね。
プロジェクターに接続することもありますし、普段はマルチ画面もしていますが、
自分はその後再現した経験が無いので、本件トラブルを忘れていました。

なる程 グループ化ですね
かなり昔からこれいきなり出たり、出なくなったり。ある人は出たり、出なかったり。
拡張画面の解像度の違い?とも思ったのですが、それでも治らず困ってました。
マイクロソフトでは既知のエラーですで対応する気もなさそうだし…
やってみます。

Office 365の最新版でも改善されないですね。グループ化すると避けられるのか。
自分の環境ではExcelを開いたまま1日放置(画面消す?)してボタンを押すと発生しやすい。
Hight, Width値は維持されてるのでマクロでサイス広げて戻して保存して閉じて開いて復元してます。
おそらく描画サイズのデータを揮発する部分に置いていて吹っ飛んでるんだろうな。

このVBAのバグはしつこいですよね。Excel2007位からです。
最近、このページのアクセスが増えていたので気になっていました。
私は最近あまり使わないのですが、再現した記憶はずっと過去のものです。
ボタンが一つしか無ければ、ダミーを作って複数にしてグループ化して見ればよいです。
むしろ、他に解決策が見つかったら教えて下さいな。

先日から同様の現象に頭を悩ませており、こちらの記事にたどり着きました。
ボタンコントロールを使わない方向で対応したいと思います。

これ、10年くらい続くバグですね。

上手く行きましたか?
他の方のために役立つこと
書いてもらえるといいでよね

しびれを切らせて、ボタンの位置&文字サイズを指定の数値に戻す関数を作りました。
ボタンを一つづつ指定する必要ありますが、これを任意のタイミングや、ブックを開く際に起動させます。

Public Sub ActiveXControl位置規制( _
obj As CommandButton, _
r As Range, _
m_Left As Integer, _
m_Right As Integer, _
m_Top As Integer, _
m_Bottom As Integer, _
fontSize As Integer _
)
'**************************************************************************
'[処理内容]
'
'引数に従い、ctiveXControlの表示位置を規制する
'すべて参照渡し
'
'obj: 対象オブジェクト
'r: 対象オブジェクトをはめ込むRange
'm_Left: 同Rangeと対象オブジェクトの左マージン
'm_Right: 同Rangeと対象オブジェクトの右マージン
'm_Top: 同Rangeと対象オブジェクトの上部マージン
'm_Bottom: 同Rangeと対象オブジェクトの下部マージン
'fontSize: フォントサイズ
'
'**************************************************************************

'対象オブジェクトのプロパティ変更------------------------------------------
obj.Left = r.Left + m_Left
obj.Top = r.Top + m_Top

obj.Width = r.Width - m_Left - m_Right
obj.Height = r.Height - m_Top - m_Bottom

obj.Font.Size = fontSize

End Sub

呼出側はこちら↓
Call ActiveXControl位置規制(Me.CommandButton1, Me.Range(Me.Cells(5, 3), Cells(7, 5)), 15, 15, 5, 5, 10)

今まで、同様に「コマンドボタン」で発生していましたが、ボタンは実害が無いのでそのまま諦めていました。
しかし、今回「コンボボックス」でも発生してしまいました。
コンボボックスは、値の表示が無いと不都合なので、調べていてここへたどり着きました。

で、まろさんのような『ボタンの位置&文字サイズを指定の数値に戻す関数』のような大げなことはせず、
『拡大されるオブジェクトの「LostFocus」イベントで、下記のように表示位置を変更して戻す』ようにしました。
※解消オブジェクトは3つだったので、関数化はしませんでした。
  変数 = オブジェクト.Left '元の位置を退避
  オブジェクト.Left = 0 '一旦位置を変更
  オブジェクト.Left = 変数 '元の位置へ戻す
操作中のみ拡大されますが、フォーカスが移れば元に戻りますし位置の変化は肉眼ではわかりません。

まろさん、道さん コメントに深謝。
参考になれば良いですね。

管理人様、コメント、ありがとうございます。

ここ、マイクロソフトの人に見てもらいたいですね。

同じPC(X)で、同じ処理をで実行しても、下記の使い方で結果が異なっています。
 Win10のPC(A) から リモートで PC(X)のExcelを実行 … ボタンが拡大された 
 Win11のPC(B) から リモートで PC(X)のExcelを実行 … ボタンが拡大されない
その辺りにも関係してる?

コメントを書く

(ウェブ上には掲載しません)

« 忍者アクセス解析のリニューアルに想うこと | トップページ | 2-上尾市は団地で人口急増し、団地から人口減少が加速 »

無料ブログはココログ

上尾市政をみつめるサイト

  • 上尾オンブズマン
    市民的視座から上尾の教育行政&市政を考えよう。 (情報公開請求により市政に斬り込むサイト)
  • はるかさん_かまちょ図書館
    上尾市民として市政とりわけ図書館問題を熱く語っています。ぜひ飛んでください。 かまってちょうだいの意ね。