- ベストアンサー
Excel VBA「If else」の使い方
- Excel VBAのIf elseを使って条件分岐する方法について説明します。
- コマンドボタンをクリックすると、受給者情報から利用終了となる人のリストを抽出できます。
- 抽出データがない場合、メッセージを表示して「top_page」シートに移動させたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
End With 以降は、こうなるのでしょうか。 それと、Range("a1").Select は、エラーが出ないとヘンですよね。 '//... End With If Application.CountA(Worksheets("利用終了者").Range("A:A")) > 1 Then MsgBox "今月末で終了の利用者です!", vbOKOnly + vbInformation, "確認" If MsgBox("印刷しますか?", vbYesNo + vbQuestion, "印刷") = vbYes Then Worksheets("利用終了者").PrintOut End If Else MsgBox "今月で終了の利用者はいません", 64 End If Application.Goto Sheets("top_page").Range("A1") End Sub
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
質問が全体に長すぎるしコードをここまで読ませる必要あるのかな。 ーー 例データ 氏名 年令 住所 山田 34 東京 岩田 43 東京 内田 21 神奈川 大友 56 靜岡 山田 21 東京 大友 25 東京 山田 36 千葉 ーー F1:F2 条件 氏名 木村 該当無しの氏名を指定 ーー こういう方法もある。 コード Sub test01() With Worksheets("Sheet1") .Range("A:C").AdvancedFilter _ Action:=xlFilterCopy, _ criteriarange:=.Range("F1:F2"), _ CopyToRange:=Worksheets("Sheet1").Range("K:M"), _ unique:=False d = .Range("k65536").End(xlUp).Row If d = 1 Then .Range("k2") = "今月で終了の利用者はいません" End If End With End Sub ーー IF EndIf の間が望むものの1方法ではないか。 ーー 回答者がテストしやすいように上記のように、変形して質問してほしい。 ・データ例を挙げる。 ・データ範囲はA-C列ぐらいにする。データ行数は5-10行。 ・Sheet1でも直ぐテストデータが作れるようにする ・直接疑問点に関係のないコード部分は省く。
お礼
わかりづらい質問に回答してくださってありがとうございました
- D-Matsu
- ベストアンサー率45% (1080/2394)
「やりたいこと」の方がよくわかりません。 文章でつらつら書くよりも、入力になる表とそこからどういう結果が欲しいのかを端的に図示した方がいいですよ。 まぁ複数行を一行ずつ判定するならフラグを使うのが一般的かと思いますが……
お礼
ありがとうございます
お礼
ありがとうございます。この通りやってみたらうまくいきました。 わかりづらい質問に回答してくださってどうもありがとうございました。