• ベストアンサー

エクセル チェックボックスのチェックの判定の書き方

エクセル内にチェックボックス(CheckBox1)を追加したのですが、セルの式にそのチェックが入っているかどうかをifを使って書きたいのですが、どのように書いたらよいのでしょうか。(コントロールツールボックスの書き方)ちなみに式を書くセルのシートとチェックボックスがあるシート(シート名:設定)は別になります。 現在チェックボックスのプログラムにセル内容を変えるように書いているのですが、保護するとだめなのでお願いします。

  • opoon
  • お礼率71% (27/38)

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 >セルの式にそのチェックが入っているかどうかをifを使って書きたいのですが、 CheckBo1 のプロパティの LinkedCell を別にシートに置いて、それで判定すればよいのではありませんか? A1: TRUE/ FALSE =IF(A1,"○","×") で取れます。 >現在チェックボックスのプログラムにセル内容を変えるように書いているのですが、保護するとだめ 何がだめなのか、ご質問内容がいまひとつ分からないです。保護したシートに出さなければ、出来ると思います。 それとも、 ThisWorkbook などで、開いたときに、UserInterFaceOnly を入れるとか? Private Sub Workbook_Open()  With Worksheets("設定")   .Unprotect Password:="xxx"   .Protect Password:="xxx", UserInterfaceOnly:=True  End With End Sub 設定シート(シートモジュール) Private Sub CheckBox1_Click()  Range("A1").Value = CheckBox1.Value End Sub

opoon
質問者

お礼

ご回答有難うございます。 説明下手でお手数おかけします。 恥ずかしながらLinkedCellの存在を始めて知りました、有難うございます。 全てのセルを保護したかったのですが、あきらめて離れた場所にLinkedCell設定したいと思います。 下のプログラムは私には分かりませんでした、有難うございました。

その他の回答 (1)

回答No.1

sheet1のCheckBox1を判定する場合 If Sheets("Sheet1").CheckBox1.Value = True Then MsgBox "オン" Else MsgBox "オフ" End If >現在チェックボックスのプログラムにセル内容を変えるように書いているのですが、保護するとだめなので・・・ 他のシートからでも、保護されたシートは書き換えられないので、一時的にプロテクトを解除します。 Sheets("Sheet1").Unprotect 'プロテクト解除 Sheets("Sheet1").Cells(1, 1) = 1 '書き換え Sheets("Sheet1").Protect '再プロテクト パスワードが設定されている場合は、 Sheets("Sheet1").Unprotect パスワード Sheets("Sheet1").Cells(1, 1) = 1 '書き換え Sheets("Sheet1").Protect パスワード

opoon
質問者

お礼

ご回答有難うございます。 プロテクト解除の方法があるのですね、勉強になりました。 有難うございます。

