- ベストアンサー
excelの機能について
いつも大変お世話になっております。 今回の質問は、excel2003の機能について質問させていただきます。 excelを開き、表示⇒ツールバー⇒フォームを選択し、チェックボックスをセル上に書き、このチェックボックスを利用しONした場合にセル上の文字の色を変えることには成功しました。 ここまで出来るまでにも時間がかかったのですが、出来ればチェックボックスがONになった時に必要な部分だけのセルを消す事が出来ないものかと・・・ 今回の質問のような機能の設定方法をご存知のかたがおられましたら教えてください。 宜しくお願い申し上げます。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
>回答番号:No.2 この回答への補足 「マクロの記録」という素晴らしい機能がExcelにはついています。 ここら辺から馴染んでいけばよいと思います。 「エクセルVBA」でマクロの作成 http://kiyopon.sakura.ne.jp/vba/index.htm サンプルマクロです。 チェックボックスのON/OFFで、行1~5を表示/非表示します。 チェックボックスに「マクロの登録」してください。 当然チェックボックスは、6行目以下になければいけません。 Sub test1() Dim cb As Object Set cb = ActiveSheet.Shapes(Application.Caller) With cb If .DrawingObject.Value = 1 Then Rows("1:5").Hidden = True Else Rows("1:5").Hidden = False End If End With End Sub
その他の回答 (7)
- xls88
- ベストアンサー率56% (669/1189)
>回答番号:No.7 この回答への補足 ということは、コントロールツールボックスのチェックボックスです。 質問文では ”表示⇒ツールバー⇒フォームを選択し” と書かれています。 従って、先に提示したコードはフォームのチェックボックス用です。 「マクロの登録」して使います。 コントロールツールボックスのチェックボックスの場合は下記にしてみてください。 Private Sub CheckBox1_Click() If CheckBox1.Value = True Then Rows("1:5").Hidden = True Else Rows("1:5").Hidden = False End If End Sub コードの塊をプロシージャといいます。 Private Sub CheckBox1_Click() 'プロシージャの始まり ・処理 End Sub 'プロシージャの終わり プロシージャの中にプロシージャを入れ子にはできません。 Private Sub CheckBox1_Click() 'プロシージャの始まり Sub test1() 'プロシージャの始まり ・処理 End Sub 'プロシージャの終わり End Sub 'プロシージャの終わり
お礼
xls88様 回答有難う御座いました。 マクロと聞いてVBAなのかと勘違いしていました・・・申訳ありませんでした。 無事セルを非表示にする事ができました。 この度は、何度も質問に答えていただき誠に有難う御座いました。 これから少しずつVBやVBAについても学んでいきたいと思います。 大変勉強になりました。有難う御座いました。
- xls88
- ベストアンサー率56% (669/1189)
では、余分なマクロ名が上の方にある、ということはないでしょうか? それでもだめなら、 こちらの回答欄からコードをコピーし、新規の標準モジュールに張り付けて確認してみてください。
補足
xls88様 下記をそのまま貼り付けましたがだめでした。 Sub test1() Dim cb As Object Set cb = ActiveSheet.Shapes(Application.Caller) With cb If .DrawingObject.Value = 1 Then Rows("1:5").Hidden = True Else Rows("1:5").Hidden = False End If End With End Sub 最初にチェックボックスを作成し、ダブルクリックすると下記が表示されますが、上記のプログラムは、Private Sub CheckBox1_Click()の下から貼り付けるのか、それともPrivate Sub CheckBox1_Click()を省くのかどちらでしょうか?(今回どちらで試してもだめでした。) Private Sub CheckBox1_Click() End Sub その他注意点などありましたらお願いします。
- xls88
- ベストアンサー率56% (669/1189)
>回答番号:No.5 この回答への補足 コードの最下行に End Sub がありますか?
補足
xls88様 お世話になっております。 End Subあります。 その他注意する点などありますでしょうか? 宜しくお願いします。
- xls88
- ベストアンサー率56% (669/1189)
↓参考になるかもしれません。 Excel チェックボックスのコピー、チェックをONにすると対象セルの文字の色が変わる方法 http://oshiete1.goo.ne.jp/qa5180004.html
- ASIMOV
- ベストアンサー率41% (982/2351)
>一時的にセルを表示しないようにする と言うことは、チェックボックスのチェックを外したら元に戻すと言うことですか? >指定した範囲のセルを どうやって「指定」するのですか?
補足
ASIMOV様 チェックボックスのチェックを外したら元に戻します。 セルの指定は間違いでした。 行または列を丸ごと非表示にするというのが今回の目的です。 宜しくお願いします。
- xls88
- ベストアンサー率56% (669/1189)
>チェックボックスがON(TRUE)になった時、指定した範囲のセルを表示させない。 ”表示させない”の意味がよく分かりません。 セルその物を”非表示にする”という意味ですか? ということになると、行列単位になり、マクロを組むことになると思います。 入力内容が見えなければ良いのなら すでにやられている方法で、フォントをセルと同じ色にすればよいと思います。 ただし、そのセルを選択すると、数式バーに入力内容が表示されます。
補足
xls88様 補足させていただきます。 今回やりたいのは、行を非表示にすることです。 例として、セルA1からA5まで適当な文字が入力されていて、チェックボックスをONした時に1~5までの行を非表示にし、6から下の行が表示されている状態にする。 こうなるとマクロが必要になるんですか? マクロは良く聞きますが、一度も組んだ事がありません。 VBを数年前にちょっとかじっただけなのですが、素人にでも組めるもんなのでしょうか? 宜しくお願いします。
- ASIMOV
- ベストアンサー率41% (982/2351)
>必要な部分だけのセルを消す事が出来ないものかと・ 「消す」の意味ですが.. 1.表示を消す(色を白にするとか) 2.データーを消す(削除する) 3.セルそのものを削除する どれでしょう? また、「必要な部分」とは、セル番号で指定できるという事でしょうか?
補足
ASIMOV様 質問内容を補足させていただきます。 セルを消すという表現は正しくなかったです。 消すではなく一時的にセルを表示しないようにするというのが今回のやりたいことです。 チェックボックスがON(TRUE)になった時、指定した範囲のセルを表示させない。 この補足でわかりますでしょうか。 宜しくお願い申し上げます。
補足
xls88様 早速上記のプログラムで実行してみました。 実行したところ、「コンパイルエラー」 EndSubが必要です。というエラーが発生します。 ご教授いただけませんでしょうか。 宜しくお願い申し上げます。