プロが教えるわが家の防犯対策術!

初めまして、

Excel VBA で、保存前に必須項目入力漏れを確認するアンケート用紙を作成しました。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
 If Range("A1") = "" Then
   MsgBox "氏名が未入力です。" & vbCrLf & "データを入力してから保存してください。", vbExclamation
  Cancel = True
End If
End Sub

希望通りのアンケート用紙は完成しました。
しかし、
氏名の必須項目を空欄のままでは当然保存できません。(その様に設定したので当然です)
最終的に必須項目未入力の状態で保存し配布するにはどのような手順で保存を行えば良いのでしょうか?

A 回答 (2件)

一例です


作成中のブック名の頭にDev_を付けておきます。
作成完了後名前のDev_を削除して配布します。Open系やCloseなどにも使う事が出来ます。

If Left(Application.ThisWorkbook.Name, 4) <> "Dev_" Then
If Range("A1") = "" Then
MsgBox "氏名が未入力です。" & vbCrLf & "データを入力してから保存してください。", vbExclamation
Cancel = True
End If
End If

配布後にも起動中の裏操作を付加するなら、キーやStatic 変数などを使うなどすれば出来るかと思います。
    • good
    • 0
この回答へのお礼

早々の対応ありがとうございます。
非常にわかりやすくスグに確認できました。

助かりました。

お礼日時:2020/04/24 12:56

どこかにフラグを立て、フラグが立っている間は無条件で保存可能にする。


そのブックを読み込んだらフラグを下ろすようにマクロを工夫する。
別途フラグを立てるマクロも必要になります。
    • good
    • 0
この回答へのお礼

早々の対応ありがとうございます。

Excel VBA 初心者過ぎて勉強しないとダメだなぁと思いました。

課題をいただいたので勉強します。

お礼日時:2020/04/24 12:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!