最新閲覧日:

チェックボックスにマクロを登録したのですが、
チェックボックス17のはずが エラーになってしまいます。
おそらく定義をしなくちゃいけないんだろうと思うんですけど、
定義の仕方がわかりません。
ご存知の方、教えてください。

A 回答 (2件)

If CheckBox17.Value = 1 Then を



If CheckBoxes("CheckBox17").Value = 1 Then

と変えてみてください。(これで動きました)私のExcelは2000ですが、チェックボックスを貼り付けると名前は『チェック 1』(VBA内ではCheck Box 1)とかになります。『CheckBox17』は後から付けた名前でしょうか。(Excel97はそうだったかもしれませんが)


別法として、チェックボックスを右クリック→コントロールの書式設定→コントロールタブで『リンクするセル』を登録します。これを例えばセルF5として、

If Range("F5") = True Then
(このコードはチェックボックスのあるシートのコードウインドウに書いた場合です)

としても同じ結果でしょう。これはチェックボックスの名前は関係なくなります。
リンクするセルについては、リンクするセルをチェックボックスが配置されているセルにして、チェックボックスを右クリック→コントロールの書式設定→色と線タブで塗りつぶしの色を自動にする方法もあります。
    • good
    • 0
この回答へのお礼

ありがとうございますっ
やってみますっ

お礼日時:2002/02/04 11:27

質問の内容がもう少し明確になれば考えることができますが・・・


(1)該当のソフトは何でしょうか(Excel?)
(2)そのソフトのバージョンは(97とか2000とか)
(3)チェックボックス17と書いてありますが、Excelだとすれば
   a.表示→ツールバー→フォームのチェックボックス
   b.表示→ツールバー→Visual Basicのコントロールツールボックスのチェックボックス
   のどちらでしょうか。
(4)『エラーになってしまいます』とありますが、
   a.マクロの登録がエラー
   b.登録後にマクロを実行したらエラー(マクロ内部でのエラー)
   のどちらでしょうか。
(5)上記(1)~(4)が明らかになっても、実際のマクロの内容が分からなければ
   答えようがないかもしれません。

間違いを承知で予測をすると、Excel97か2000あたりでフォームのチェックボックスを使っているのではないでしょうか。
これは数年前には使っていましたが、参照したりする時に面倒だった記憶があります。個人的にはフォームのコントロールは特別なことがなければ使わないようにしています。古いし、Helpでも調べにくいし解説書もあまりないように思います。
コントロールツールボックスの方が調べやすいし使用例もたくさん紹介されています。こちらなら質問のようなことは起きないかもしれません。

この回答への補足

状況としては、フォームのチェックボックスの戻り値が1の場合、あるシートを
表示するというマクロ(以下)
If CheckBox17.Value = 1 Then
Sheets("入力画面").Visible = True
Else
Sheets("入力画面").Visible = False
End If

エラー部は、CheckBox17.Valueです。
おそらくCheckBox17が悪いと思われます。
そのチェックボックスはCheckBox17であることは
違いないのですが、そのまま利用することはできない
ということでしょうか?

補足日時:2002/02/03 21:49
    • good
    • 0

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

このQ&Aを見た人が検索しているワード


人気Q&Aランキング

おすすめ情報

カテゴリ