[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『フォームボタンが潰れてしまう』(感Feel)
お世話になります
セル B3 の位置にフォームでボタンを作成しマクロのスタートスイッチにしています (実際には他の位置にも数か所あり) 列Bを非表示にすると当然ボタンは見えなくなり、 再表示するとボタンも元通り復活します
ですが非表示にしたままブックを閉じて再度開き直し 非表示にしていた列Bを再表示させるとボタンが潰れてしまいます
こうならない様にブックのクローズイベント時に 列Bを再表示させるマクロを組んでいますが、他の人に触られたくないボタンもあり 他に良い方法、例えば(ボタン作成時の設定やブックを閉じるのをキャンセルされた場合の処理方法) 等、有りましたら教えて下さい 宜しくお願いします
< 使用 Excel:Excel2010、使用 OS:Windows7 >
(γ) 2016/09/10(土) 11:32
γさん 返信有難う御座います >コントロールの「オブジェクトの位置関係」プロパティ とは、 ボタンを右クリック メニューの"コントロールの書式設定(F)... をクリック ダイアログのプロパティ タブをクリックして 出てくる部分でしょうか?
"セルに合わせて移動やサイズ変更をしない(D)"を実行したところ たしかにボタンは潰れなくなりますが、列非表示時に隠れてくれません
要望としては 列非表示時には隠れてほしい 列再表示時には復活してほしい 列非表示のままブックを閉じて、再び開き、再表示時には復活してほしい です
わがままでしょうか?。。
(感Feel) 2016/09/10(土) 12:06
???さん 返信有難う御座います 拡張子.xlsx .xlsm 両方とも同じ結果です 勤め先のPCを最近エクセルを2007から2010に変えてからの現象です 自宅にあるPCのエクセル2013ではこの様な事は無いので 仕様なのかと諦めかけています
ちなみにフォームボタンではなく、activeXのボタンで同様の事を行うと ボタンは潰れるのではなく、全く見えなくなってしまいました (感Feel) 2016/09/13(火) 15:32
2010では、隠れるところにボタンを置くな、という事ですかねぇ。 または、マクロでも使って、ボタンサイズを復元してやるしかないのではないかと思います。
(???) 2016/09/13(火) 15:50
>隠れるところにボタンを置くな メニュー(CommandBar、アドインタブもしくはセル右クリック)とかリボンのボタンにするとか も検討しても良いかも。
(とおりすがり) 2016/09/13(火) 19:00
???さん 再現までして頂き有難う御座います ボタンサイズを復元するとの発想が無かったので やってみようと思い マクロ記録で既にあるボタンの大きさをいじってみました 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
???さん 有難う御座います おかげで目的の事が出来そうです まだテスト用ブックの段階ですが、教わった内容から下記の様なマクロとしました
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.