[[20160910105140]] 『フォームボタンが潰れてしまう』(感Feel) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『フォームボタンが潰れてしまう』(感Feel)

 お世話になります

 セル B3 の位置にフォームでボタンを作成しマクロのスタートスイッチにしています
 (実際には他の位置にも数か所あり)
 列Bを非表示にすると当然ボタンは見えなくなり、
 再表示するとボタンも元通り復活します

 ですが非表示にしたままブックを閉じて再度開き直し
 非表示にしていた列Bを再表示させるとボタンが潰れてしまいます

 こうならない様にブックのクローズイベント時に
 列Bを再表示させるマクロを組んでいますが、他の人に触られたくないボタンもあり
 他に良い方法、例えば(ボタン作成時の設定やブックを閉じるのをキャンセルされた場合の処理方法)
 等、有りましたら教えて下さい
 宜しくお願いします

< 使用 Excel:Excel2010、使用 OS:Windows7 >


コントロールの「オブジェクトの位置関係」プロパティについて
"セルに合わせて移動やサイズ変更をしない"
にチェックを入れてみては?

(γ) 2016/09/10(土) 11:32


 γさん
 返信有難う御座います
 >コントロールの「オブジェクトの位置関係」プロパティ
 とは、
 ボタンを右クリック
 メニューの"コントロールの書式設定(F)... をクリック
 ダイアログのプロパティ タブをクリックして
 出てくる部分でしょうか?

 "セルに合わせて移動やサイズ変更をしない(D)"を実行したところ
 たしかにボタンは潰れなくなりますが、列非表示時に隠れてくれません

 要望としては
 列非表示時には隠れてほしい
 列再表示時には復活してほしい
 列非表示のままブックを閉じて、再び開き、再表示時には復活してほしい
 です

 わがままでしょうか?。。

(感Feel) 2016/09/10(土) 12:06


保存するファイル形式を、旧形式互換のxlsにしていませんか?
2007以降の形式である、xlsxまたはxlsmを選択すると、どうなりますか?
(???) 2016/09/12(月) 11:07

 ???さん
 返信有難う御座います
 拡張子.xlsx   .xlsm 両方とも同じ結果です
 勤め先のPCを最近エクセルを2007から2010に変えてからの現象です
 自宅にあるPCのエクセル2013ではこの様な事は無いので
 仕様なのかと諦めかけています

 ちなみにフォームボタンではなく、activeXのボタンで同様の事を行うと
 ボタンは潰れるのではなく、全く見えなくなってしまいました
(感Feel) 2016/09/13(火) 15:32

Excel2010で試したところ、確かに再現しました。 非表示でも、グループ化でも駄目。 これはExcelの問題ですねぇ。 2010で問題になり、2013で修正された、といったところでしょうか。

2010では、隠れるところにボタンを置くな、という事ですかねぇ。 または、マクロでも使って、ボタンサイズを復元してやるしかないのではないかと思います。
(???) 2016/09/13(火) 15:50


 >隠れるところにボタンを置くな
 メニュー(CommandBar、アドインタブもしくはセル右クリック)とかリボンのボタンにするとか
 も検討しても良いかも。

(とおりすがり) 2016/09/13(火) 19:00


経験上、バイナリブック形式(*.xlsb)だと発生しにくい気がします。
(白茶) 2016/09/13(火) 19:08

 ???さん 再現までして頂き有難う御座います 
 ボタンサイズを復元するとの発想が無かったので やってみようと思い
 マクロ記録で既にあるボタンの大きさをいじってみました
 ActiveSheet.Shapes("Button 129").IncrementLeft 5.8333858268   
 ActiveSheet.Shapes("Button 129").IncrementTop -3.3333070866
 上記が記録した内容です
 これで任意の大きさに出来る様ですが
 元々の大きさを取得するため
 MsgBox ActiveSheet.Shapes("Button 129").IncrementLeft
 とすると
 実行時エラー'450' 引数の数が一致していません。
 または不正なプロパティを指定しています
 と出てしまいます。
 値の取得方法、有りましたらお教え下さい
 お時間取れる時で結構ですので宜しくお願いします
(感Feel) 2016/09/13(火) 19:40

 とおりすがりさん
 有難う御座います
  メニュー、リボンのボタンに関して
  今回使用しているBookは私が作成して複数の人が使用します
  右クリックメニュー、リボンに登録すると私は使用出来ても他の人が使用出来ない様
  に思えてこれまで避けてきました。
  今回はボタン復元で考えています。申し訳ありません
(感Feel) 2016/09/13(火) 19:50

 白茶さん
 有難う御座います
  バイナリブック形式(*.xlsb)
  で行ってみました。確かにボタンが復活します
   このバイナリ形式とは使った事が無く、どの様なものかも分からなかったので
  ググったところ、ファイルサイズが小さく出来るとの事で
  それは有りがたい事ではあるのですが、
  編集した際におかしくなるとの事も書いてあり、使用するのを躊躇してます。
  使用しているブックは3年程前に作成し、すこしづつ改良を加えながら現在に至っているものですので
  今回は遠慮させて頂きます。ごめんなさい
  
  
  

(感Feel) 2016/09/13(火) 20:13


インクリメントとは増加の意味であり、ずらす量を指定します。だから今回の用途ならばこれではなく、Top、Left、Height、Widthのプロパティを書き換えてみてください。
(???) 2016/09/14(水) 13:05

 ???さん
 有難う御座います
 おかげで目的の事が出来そうです
 まだテスト用ブックの段階ですが、教わった内容から下記の様なマクロとしました

 Sub ボタン幅() 'ボタンの幅をセルA1,B1〜 に書き込む
   Dim s As Long
     For s = 1 To Sheet1.Shapes.Count
        Cells(1, s) = Sheet1.Shapes("button " & s).Width
     Next s
 End Sub

 Sub ボタン復活() 'セルA1,B1〜 に書き込んだ通りのボタン幅にする
  Dim s As Long
      For s = 1 To Sheet1.Shapes.Count
        Sheet1.Shapes("button " & s).Width = Cells(1, s)
      Next s
 End Sub

 感謝しております 有難う御座いました
(感Feel) 2016/09/14(水) 18:47

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.