• ベストアンサー

エクセル 未入力セルがあると保存できなくなるように

エクセル 未入力セルがあると保存できなくなるようにする エクセルで特定の複数セルに未入力があると保存できなくなるようにしたいのです。 (例:M12、AD12、M13、U13、AD13、K14、N14、Q14、Z14、AC14) また複数シートで、シート名は作成者各個人にてバラバラになります。 ※VBAでSheet1などと特定ができなくなると思います。 そのような状況でVBAなどで設定は出来ますでしょうか? よろしくお願い致します。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

>また複数シートで、シート名は作成者各個人にてバラバラになります。 どのシートか特定できないわけで、逆に考えれば、チェックしないシートも特定できなければ手が出ませんね。 例えば、「登録」というシートを共通に挿入し、そのシートのセルA1から作成者個人のチェックするシート名(作成者個人のBook内のシート名)を登録しておけば、 イベントプロシージャ Workbook_BeforeSave をThisWorkbook に書けばいいでしょう。 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)  Dim setteiWS As Worksheet   Set setteiWS = Worksheets("登録")  Dim strRng As Variant  strRng = Array("M12", "AD12", "M13", "U13", "AD13", "K14", "N14", "Q14", "Z14", "AC14")    Dim shtName As String '// シート名  Dim s As Integer    '// シートカウンタ  Dim r As Integer    '// セルカウンタ  Dim chkFlg As Boolean '// チェック    With setteiWS.Range("A1")   shtName = .Offset(s, 0)   While shtName <> ""    For r = 0 To UBound(strRng)     If Worksheets(shtName).Range(strRng(r)) = "" Then      MsgBox shtName & " の " & strRng(r) & " が未入力です"      chkFlg = True     End If    Next        s = s + 1: shtName = .Offset(s, 0)   Wend  End With  Cancel = chkFlg End Sub シート名が不定でも、チェックしないシートが無い場合(全てのシートがチェック対象)、下のように書けます。 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)  Dim strRng As Variant  strRng = Array("M12", "AD12", "M13", "U13", "AD13", "K14", "N14", "Q14", "Z14", "AC14")    Dim ws As Worksheet  '// ワークシート  Dim r As Integer    '// セルカウンタ  Dim chkFlg As Boolean '// チェック    For Each ws In ThisWorkbook.Worksheets   For r = 0 To UBound(strRng)    If ws.Range(strRng(r)) = "" Then     MsgBox ws.Name & " の " & strRng(r) & " が未入力です"     chkFlg = True    End If   Next  Next  Cancel = chkFlg End Sub

anhana
質問者

補足

ありがとうございます。 なんだか難しそうですが、一度トライしてまた結果報告いたします。

その他の回答 (2)

  • Nobu-W
  • ベストアンサー率39% (725/1832)
回答No.2

https://kosapi.com/post-1013/ 上記サイト参考にして、2行~5行を変更して作ってみて下さい (^_^;)

参考URL:
https://kosapi.com/post-1013/
anhana
質問者

補足

ありがとうございます。 まずはリンクを参照してみます。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

エクセルで未入力セルがあると保存できなくなるようにするには、特定のセルを選んで「データの入力規則」を設定してみて下さい。VBAなどで設定は出来ますが、複雑です。

anhana
質問者

補足

ありがとうございます。 どのように設定をすれば良いのでしょうか?

関連するQ&A