メインコンテンツへスキップ

チェックボックスが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 日間は制限なしで無料でお試しいただけます。 ダウンロード中!

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

人気の機能: 重複を検索、強調表示、または識別する   |  空白行を削除する   |  データを失わずに列またはセルを結合する   |   数式なしのラウンド ...
スーパールックアップ: 複数の基準の VLookup    複数の値の VLookup  |   複数のシートにわたる VLookup   |   ファジールックアップ ....
詳細ドロップダウン リスト: ドロップダウンリストを素早く作成する   |  依存関係のドロップダウン リスト   |  複数選択のドロップダウンリスト ....
列マネージャー: 特定の数の列を追加する  |  列の移動  |  Toggle 非表示列の表示ステータス  |  範囲と列の比較 ...
注目の機能: グリッドフォーカス   |  デザインビュー   |   ビッグフォーミュラバー    ワークブックとシートマネージャー   |  リソースライブラリ (自動テキスト)   |  日付ピッカー   |  ワークシートを組み合わせる   |  セルの暗号化/復号化    リストごとにメールを送信する   |  スーパーフィルター   |   特殊フィルター (太字/斜体/取り消し線をフィルター...) ...
上位 15 のツールセット12 テキスト 工具 (テキストを追加, 文字を削除する、...)   |   50+ チャート 種類 (ガントチャート、...)   |   40+ 実用的 (誕生日に基づいて年齢を計算する、...)   |   19 挿入 工具 (QRコードを挿入, パスから画像を挿入、...)   |   12 変換 工具 (数字から言葉へ, 通貨の換算、...)   |   7 マージ&スプリット 工具 (高度な結合行, 分割セル、...)   |   ... もっと

Kutools for Excel で Excel スキルを強化し、これまでにない効率を体験してください。 Kutools for Excelは、生産性を向上させ、時間を節約するための300以上の高度な機能を提供します。  最も必要な機能を入手するにはここをクリックしてください...

kteタブ201905


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

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
Comments (0)
No ratings yet. Be the first to rate!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations