質問: ### 実現したいこと 【要望】 エクセルでチェックボックスにチェックをつけたら、オブジェクトの丸が表示され、チェックをはずしたら、そのオブジェクトの丸が消える仕組みを作りたいのです。 VBAは初心者です。 流れ -- ``` メニュー「開発」 → コントロール「挿入」 → フォームコントロール「チェックボックス」で作成 □有休 というような表示を作ります。 このチェックボックスをポチっとすると、この有休を囲むオブジェクト !イメージ説明 こんな感じになるようにしたいのです。。。 ``` どのようなVBAを記載したらいいか、分かる方いらっしゃいますか?
回答: TeraTailは安易に実行コードのみを提供する場ではありません。 自力で作成したコードの提示もなく「わかる人教えてください」だけでは、丸投げの質問となってしまいます。 今回は上記の観点から正解ソースの提示は控えさせていただきますが、VBA初心者さんということですので開発までのアドバイスのみ記載させていただきます。 大まかな流れ チェックボックスをクリックするたびに実行されるマクロを作成し、そのマクロで丸の表示したり消したりします。 丸のオブジェクトは毎回位置を指定して作成/消去を行うのでは大変ですので、あらかじめ作成しておいて表示/非表示を切り替えることにします。 1.オブジェクトの準備 1シートにチェックボックスを配置します 2チェックボックスを囲む楕円シェイプを配置します (必要に応じて線の色や背景透過の設定も行ってください。) 2.VBAマクロの作成 1チェックボックスを右クリックし、「マクロの登録」を選択 2適当な名前(デフォルトではチェックボックス1_Click)を設定し、編集ボタンをクリック ⇒このマクロがチェックボックスをクリックした時に実行されます。 2.VBAコードの記述 作成したマクロにVBAコードを記述します。 1チェックボックスを取得 ``` Dim cbCheck as CheckBox Set cbCheck = Sheets("Sheet1").CheckBoxes(1) ``` 2楕円シェイプを取得 ``` Dim shpCircle as Shape Set shpCircle = Sheets("Sheet1").Shapes(2) ``` 3チェックボックスのチェック状態(cbCheck.Value)を調べて楕円シェイプの表示/非表示(shpCircle.Visible)を切り替える 以上のような流れで目的の動作が実現できると思います。 まずはうまくいかなくても実際に自分で作成してみましょう。 その途中でよくわからない部分などがでてきたら、またこちらで聞いていただければより具体的なアドバイスができると思います。 がんばってください。