• ベストアンサー

<EXCEL> セルが非表示になったらチェックボックスも非表示にする方法

VBAマクロなどで、ある条件のとき特定のセルを非表示にします。その際、セル上に貼り付けてあるチェックボックスも一緒に非表示にしたいと思ってます。 現状ではセルだけを非表示(高さを0にする)処理をしているのでチェックボックスはそのまま残ってしまい、表示になった箇所でチェックボックスが折り重なるように表示されて見苦しいのです。 自分で考えた場合、対策としてはVBAマクロでセルを非表示にする際にするしかない気がするのですが、他に良い方法はあるでしょうか? また、VBAマクロで以外にあるセルが非表示になった場合にそのセル上に貼り付けたチェックボックスなどの部品を非表示にする方法はあるでしょうか? 部品はコントロールを使ってます。(フォームではありません) ご教示願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

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

Yupa3
質問者

お礼

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

その他の回答 (2)

noname#123709
noname#123709
回答No.3

該当セルの・・ということなら各チェックボックスの名前をセルのROWに 合せて、変数を使って処理してはどうでしょうか? ActiveSheet.Shapes("CheckBox" & i).Visible = False

Yupa3
質問者

お礼

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

  • masa_019
  • ベストアンサー率61% (121/197)
回答No.2

デザインモードにしてチェックボックスを選択した状態で、 プロパティウインドウを表示させると Placementというプロパティがあります。 そのプロパティの設定値を1にしてみてはどうでしょう?

Yupa3
質問者

補足

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