関連するQ&A

  • エクセルのチェックボックスの保護解除についてお願いします。

    エクセルのコントロールツールボックスから作る チェックボックスですが、ツールボックスを開いて、コントロールの書式設定を開いて、保護を開いて、ロックを外したのですが、シートに保護をかけると ロックがかかった状態になっていて チェックを入れることが出来ません。どうしたら 良いのでしょうか。どなたか教えて下さい。お願いします。

  • エクセルのチェックボックスのことで

    初歩的なことですが教えてください。エクセル2003でチェックボックスを作成しました。 配置してあるセルの書式設定の保護からロックをはずしシート保護をかけるのですが、操作すると保護されています。のエラーとなってしまいます。  グループ化してオブジェクトにしてロックをはずしてもエラーとなってしまいます。 チェックボックスの場合、シート保護との関係で何かありますか? どなたかよろしくお願いいたします。 ちなみにチェックボックスの範囲が隣のセルにまたがっていることも想定しましたが違いました。  よろしくお願いいたします。

  • Excelで、チェックボックスを使用したセルへの出力をしたいのですが、

    Excelで、チェックボックスを使用したセルへの出力をしたいのですが、助けていただけないでしょうか。 [コントロールツールボックス]-[コントロールの選択]-[MSForms 2.0 Frame]を選択し、 作成したフレーム上の[フレームオブジェクト]でチェックボックスを作成し使用しています。 [フォーム]で作成できるチェックボックスではサイズ変更ができないため、こちらを使用しています。 チェックボックスの[プロパティ]-[ControlSource]でセルを設定すれば、 指定先のセルへ"TRUE""FALSE"を出力するすることができるのですが、こちらを設定していると、 エクセル内の小窓でシートを閉じる時に、「問題が発生~エラーを送信しますか?」と100%表示されてしまいます。ですので、こちらの機能は使えません。 フレーム上で右クリック[コードの表示]で、以下のコードを書いてみましたが、 「実行時エラー"424" オブジェクトが必要です」と表示されてしまいます。 Private Sub CheckBox1_Click() If CheckBox1.Value Then Range("V18").Value = Range("V18").Value + 5 Else Range("V18").Value = Range("V18").Value - 5 End If End Sub 何分、マクロに関して素人なものですから問題点がわかりません。 "TRUSE""FALSE"を表示させるだけでいいので、何か良い方法がありましたらご指導いただけないでしょうか。 強制終了の不具合は、フレームから作り直してみたり、シートごと作り直してみましたが、 [ControlSource]にセルを設定していると100%強制終了が起こることしかわかりませんでした。 何卒よろしくお願いいたします。

  • エクセルチェックボックス

    エクセルのコントロールボックスでチェックボックスを使用したいんですがうまく使えません ユーザーフォームは使用せず、セルに直接貼り付けを考えてます このチェックボックスは複数使用したいと思っています 具体的な例としてチェックを入れたらセルにリンクして数字を動かしたい チェックしたら1 はずしたら2を入れる IF関数との連結を考えています 当方の使用環境はWindows Vista , エクセル2007を使用しています よろしくお願いします

  • エクセルのチェックボックスについて

    エクセルのチェックボックスについて教えて下さい。 シート名が「東京」「名古屋」「大阪」とあります。 各シートのフォームは同じで、チェックボックスが同じセルで各々10個あります。 ここで、「東京」シートの一つのチェックボックスにチェックを入れると、「名古屋」「大阪」の一つのチェックボックスにチェックマークを 入るようにしたいのですが、可能でしょうか? 「名古屋」「大阪」シートに入る位置は「東京」と同じです。

  • チェックボックスの使い方

    チェックボックスの使い方 エクセルでの質問です ユーザーフォームにシート名を入れたチェックボックスが、6こ付いており チェックを入れたシートのみを印刷(コマンドボタンで実行)しようとしております 以下のコードを印刷のコマンドボタンに埋め込みました --------------------------------- Private Sub CommandButton1_Click() On Error GoTo HandleErr Dim i As Integer For i = 1 To Sheets.Count If Me.Controls("CheckBox" & i).Value Then Sheets(i).PrintOut End If Next i Exit Sub HandleErr: MsgBox "印刷シートが選択されていません" End Sub --------------------------------- (1)印刷が正常になされても”印刷シートが選択されていません” とメッセージボックスがでてしまいます チェックされていない場合はエラーメッセージを出しつつ、回避する方法を教えて下さい (2)各シート内の使用されている任意のセル範囲を印刷したいのですが、 どのようなコードをどの位置で使用すればよろしいでしょうか? 素人的な質問で申し訳ありません よろしくご回答願います

  • エクセル VBA チェックボックスについて

    よろしくお願い致します。 OS:XP エクセル2003 VBAのことは、まったくの初心者です。 質問なのですが、下記のようなチェックボックス7にチェックが入れば、チェックボックス8~11に自由にチェックが入れれるようになり、逆にチャックボックス7にチェックが入ってない場合は、チェックボックス8~11のチェックはクリアされ、チェックできないものを作りました。 ここから、チェックボックス7にチェック入れたあとは、必ずチェックボックス9~11のどれかにチェックが入っている状態(ラジオボタンのような)で、チェックボックス7にチェックが入ってなかったら、8~11のチェックがクリアで尚且つ、チェックができなくなるようにするにはどうすればよいでしょうか? よろしくお願い致します。 Private Sub CheckBox7_Click() If CheckBox7.Value = True Then CheckBox8.Enabled = True CheckBox9.Enabled = True CheckBox10.Enabled = True CheckBox11.Enabled = True Else CheckBox8.Value = False CheckBox9.Value = False CheckBox10.Value = False CheckBox11.Value = False CheckBox8.Enabled = False CheckBox9.Enabled = False CheckBox10.Enabled = False CheckBox11.Enabled = False End If End Sub

  • チェックボックスの判定

    VBAでチェックボックスが10個あったとして、チェックが付いているか確認したいのですが、 For i=0 to 9 if CheckBox & i =True then 処理 End if Next i と記述すると CheckBoxのところで「変数が定義されていません」というエラーメッセージが出ます。 このような判定はどうすれば良いでしょうか?

  • エクセルのチェックボックスを保護対象から外すには

    エクセルのシートにチェックボックスと文字列(□あいうえお)などが入ったものがあり、文字列は保護したいものの、チェックボックスそのものは保護対象外にしたいのですが、チェックボックスがあるセルを対象外に設定したつもりでもどうしても「保護されているため読み取り専用となります」となってしまいます。 どなたかチェックボックスに対する保護対象外のやり方をご存じでしたら教えてください!よろしくお願いします。

  • エクセル チェックボックスの解除について(VBA)

    YES/NOを入力させる為の下記のVBAにおいて、チェックボックス1をチェックすると、アの部分でチェックボックス2の解除を行う関係で?、シート上でチェックボックス2を操作していないのにもかかわらず、勝手にCheckBox2_Click()に入り、命令文イを実行してしまいます。 ただ単にSub CheckBox1_Click()のルーチンの最後までの処理で終わりたいのですが、どうしたらよいのでしょうか。 Private Sub CheckBox1_Click() If CheckBox1 = True Then Sheets("sheet1").Range("A1") = 1 Sheets("sheet1").Range("A2") = 0 CheckBox2 = False・・・ア Else Sheets("sheet1").Range("A1") = "" End If End Sub Private Sub CheckBox2_Click() If CheckBox2 = True Then Sheets("sheet1").Range("A1") = 0 Sheets("sheet1").Range("A2") = 1 CheckBox1 = False Else Sheets("sheet1").Range("A2") = ""・・・イ End If End Sub

専門家に質問してみよう