お世話になっております。
ご教授お願い致します。
ユーザーフォームに1~20のチェックボックスがあり
一つでもチェックボックスがONの場合は登録
チェックボックスがすべてOFFの場合は登録しないと言うもの作成したいのですが
うまく行きません。
Dim cb As CheckBox
For Each cb In ActiveSheet.CheckBoxes
If cb.Value = xlOff Then
MsgBox "選択してください"
Else
MsgBox "登録"
End If
Next cb
宜しくお願い致します。
No.6ベストアンサー
- 回答日時:
ElseIf .TextBox11.Value = "" Then は
If Me.Controls("CheckBox" & i) = false Then にかかっています
なので
For i = 1 To 20
If Me.Controls("CheckBox" & i) = false Then
MsgBox "選択してください"
Exit Sub
End If
Next
If .TextBox11.Value = "" Then
か、Next位置を条件外にする必要がありますが
条件外に出す場合、ループの意味する目的に差異が生じ合理的なループではなくなります。まぁ、、動くけれども。
複数条件があるようでしたら、準じチェックを行って 該当外が生じた段階でループなどを抜けMsgBox を出し終了するのが良いと思います。
更に、userformのコントロールにはイベントがありますので
グローバル変数やStatic変数を活用して入力、チェック動作を行った時に
フラグを建てる方法なども考えられますね。
>質問を整理して再度、伺います
との事なのでタイミングが合えばよろしくお願いします。
No.7
- 回答日時:
こんにちは。
ユーザーフォームだと、No.6さんの回答と同じ様に、なるかと思います。
因みに、
すべてのチェックボックスがoffの場合はメッセージを、は良いですが、
そうでない場合の登録について、下記のどちらなのでしょうか?
①1つでもonの時は、1回だけ登録をする。全てonでも登録は1回だけ。
②それぞれがonの時に、その都度、登録をする。1~20回のどれか。
私の場合は、①だと思って回答したのですが、質問者さんは②が希望?
No.4
- 回答日時:
#3です
myflag? userform1ですよね。
.Label4.Caption = "残業" And .TextBox5.Value = "" この条件は限定条件なので最初に振り分ければ良いかと、、
私的にはすぐ抜ける書き方をしますが、、
Dim i As Integer
With UserForm1
If .Label4.Caption = "残業" And .TextBox5.Value = "" Then
MsgBox "時間外勤務時間の入力がありません。"
Exit Sub
End If
For i = 1 To 20
If .Controls("CheckBox" & i) = True Then
登録実行
Exit Sub
End If
Next
MsgBox "選択してください"
End With
的違いをしているかも知れませんのでここ迄で
Qchan1962さん
Exit Sub が使用したことがなかったので。If~ElseIF~としていました。
Exit Subを勉強してみます。
有難う御座います
No.3
- 回答日時:
こんにちは
ユーザーフォームで良いですか?
コントロールオブジェクト名を変更していないのなら
簡単な方法での一例です
Dim i As Integer
For i = 1 To 20
If Me.Controls("CheckBox" & i) = True Then
MsgBox "登録"
Exit Sub
End If
Next
MsgBox "選択してください"
こんな感じで、
No.1
- 回答日時:
おはようございます。
例えば下記の様に、全てチェックした後に、判定して処理でしょうか?
Dim cb As CheckBox,myFlag as Boolean
myFlag = False
For Each cb In ActiveSheet.CheckBoxes
If cb.Value = xlOff Then
Else
myFlag = True
End If
Next cb
if myflag then
MsgBox "登録"
end if
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
歩いた自慢大会
「めちゃくちゃ歩いたエピソード」を教えてください。 長時間でも長距離でも結構です。
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
チェックボックスの値をTRUE/FALSE以外にするには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
三菱ufjニコスカードのVIZAを使...
-
ユーチューブのお気に入りが消...
-
fc2登録について
-
誰も電話帳にSNSプロフィールっ...
-
スシローの新規会員登録って 登...
-
自販機でモバイルPASMOが使えない
-
特定商工業者?(法定台帳登録...
-
すべてのチェックボックスがoff...
-
らくらく連絡網 登録削除の仕...
-
Windows等の評価版は必ず登録し...
-
Benesseのマナビジョンで、氏名...
-
今からU-NEXTに登録して Paravi...
-
X、嫌がらせで通報されまくって...
-
習い事の退会届の書き方
-
ジャニーズウェブについてです...
-
魚拓で逮捕される事ってありま...
-
至急!!ペアーズ登録直後に強...
-
自筆と直筆の違いを教えてくだ...
-
ツイッターで返信してもフォロ...
-
アメブロ 退会しましたが・・
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
三菱ufjニコスカードのVIZAを使...
-
regsvr32.exe による DLLの登...
-
誰も電話帳にSNSプロフィールっ...
-
fc2登録について
-
自販機でモバイルPASMOが使えない
-
マッチングアプリにいる女性に...
-
中国のファイル共有サイト115.c...
-
ウイルスバスター、登録したP...
-
特定商工業者?(法定台帳登録...
-
番号の登録しない人っていますか?
-
すべてのチェックボックスがoff...
-
Benesseのマナビジョンで、氏名...
-
"regsvr32" の名前の由来は?
-
教えて!gooを新規登録する時に...
-
ODBCのデータソース登録内容の確認
-
ご近所さんを探せ
-
VBAのNEXTに対するforがありま...
-
内線番号が設定出来ません
-
ベガプロモーションというライ...
-
ジャニーズショップの同行者登...
おすすめ情報
with userform1
If myFlag Then
MsgBox "選択してください"
ElseIf .Label4.Caption = "残業" And .TextBox5.Value = "" Then
MsgBox "時間外勤務時間の入力がありません。"
else
登録実行
end if
end with
上記のように複数条件で切り分けなのですが、うまく行きません。
Qchan1962さん回答ありがとうございます。
For i = 1 To 20
If Me.Controls("CheckBox" & i) = false Then
MsgBox "選択してください"
Exit Sub
Next
ElseIf .TextBox11.Value = "" Then
MsgBox "事由/業務内容の入力がありません。"
else
MsgBox "登録"
End If
forに対するNextがありませんとなります。
mygoonicknameさん、回答有難う御座います
If myFlag Then
MsgBox "選択してください"
ElseIf .Label4.Caption = "残業" And .TextBox5.Value = "" Then
MsgBox "時間外勤務時間の入力がありません。"
Else
登録実行
End if
上記のように複数条件で切り分けなのですが、うまく行きません。
mygoonickname さん、ご回答有難うございます。
For Each cb In ActiveSheet.CheckBoxes
こちらは、アクティブシートですが
ユーザーフォームにする場合はどうすればよいでしょうか?
mygoonicknameさん
回答有難う御座います。
お返事遅くなりました。
①1つでもonの時は、1回だけ登録をする。全てonでも登録は1回だけ。
が希望です。
宜しくお願い致します。