コマンドボタンが、Shiftキーを押しながらクリックされたかどうかの判別は、標準の「CommandButton_Click」ではできません。左ボタンと右ボタンを判別したように、MouseDownイベントかMouseUpイベントを使います。ここでは、MouseUpイベントでやりましょう。
Private Sub CommandButton1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, _
ByVal X As Single, ByVal Y As Single)
End Sub
コマンドボタンがクリックされたとき、Sfhitキー・Ctrlキー・Altキーのいずれかが押されていたかどうかは、引数Shiftに数値が格納されます。
| 値 | 内容 |
|---|---|
| 1 | Shiftキーが押されました |
| 2 | Ctrlキーが押されました |
| 3 | Shiftキーと同時にCtrlキーが押されました |
| 4 | Altキーが押されました |
| 5 | Altキーと同時にShiftキーが押されました |
| 6 | Altキーと同時にCtrlキーが押されました |
| 7 | Altキー、Shiftキー、Ctrlキーの3つが同時に押されました |
なので、これを区別すれば、どのキーが押されていたかを判別できます。
Private Sub CommandButton1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, _
ByVal X As Single, ByVal Y As Single)
If Shift = 7 Then
MsgBox "隠し機能"
Else
MsgBox "通常機能"
End If
End Sub

Shift+Ctrl+Altを押しながら右クリックされたときだけ、管理者用の機能を実行するなどに便利です。
隠し機能的な話をしたので、ついでにもう少し。利用者には使って欲しくないけど、管理者がデバッグなどの目的で実行したいような機能は、上のように特別な方法で起動させるといいです。Shift+Ctrl+Alt+右クリックあたりは、まず普通のユーザーが普通に使うときは、誤って操作することもないでしょう。しかし、ものすごく好奇心の旺盛なユーザーだったり、信じられない"ウッカリ者"のユーザーだったら、つい間違えて実行してしまうかもしれません。そんなときは、次のようにする手もあります。
次のコードは、コマンドボタンを普通に左クリックしたときには"通常機能"と表示しますが、Shift+Ctrl+Altを押しながら、右ボタンで5回続けてクリックしたときだけ、パスワードの入力画面を表示します。
Private Sub CommandButton1_Click()
MsgBox "通常機能"
End Sub
Private Sub CommandButton1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, _
ByVal X As Single, ByVal Y As Single)
Static cnt As Long
If Shift = 7 And Button = 2 Then cnt = cnt + 1
If cnt = 5 Then
If InputBox("Password?") = "1234" Then
MsgBox "管理者機能"
End If
End If
End Sub


Staticステートメントによる静的変数は、プロシージャが終了してもクリアされません。