2016-09-16 8 views
0

シートに4つのフォームコントロールオプションボタンがあります。 4つのオプションボタンがすべてチェックされていないと、印刷機能の前にハードストップを設定しようとしています。 空白のままにしてボタンに何も表示されていない場合は、すべてのチェックボックス(フォームのコントロールではなくシェイプを使用)を要求することに成功しました。シート上のすべてのオプションボタンがチェックされていないかどうかを確認します

If ActiveSheet.OptionButtons("button3") = Unchecked _ 
And ActiveSheet.OptionButtons("button20") = Unchecked _ 
And ActiveSheet.OptionButtons("button45") = Unchecked _ 
And ActiveSheet.OptionButtons("buttonEpic") = Unchecked Then 
MsgBox "Missing" 
Cancel = True 
End If 
End Sub 

私も= False.value = falseを試してみました。すべてのボタンは現在チェックされていませんが、メッセージボックスやハードストップを促すメッセージは表示されません。 助けてくれてありがとう!

+0

たぶん、[この](http://stackoverflow.com/a/30905789/6352151)は、オプションボタンがチェックされている場合、 '.Value'コメント用= 1人の –

+0

を助けることができます。私は考えていないフォームコントロールを識別するVBAに問題はありません。私は、コードでボタンをチェックしたり、チェックを外したりすることができます。また、すべてのボタンがチェックされていなければプロンプトを表示することもできます。 –

+0

おかげだろうあなた – Awill

答えて

0

私はワークシート上のチェックされたオプションボタンを識別することができますが、チェックされていない場合は確認できないので、非常に簡単な回避策です。私は、4つのボタンのうちの1つがチェックされているかどうかを確認し、そうであれば何もしないで、偽であればキャンセルします。

Private Sub Workbook_BeforePrint (Cancel as Boolean) 

With ActiveSheet 
If .Optionbuttons ("button1").Value = Checked _ 
Or .Optionbuttons ("button2").Value = Checked _ 
Or .Optionbuttons ("button3").Value = Checked Then 
Exit Sub 
Else: Msgbox "Please select an option" 
Cancel = True 
End If 
End With 
End Sub 
関連する問題