下記を実行すると、BC12:BC24に文字があってもなくても、
常に「時刻が入力されていません!」メッセージが表示されてしまいます。
そのセル範囲には、IF関数があるんですが・・CountAが効いていないような・・?
データの問題か記述の問題かわかりません。
解明していただきたくよろしくお願いいたします。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If WorksheetFunction.CountA(Worksheets("Sheet1").Range("BC12:BC24")) > 0 Then
If MsgBox("時刻が入力されていません!", vbRetryCancel + vbCritical, "入力チェック") = vbRetry Then
MsgBox "入力シートに戻ります", vbInformation
Cancel = True
Else
MsgBox "エクセル閉じます", vbInformation
End If
End If
End Sub
No.2ベストアンサー
- 回答日時:
こんにちは、
また、仮に初めのIFがTRUEで下記が事項され、再試行、キャンセルのメッセージが表示され、
再試行を押下場合、すぐ下が実行されますが、キャンセルが押下された場合、Else以下が実行されます
これは、キャンセルの意味を成しますか。
また、このコードの場合、すべての範囲に1つでも値がある場合(数式がある場合を含む)End If 以下が実行され
何も表示されず、ブックが閉じられます。
一連のご質問を鑑みて、関数の意味などを調べた方が、理解が得られると思いますが、
ご質問の事象の可能性は、数式による空白があるのではないかと思います。
範囲全てが入力されていれば、と言うプロセスで、範囲内に数式によるっ空白を含む場合、
下記のような、サンプルになります。(なされたい事が変わっているなら、下記は忘れてください)
参考まで
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If WorksheetFunction.CountBlank(Worksheets("Sheet1").Range("BC12:BC24")) > 0 Then
If MsgBox("時刻が入力されていません!", vbRetryCancel + vbCritical, "入力チェック") = vbRetry Then
MsgBox "入力シートに戻ります", vbInformation
Cancel = True
Exit Sub
Else
Cancel = True
Exit Sub
End If
End If
MsgBox "エクセル閉じます", vbInformation
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) VBAのトグルボタンでのマクロについて質問です 3 2022/10/10 17:23
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF関数で空欄("")の時、Null...
-
エクセルでCSVを編集するとき、...
-
数式による空白を無視して最終...
-
VLOOKUP関数について
-
excel2010 空白セルにのみ貼り...
-
空白セル内の数式を残したまま...
-
「データ要素を線で結ぶ」がチ...
-
エクセルで、「複数のセルの中...
-
《Excel2000》SUMPRODUCT関数で...
-
ピボットテーブルで空白セルの...
-
【Excel】 Ctrl+方向キー で空...
-
Excel > ピボットテーブル「(空...
-
エクセルのグラフで式や文字列...
-
形式貼り付けの「空白を無視す...
-
Excelで、入力文字の後に自動で...
-
数式の結果が空白の時の空白扱い
-
空白セルにハイフンを表示
-
エクセルで入力した文字列を他...
-
Excel:関数が入っているセルに...
-
空白を0とみなす関数
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IF関数で空欄("")の時、Null...
-
数式による空白を無視して最終...
-
excel2010 空白セルにのみ貼り...
-
エクセルでCSVを編集するとき、...
-
「データ要素を線で結ぶ」がチ...
-
Excelで、入力文字の後に自動で...
-
ピボットテーブルで空白セルの...
-
エクセル 連番が途切れていると...
-
関数TRANSPOSEで空白セルを0に...
-
空白セル内の数式を残したまま...
-
Excel > ピボットテーブル「(空...
-
エクセルで、「複数のセルの中...
-
SUMIFS関数で「計算式による空...
-
空白を0とみなす関数
-
【Excel】 csvの作成時、空白セ...
-
エクセルで上の行の値を自動的...
-
《Excel2000》SUMPRODUCT関数で...
-
一列の中の金額を他のセルに
-
形式貼り付けの「空白を無視す...
-
エクセルで空白文字の前後を入...
おすすめ情報