戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
チェックボックスについて

    [189469] チェックボックスについて-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ やはぎ -(2019/06/09(06:20))
    □U R L/

      Excelのチェックボックスについて

      Excel2016をつかっています

      シートにチェックボックスがあります
      チェックボックスがあるセルの範囲は
      不定です

      チェックを入れて解除する際に、パスワード入力をしない限りチェックを解除できないようにしたいのです

      ご教示ください





      ++++++++++++++++++++
      OS      ⇒OTHER
      Version⇒OTHER
      ++++++++++++++++++++




    [189470] Re[1]: チェックボックスについて-

    記事引用/メール受信=OFF■

    □投稿者/ カリーニン -(2019/06/09(09:12))
    □U R L/

      チェックを入れるときはどうするのですか?
      パスワードを要求する?

      一つ一つのチェックボックスにパスワードを
      要求し、間違っていたらチェックを元に戻す、
      というコードを入れるか、グラスモジュール
      を使う、あるいは、呼び出すコードを一つに
      し、Aqlication.Callerで制御する、位でしょうか?
      ※スマホから書き込んでますので
      誤字脱字、読みづらい等ありましたらすみません




    [189471] Re[2]: チェックボックスについて-

    記事引用/メール受信=OFF■

    □投稿者/ やはぎ -(2019/06/09(09:48))
    □U R L/

      カリーニン様

      ありがとうございます

      チェックを入れるときは、特に制御しません

      チェックを入れて、解除するときに、パスワードを入力して解除できるようにしたいです




    [189479] Re[3]: チェックボックスについて-

    記事引用/メール受信=OFF■

    □投稿者/ カリーニン -(2019/06/10(08:18))
    □U R L/

      チェックボックスはフォームコントロールでしょうか?
      ActiveXコントロールでしょうか?




    [189490] Re[4]: チェックボックスについて-

    記事引用/メール受信=OFF■

    □投稿者/ やはぎ -(2019/06/10(11:17))
    □U R L/

      カリーニン様

      フォームコントロールのチェックボックスになります




    [189500] Re[5]: チェックボックスについて-

    記事引用/メール受信=OFF■

    □投稿者/ カリーニン -(2019/06/10(20:06))
    □U R L/
      フォームコントロールのチェックボックスでしたら、↓のようにInputBoxの戻り値で判定するのが
      手っ取り場合です。
      
      ※VBEでコードを見られたら元も子もないので、↓を参考にロックをしておいてください。
      
      ht tps://www.relief.jp/docs/017816.html
      
      ただし、↑でも触れられてますが、VBAプロジェクトのロックを解除する方法も出回ってますので
      万全ではないことはご承知おきください。
      
      Sub test()
       Dim inppw As Variant
       Dim mypw As String
        mypw = "20190610abc" 'チェックボックスをオフにするためのパスワード
        If ActiveSheet.Shapes(Application.Caller).ControlFormat.Value = xlOff Then ’呼び出されたチェックボックスの値が「オフ」だったら
          inppw = Application.InputBox("パスワードを入力してください", "パスワード入力", "", Type:=2) 'パスワードを入力させるInputBox
          If inppw = "" Or inppw = False Then 'InputBoxがブランク、あるいはキャンセルされたら
             ActiveSheet.Shapes(Application.Caller).ControlFormat.Value = xlOn
             MsgBox "ブランク、あるいはキャンセル"
             Exit Sub
          ElseIf inppw <> mypw Then 'InputBoxで入力したパスワードが指定のものと違っていたら
             ActiveSheet.Shapes(Application.Caller).ControlFormat.Value = xlOn
             MsgBox "パスワード間違い"
             Exit Sub
          Else
             'InputBoxで入力したパスワードが指定のものと同じだったら
             MsgBox "正解"
          End If
        End If
      End Sub


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [189506] Re[6]: チェックボックスについて-

    記事引用/メール受信=OFF■

    □投稿者/ やはぎ -(2019/06/11(13:32))
    □U R L/

      カリーニン様
      ありがとうございます

      実行したのですが、、指定した名前のアイテムが見つかりませんと、表示されてしまいます
      最初のif文で止まります
      また、フォームコントロールでもアクティブXでも
      同様です







    [189507] Re[7]: チェックボックスについて-

    記事引用/メール受信=OFF■

    □投稿者/ カリーニン -(2019/06/11(13:37))
    □U R L/

      チェックボックスにマクロの登録しましたか?

      あと、このコードはフォームコントロール
      のチェックボックス向けに作ってあります。

      ActiveXでしたら、別の方法になります。




    [189508] Re[8]: チェックボックスについて-

    記事引用/メール受信=OFF■

    □投稿者/ やはぎ -(2019/06/11(13:54))
    □U R L/

      ありがとうございました
      私の勘違いでした

      失礼しました

      チェックボックスが100以上あるのですが、
      全てのチェックボックスにコード登録しないと
      いけないのでしょうか




    [189509] Re[9]: チェックボックスについて-

    記事引用/メール受信=OFF■

    □投稿者/ カリーニン -(2019/06/11(14:15))
    □U R L/
      ActiveXコントロールならクラスを使うところですが、フォームコントロールのチェックボックス
      でしたらこういう方法があります。遺産を活用してます。
      
      Sub chkonaction()
       Dim sh As Object
        For Each sh In ActiveSheet.CheckBoxes 'アクティブシートの全てのフォームコントロールのチェックボックスに対して処理
          sh.OnAction = "test" '登録するマクロ名
        Next sh
      End Sub


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [189510] Re[10]: チェックボックスについて-

    記事引用/メール受信=OFF■

    □投稿者/ カリーニン -(2019/06/11(14:52))
    □U R L/

      参考までに、

      >ActiveXコントロールならクラスを使うところですが、フォームコントロールのチェックボックス
      >でしたらこういう方法があります。

      の参考HPです。
      興味があったら勉強してみてください。

      ht tps://blog.goo.ne.jp/pc_college/e/9ca2b0c452e9e691cad1dbd2783868cf




    [189511] Re[11]: チェックボックスについて-

    記事引用/メール受信=OFF■

    □投稿者/ カリーニン -(2019/06/11(18:10))
    □U R L/
      ActiveXコントロールのチェックボックスの場合のコードは
      ↓のようになります。
      
      Private Sub CheckBox1_Click()
       Dim inppw As Variant
       Dim mypw As String
        mypw = "20190610abc" 'チェックボックスをオフにするためのパスワード
        If CheckBox1.Value = False Then
          inppw = Application.InputBox("パスワードを入力してください", "パスワード入力", "", Type:=2) 'パスワードを入力させるInputBox
          If inppw = "" Or inppw = False Then 'InputBoxがブランク、あるいはキャンセルされたら
             CheckBox1.Value = True
             MsgBox "ブランク、あるいはキャンセル"
             Exit Sub
          ElseIf inppw <> mypw Then 'InputBoxで入力したパスワードが指定のものと違っていたら
            CheckBox1.Value = True
             MsgBox "パスワード間違い"
             Exit Sub
          Else
             'InputBoxで入力したパスワードが指定のものと同じだったら
             MsgBox "正解"
          End If
        End If
      End Sub
      
      これをワークシート上にコピペして、オートフィルすれば、
      
      Private Sub CheckBox1_Click()
      〜
      End Sub
      
      Private Sub CheckBox2_Click()
      〜
      End Sub
      
      というように自動的にコードを生成できます。
      
      ただし、この方法だと
      
      >    inppw = Application.InputBox("パスワードを入力してください", "パスワード入力", "", Type:=2) 'パスワードを入力させるInputBox
      
      が
      
          inppw = Application.InputBox("パスワードを入力してください", "パスワード入力", "", Type:=3) 'パスワードを入力させるInputBox
      
          inppw = Application.InputBox("パスワードを入力してください", "パスワード入力", "", Type:=4) 'パスワードを入力させるInputBox
      
      と変わっていきますし、パスワード内の数値も変わっていきます。数値とみなせる部分はオートフィルによって増えていきます。
      
      こういう変わってほしくない部分は、あらかじめ他の文字列に変えておき、後で元の文字列に置換、という方法があります。
      
      これがクラスモジュールを使わない方法です。


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [189512] Re[12]: チェックボックスについて-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ やはぎ -(2019/06/11(19:22))
    □U R L/

      カリーニン様

      ありがとうございました

      また、宜しくお願い申し上げます



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G