Como desmarcar outra caixa de seleção quando uma caixa de seleção é marcada no Excel?
Em muitos cenários práticos, como gerenciar uma longa lista de compras no Excel, você pode encontrar situações em que deseja garantir que apenas uma opção possa ser selecionada dentro de uma categoria ou grupo específico. Por exemplo, se certas categorias excederem o orçamento definido, pode ser necessário reselecionar itens para que apenas um permaneça marcado em cada grupo. Gerenciar manualmente caixas de seleção em grandes listas pode ser ineficiente e propenso a erros, especialmente à medida que o número de categorias aumenta. Para simplificar esse processo e reduzir erros, você pode configurar o Excel para que, ao marcar uma nova caixa de seleção dentro de um grupo, a anteriormente selecionada seja automaticamente desmarcada, garantindo apenas uma seleção por categoria a qualquer momento. Este artigo fornece um guia passo a passo sobre como alcançar isso, tornando seu fluxo de trabalho mais eficiente e confiável.
➤ Desmarque outra caixa de seleção quando uma nova caixa de seleção for marcada com código VBA
Desmarque outra caixa de seleção quando uma nova caixa de seleção for marcada com código VBA
Para ilustrar o processo, considere uma situação como mostrado no vídeo acima. Você tem dez caixas de seleção rotuladas de CheckBox1 a CheckBox10, organizadas em três grupos representando diferentes categorias de compra.
✅ Estrutura do grupo:
- Grupo 1: CheckBox1, CheckBox2, CheckBox3
- Grupo 2: CheckBox4, CheckBox5, CheckBox6, CheckBox7
- Grupo 3: CheckBox8, CheckBox9, CheckBox10
Dentro de cada grupo, apenas uma caixa de seleção deve ser selecionada por vez. Quando uma nova caixa de seleção é marcada, as outras do mesmo grupo são automaticamente desmarcadas – semelhante ao comportamento dos botões de rádio, mas usando caixas de seleção.
🧩 Passos para aplicar a solução VBA:
- Abrir o Editor de VBA: Clique com o botão direito na aba da planilha onde as caixas de seleção estão colocadas, depois escolha Ver Código.
- Cole o seguinte código na janela de código da planilha:
- Feche o Editor de VBA (Alt + Q) e retorne ao Excel para testar as caixas de seleção.

Dim xBol As Boolean
'Updated by Extendoffice
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 xAllArr, xArrItem
Dim xI, xJ
If Not xBol Then Exit Function
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
📌 Notas Importantes:
- Certifique-se de que os nomes das propriedades das caixas de seleção (não rótulos) correspondam exatamente aos nomes no código.
- Os agrupamentos são definidos na linha da matriz:
xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10")
- Este VBA só funciona com controles ActiveX, não com Controles de Formulário.
- As macros devem estar habilitadas para que essa automação funcione.
📺 Demonstração:
🔍 Dicas de Solução de Problemas:
- Verifique se não há nomes duplicados de caixas de seleção.
- Certifique-se de que todas as caixas de seleção sejam Controles ActiveX.
- Cada procedimento de caixa de seleção deve chamar corretamente
SetCheckBoxes
. - Cenários entre planilhas exigem adaptação via módulos de classe ou controle centralizado.
💡 Solução Alternativa: Você pode usar Botões de Opção dos Controles de Formulário para obter um comportamento de seleção única embutido. No entanto, para layouts avançados e controle lógico, VBA + Caixas de Seleção é mais flexível.
✨ Dica: Ferramentas como Kutools para Excel oferecem gerenciamento de caixas de seleção baseado em GUI para uma configuração mais fácil sem codificação.
Demonstração: Desmarque outra caixa de seleção quando uma caixa de seleção for marcada no Excel
Melhores Ferramentas de Produtividade para Office
Impulsione suas habilidades no Excel com Kutools para Excel e experimente uma eficiência incomparável. Kutools para Excel oferece mais de300 recursos avançados para aumentar a produtividade e economizar tempo. Clique aqui para acessar o recurso que você mais precisa...
Office Tab traz interface com abas para o Office e facilita muito seu trabalho
- Habilite edição e leitura por abas no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie múltiplos documentos em novas abas de uma mesma janela, em vez de em novas janelas.
- Aumente sua produtividade em50% e economize centenas de cliques todos os dias!
Todos os complementos Kutools. Um instalador
O pacote Kutools for Office reúne complementos para Excel, Word, Outlook & PowerPoint, além do Office Tab Pro, sendo ideal para equipes que trabalham em vários aplicativos do Office.





- Pacote tudo-em-um — complementos para Excel, Word, Outlook & PowerPoint + Office Tab Pro
- Um instalador, uma licença — configuração em minutos (pronto para MSI)
- Trabalhe melhor em conjunto — produtividade otimizada entre os aplicativos do Office
- Avaliação completa por30 dias — sem registro e sem cartão de crédito
- Melhor custo-benefício — economize comparado à compra individual de add-ins