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です
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
ありがとうございます。この通りやってみたらうまくいきました。
わかりづらい質問に回答してくださってどうもありがとうございました。
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でも直ぐテストデータが作れるようにする
・直接疑問点に関係のないコード部分は省く。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- iPhone(アイフォーン) iPhone7を使用しております。 今年でサポートが終了しアプリもアップデート次第では使用出来なくな 6 2022/07/06 07:16
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
合計3TBのデータのハッシュ値を...
-
教えて下さい
-
配列でデータが入っている要素...
-
【エクセル】測定時間がバラバ...
-
Accessで該当データにフラグを...
-
多量のSUMIF式を軽くしたい
-
[C言語] コメント文字列を無視...
-
メモ帳(テキストデータ)をExc...
-
Excelのマクロでワードのテキス...
-
C言語プログラム変更
-
配列の勉強をしています。使用...
-
ノイズの入った波形をきれいな...
-
VBAを使ってOutlookメール本文...
-
モジュラス103の算出方法について
-
ビットシフトについて
-
win7でvbsファイルが実行できない
-
EXCELVBAでSQLserverからデータ...
-
HTMLでテキストボックスで...
-
CString型の文字列連結について
-
GETはできるがPOSTができない、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えて下さい
-
配列でデータが入っている要素...
-
【エクセル】測定時間がバラバ...
-
メモ帳(テキストデータ)をExc...
-
VBA 空白セルを削除ではない方...
-
多量のSUMIF式を軽くしたい
-
Excelのマクロでワードのテキス...
-
エクセルで2つの時系列のデー...
-
この行は既に別のテーブルに属...
-
VBAを使ってOutlookメール本文...
-
シーケンサにパソコンからアク...
-
EXCELVBAでSQLserverからデータ...
-
ブレーカー落ちで壊れたりしな...
-
[C言語] コメント文字列を無視...
-
オープンチヤットでデータ削除...
-
モジュラス103の算出方法について
-
javaでDBからデータを取ってき...
-
カンマからスラッシュに
-
VBA 毎日取得するデータを順番...
-
Android携帯をUSBメモリ代わりに
おすすめ情報