Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2306 / 13644 ツリー ←次へ | 前へ→

【68805】ユーザーフォームでボタンを押す順番 子丸 11/4/19(火) 13:47 質問[未読]
【68806】Re:ユーザーフォームでボタンを押す順番 momo 11/4/19(火) 13:54 発言[未読]
【68807】Re:ユーザーフォームでボタンを押す順番 UO3 11/4/19(火) 14:10 発言[未読]
【68808】Re:ユーザーフォームでボタンを押す順番 子丸 11/4/19(火) 14:28 お礼[未読]

【68805】ユーザーフォームでボタンを押す順番
質問  子丸  - 11/4/19(火) 13:47 -

引用なし
パスワード
   はじめまして
探し回ったのですが、どうしても見つからなかったので質問させていただきます。よろしくお願いします。

ユーザーフォームを開いてA、Bの二つのボタンがあるとしてAを先に押さないといけないのにBを先に押してしまったら「先にAボタンを押してください」と出て強制終了

という風なことをしたいのですが、どのようなコードを書けば良いのか、
またそういう事が可能なのかどうか全く検討が付かず困っております。

自分でもヒントを見たりしたのですが、
タブオーダーはフォーカスの移動の順番だから違いますし
全く解りません。

そのフォームを開いて閉じるまでの間有効なようにしたいです。

どうかご教授願いたくよろしくお願いします

【68806】Re:ユーザーフォームでボタンを押す順番
発言  momo  - 11/4/19(火) 13:54 -

引用なし
パスワード
   ▼子丸 さん:
CommandButton1とCommandButton2があるとして
初期状態ではCommandButton2を押せないようにしておいて
CommandButton1を押したら押せるようにするのはどうですか?

 Private Sub UserForm_Initialize()
 Me.CommandButton2.Enabled = False
 End Sub
 
 Private Sub CommandButton1_Click()
 Me.CommandButton2.Enabled = True
 End Sub

【68807】Re:ユーザーフォームでボタンを押す順番
発言  UO3  - 11/4/19(火) 14:10 -

引用なし
パスワード
   ▼子丸 さん:

こんにちは

momoさんの回答が、スマートですし、まっとうな方法ですね。
他には、ボタンAがおされて処理された時に、あるフラッグをたてておいて
ボタンBがおされた時にそのフラッグをチェックするという方法もありますね。


Private Sub CommandButton1_Click()
  'CommandButton1の処理
  CommandButton1.Tag = "Z"
End Sub

Private Sub CommandButton2_Click()
  If CommandButton1.Tag <> "Z" Then
    MsgBox "先にボタン1をおして処理をしてください"
    Exit Sub
  End If
  'CommandButton2の処理
End Sub

【68808】Re:ユーザーフォームでボタンを押す順番
お礼  子丸  - 11/4/19(火) 14:28 -

引用なし
パスワード
   momo様
UO3様

早速のご回答ありがとうございます
早速momo様の方法で試してみました所うまくいきました!ありがとうございます。

UO3様のご回答は、momo様の方法を先に試してしまったため
まだ試しておりませんが、勉強のためにこちらでも作ってみたいと思います。

お二人様、まことにありがとうございました。

2306 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free