dポイントプレゼントキャンペーン実施中!

VBAマクロなどで、ある条件のとき特定のセルを非表示にします。その際、セル上に貼り付けてあるチェックボックスも一緒に非表示にしたいと思ってます。

現状ではセルだけを非表示(高さを0にする)処理をしているのでチェックボックスはそのまま残ってしまい、表示になった箇所でチェックボックスが折り重なるように表示されて見苦しいのです。

自分で考えた場合、対策としてはVBAマクロでセルを非表示にする際にするしかない気がするのですが、他に良い方法はあるでしょうか?

また、VBAマクロで以外にあるセルが非表示になった場合にそのセル上に貼り付けたチェックボックスなどの部品を非表示にする方法はあるでしょうか?

部品はコントロールを使ってます。(フォームではありません)

ご教示願います。

A 回答 (3件)

セルを表示させたくない理由はわかりませんが、Visible 属性でシェイプの表示操作が可能です。



ActiveSheet.Shapes("CheckBox2").Visible = False
    • good
    • 5
この回答へのお礼

ありがとうございます。
やはりこの方向で対応することになるでしょうね。

お礼日時:2005/12/14 09:04

該当セルの・・ということなら各チェックボックスの名前をセルのROWに


合せて、変数を使って処理してはどうでしょうか?
ActiveSheet.Shapes("CheckBox" & i).Visible = False
    • good
    • 1
この回答へのお礼

VBAで組むならばこのような方法がベターでしょうね。ありがとうございました。

お礼日時:2005/12/14 09:30

デザインモードにしてチェックボックスを選択した状態で、


プロパティウインドウを表示させると
Placementというプロパティがあります。
そのプロパティの設定値を1にしてみてはどうでしょう?

この回答への補足

ご回答ありがとうございます。

おそらくその設定は「フォーム」のチェックボックスに対してしかできないと思われます。

その後自分でも調べてみたのですが、「フォーム」のチェックボックスであれば、左クリックして「コントロールの書式設
定」を選択→「プロパティ」タブを選択→「オブジェクトの位置関係」を「セル
に合わせて移動やサイズ変更をする」とすることで特にVBAで書かなくても背後のセルサイズ変更や非表示などに合わせてチェックボックス地震が非表示になることがわかりました。

場合によってはチェックボックスを全て「フォーム」に切り替えることも検討してみようと思います。

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

補足日時:2005/12/14 09:33
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A