Excel VBA「If else」の使い方
Excelで管理台帳を作っています
コマンドボタンをクリックすると、元データ「受給者情報」シートから今月利用終了となる人のリストを「利用終了者」シートに抽出できるようにしています
正しい作り方ではないのかもしれませんが、これでちゃんと抽出できているから抽出自体はこれでも問題ないと思います(^_^;)
それはいいのですが、対象となる人がいない場合、抽出先の「利用終了者」シートにはタイトル行しか出ません。
それでも構わないのですが、できたら抽出データがない場合(A2セルより下のデータがない場合)は、「今月で終了の利用者はいません」とメッセージを出し、「top_page」シートに移動させたいのです
そのやり方がうまくいきません
現時点はこのように入れています
Private Sub CommandButton2_Click()
Worksheets("利用終了者").Select
Worksheets("利用終了者").Range("A:M").Clear
With Worksheets("受給者情報")
.Range("A:M").Copy Worksheets("利用終了者").Range("A1")
.Range("A:Q").AdvancedFilter _
Action:=xlFilterCopy, _
criteriarange:=.Range("U1:V3"), _
CopyToRange:=Worksheets("利用終了者").Range("A:M"), _
unique:=False
End With
MsgBox "今月末で終了の利用者です!", vbOKOnly + vbInformation, "確認"
If MsgBox("印刷しますか?", vbYesNo + vbQuestion, "印刷") = vbNo Then
Exit Sub
End If
Worksheets("利用終了者").PrintOut
Sheets("top_page").Select
Range("a1").Select
End Sub
If elseを使うんだろうな、というのは何となくわかるのですが、どこにどう入れたらちゃんと反応するのかわかりません。
一度、
(前略)
If Application.CountA(Range("A2")) = 0 Then
MsgBox "今月末で終了の利用者はいません", vbOKOnly + vbInformation, "確認"
Else
MsgBox "今月末で終了の利用者です!", vbOKOnly + vbInformation, "確認"
If MsgBox("印刷しますか?", vbYesNo + vbQuestion, "印刷") = vbNo Then
Exit Sub
End If
Worksheets("利用終了者").PrintOut
End If
Sheets("top_page").Select
Range("a1").Select
End Sub
と入れてみたのですが、これだと2行目以降もデータがあっても、「今月末で終了の利用者はいません」となってしまいます
2行目以降にデータがある場合は「今月末で終了の利用者です!」とメッセージボックスを出し、2行目以降にデータがない場合は「今月末で利用終了の利用者はいません」とメッセージボックスを出したいです
そのやり方を教えてください。お願いします
ちなみにバージョンはExcel2010です
お礼
ありがとうございます。何度もすみません。 実は終了時に別の作業をするために標準モジュールにひとつ入っています。途中のアドバイスではterminateとうまく連結できたのですが、最後の二つはうまくいきませんでした・・・。 アクセス知識レベルが低く、こなすことも出来ず・・。沢山お時間を割いていただいたのに本当にすみませんでした。ありがとうございました。