• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA「If else」の使い方)

Excel VBA「If else」の使い方

このQ&Aのポイント
  • Excel VBAのIf elseを使って条件分岐する方法について説明します。
  • コマンドボタンをクリックすると、受給者情報から利用終了となる人のリストを抽出できます。
  • 抽出データがない場合、メッセージを表示して「top_page」シートに移動させたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

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

oneroomdisco
質問者

お礼

ありがとうございます。この通りやってみたらうまくいきました。 わかりづらい質問に回答してくださってどうもありがとうございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

質問が全体に長すぎるしコードをここまで読ませる必要あるのかな。 ーー 例データ 氏名 年令 住所 山田 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でも直ぐテストデータが作れるようにする ・直接疑問点に関係のないコード部分は省く。

oneroomdisco
質問者

お礼

わかりづらい質問に回答してくださってありがとうございました

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

「やりたいこと」の方がよくわかりません。 文章でつらつら書くよりも、入力になる表とそこからどういう結果が欲しいのかを端的に図示した方がいいですよ。 まぁ複数行を一行ずつ判定するならフラグを使うのが一般的かと思いますが……

oneroomdisco
質問者

お礼

ありがとうございます