• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロを使って一度に複数チェックしたい)

マクロを使って一度に複数チェックする方法

このQ&Aのポイント
  • EXCEL2000でマクロを使って、ボタンを押し一度に複数のチェックボックスにチェックをつける方法を教えてください。
  • ボタンをクリックするとチェックボックスがチェックされるのではなく、押すボタンによってチェックボックスの組み合わせが決まっている場合にチェックする方法が知りたいです。
  • 例えば、チェックボックスが1から10あるとします。Aボタンを押すと、1と3と5がチェックされ、Bボタンを押すと、2と4と6がチェックされるような方法です。

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

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

チェックボックスは二種類ありますから、どちらと書かれていないので、二種類出しておきます。なるべく、Sheetモジュールをお使いください。 プロシージャ名は、適宜、換えてください。当然ですから、並びと、Index は、一致させてくださいね。本来、Form側のようにそれぞれのコントロールにコレクションがあると、Index を使ったほうが楽ですが、OLEObjectのほうは、種類がいくつもあるので、名前のほうが安全です。 '<シートモジュール> 'コントロールツール側 Sub ToolButton_Click()  Dim i As Integer, j As Variant  With Sheet1  For i = 1 To 4   .OLEObjects("CheckBox" & i).Object.Value = False  Next i  For Each j In Array(1, 3, 5)   .OLEObjects("CheckBox" & j).Object.Value = True  Next j  End With End Sub 'フォームツール側 Sub FormButton_Click()  Dim i As Variant, Chkbtn As Object  With Sheet1  For Each Chkbtn In .CheckBoxes   Chkbtn.Value = False  Next Chkbtn  For Each i In Array(1, 3, 5)   .CheckBoxes(i).Value = True  Next i  End With End Sub 'フォームツール側 '(これは失敗しやすいです。理由は名前は変わることがあるから) Sub FormButton2_Click()  Dim i As Variant, Chkbtn As Object  With Sheet1  For Each Chkbtn In .CheckBoxes   Chkbtn.Value = False  Next Chkbtn  For Each i In Array(2, 4, 6)    .CheckBoxes("Check Box " & i).Value = True  Next i  End With End Sub 後、Arrayの値を、サブルーチンの引数にすれば便利です。上記のコードをサブルーチンにしてしまいます。そうすれば、似たような種類のコードを何度も書かずにすみます。

fusigiko
質問者

お礼

チェックボックスは二種類についての記述がなく、質問内容が中途半端ですみませんでした。 チェックボックスは、フォームツール側です。 教えて頂いたとおりに作ると、うまくできました! とても困っていましたので本当に助かりました。 ありがとうございました。

その他の回答 (2)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

チェックONだけで良いなら Private Sub CommandButton1_Click()   CheckBox1.Value = True   CheckBox3.Value = True   CheckBox5.Value = True End Sub

fusigiko
質問者

お礼

早速の回答ありがとうございました。 試してみたところ、なにやらエラーが出たのですが 私の操作の問題と思います。 今回の質問は解決しました! ありがとうございました。

  • 6dou_rinne
  • ベストアンサー率25% (1361/5264)
回答No.1

Private Sub CommandButtonA_Click() CheckBox1.value = true CheckBox3.value = true CheckBox5.value = true End Sub 以下、同様に... というのでは?

fusigiko
質問者

お礼

早速の回答ありがとうございました。 試してみたのですが、何やらエラーが・・・ 恐らく私の操作が悪かったのだと思います。 今回の質問は解決しました。 ありがとうございました。

関連するQ&A