Note: The other languages of the website are Google-translated. Back to English

チェックボックスがExcelでチェックされているときに別のチェックボックスをオフにする方法は?

下の gif に示すように、最終決定する必要がある購入リストがあるとします。 リストを確認しているときに、一部のカテゴリでチェックしたアイテムが予算を超えているため、再選択する必要があることがわかりました。 リストが長すぎるため、カテゴリで新しいチェックボックスがオンになったときに、元のチェックボックスを自動的にオフにするより効率的な方法が必要になりました。 このチュートリアルでは、この方法を順を追って説明し、実行に役立てます。

VBAコードで新しいチェックボックスがチェックされている場合、別のチェックボックスをオフにします


VBAコードで新しいチェックボックスがチェックされている場合、別のチェックボックスをオフにします

上記のデモに示すように、名前が付けられた XNUMX 個のチェックボックス チェックボックス1, チェックボックス2, チェックボックス3……、 チェックボックス10 は 3 つのグループに分けられ、表のさまざまなカテゴリに分類されます。

この例では、Checkbox1、2、3 が 4 つのグループに、Checkbox5、6、7、8 が 9,10 つのグループに、CheckboxXNUMX、XNUMX、XNUMX が同じグループに属しています。 各グループで、一度にチェックできるチェックボックスは XNUMX つだけです。 チェックボックスをオンにすると、別のチェックボックスが自動的にオフになります。

次に、次の VBA コードを適用してこの問題を解決する方法を見てみましょう。

1. シート タブを右クリックし、 コードを表示 コンテキストメニューから選択します。

2.開いた状態で アプリケーション向け Microsoft Visual Basic ウィンドウで、次の VBA コードを シート(コード) 窓。

VBAコード:新しいチェックボックスがチェックされているときに別のチェックボックスをオフにします

Dim xBol As Boolean
'Updated by Extendoffice 20220816
Private Sub CheckBox1_Change()
SetCheckBoxes "CheckBox1"
End Sub

Private Sub CheckBox2_Change()
SetCheckBoxes "CheckBox2"
End Sub

Private Sub CheckBox3_Change()
SetCheckBoxes "CheckBox3"
End Sub

Private Sub CheckBox4_Change()
SetCheckBoxes "CheckBox4"
End Sub

Private Sub CheckBox5_Change()
SetCheckBoxes "CheckBox5"
End Sub

Private Sub CheckBox6_Click()
SetCheckBoxes "CheckBox6"
End Sub

Private Sub CheckBox7_Click()
SetCheckBoxes "CheckBox7"
End Sub
Private Sub CheckBox8_Click()
SetCheckBoxes "CheckBox8"
End Sub
Private Sub CheckBox9_Click()
SetCheckBoxes "CheckBox9"
End Sub
Private Sub CheckBox10_Click()
SetCheckBoxes "CheckBox10"
End Sub

Private Function SetCheckBoxes(mCheckBoxName As String)
Dim x As Long
Dim xAllArr
Dim xArrItem
Dim xI, xJ
If Not xBol Then Exit Function
'In the following line, the checkboxes enclosed in double quotes belong to the same group, and each checkbox is separated by a comma. To add more checkbox groups, please enclose the checkboxes in new double quotes.
xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10")
For xI = LBound(xAllArr) To UBound(xAllArr)
If InStr(xAllArr(xI), mCheckBoxName) > 0 Then
xBol = False
xArrItem = Split(xAllArr(xI), ",")
For xJ = LBound(xArrItem) To UBound(xArrItem)
If xArrItem(xJ) <> mCheckBoxName Then
Me.OLEObjects(xArrItem(xJ)).Object.Value = False
End If
Next
End If
Next
xBol = True
End Function

Private Sub Worksheet_Activate()
xBol = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
xBol = True
End Sub

免責事項:

1) コードでは、 チェックボックス1、チェックボックス2、 ···、 チェックボックス10 チェックボックスの名前です。
2) 次の行では、二重引用符で囲まれたチェックボックスは同じグループに属し、各チェックボックスはコンマで区切られています。 さらにチェックボックス グループを追加するには、チェックボックスを新しい二重引用符で囲んでください。
xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10")
3) チェックボックスは ActiveXコントロール チェックボックス

3。 プレス 他の + Q を閉じるためのキー アプリケーション向け Microsoft Visual Basic 窓。

次に、グループ内の新しいチェックボックスをオンにすると、下の gif に示すように、元のチェックボックスが自動的にオフになります。


デモ: Excel でチェックボックスがオンになっているときに、別のチェックボックスをオフにします

  Kutools for Excel Microsoft Excel の 300 以上の強力な機能が含まれています。 制限なしで無料で試すことができます 30 日。 ダウンロード中!


最高のオフィス生産性ツール

Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます

  • 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
  • スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
  • セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
  • [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
  • 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
  • テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
  • スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
  • ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
  • 300 以上の強力な機能. Office / Excel 2007-2021 および 365 をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 フル機能の 30 日間無料トライアル。 60日間の返金保証。
kteタブ201905

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
officetab下部
コメントを並べ替える
コメント (0)
まだ評価はありません。 最初に評価してください!
ここにはまだコメントが投稿されていません
あなたのコメントを残す
ゲストとして投稿
×
この投稿を評価:
0   文字
推奨される場所

フォローする

著作権©の2009 - WWW。extendoffice.com。 | | 全著作権所有。 搭載 ExtendOffice。 | サイトマップ
MicrosoftおよびOfficeのロゴは、米国MicrosoftCorporationの米国およびその他の国における商標または登録商標です。
SectigoSSLで保護