プロが教える店舗&オフィスのセキュリティ対策術

ExcelのVBAで、必須セルを入力しないと保存できない設定をしましたが、保存しないで(全て埋めないで)ファイルをメールで送られ困ってます。その対策は?

ExcelのVBAで、先日同じような質問をしましたが、追記がありますので、よろしくお願いいたします。
さらにその前に次の要望(1)~(5)を満たすコード(下記記載)を教えて頂き、大変助かりました。
ただ、新たな問題(最後に書いてます)が発生しましたので、ご回答をお願いいたします。
(1)特定のセル(A1,B5,C10等)を入力しないとファイルを保存できない設定
(2)全て入力してたら、閉じる時に普段どおり、『「保存しますか?」の質問に「はい」「いいえ」「キャンセル」』のメッセージボックスが出るように
(3)入力してなかったら、閉じる時に『「未入力ですので、保存できません」』の質問に「保存しません」「キャンセル」』のメッセージボックスが出るように
(4)上書可能で、上書きする時に特定のセル(D12)にその時の日を入力したいが、その日には条件があって、16:00より前ならその日、16:00以降なら翌日に入力されるように
(5)また、作成者がそこを空白のまま保存できないので、作成者については、その制限がかからない方法

ブックモジュール[ThisWokbook]に
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Application.UserName = ThisWorkbook.BuiltinDocumentProperties("Author") Then Exit Sub '許可するユーザー名
Dim myRng As Range
Dim myStr As String
With Worksheets("Sheet1")
Set myRng = Union(.Range("A1"), .Range("B5"), .Range("C10"))
End With
If WorksheetFunction.CountA(myRng) < 3 Then
Cancel = True
myStr = "未入力セルがあります" & vbCrLf & _
"[OK....保存しないで終了]" & vbCrLf & _
"[キャンセル..編集に戻る]"
If MsgBox(myStr, vbOKCancel) = vbOK Then
ThisWorkbook.Close False
End If
End If
Worksheets("Sheet1").Range("D12") = Date + IIf(Time < TimeValue("16:00"), 0, 1)
End Sub

新たな問題ですが、このExcelファイルは依頼書で各営業が全て入力してからメールでこちら部署に送って来ます。そこで、営業が上書きせずに(必須項目未入力有)、Excelの「標準ツールバー(?)」の「コマンドボタン」の「メールの宛先(M)」ボタン「メールの宛先(A)...」ボタンでファイルを添付して送って来て、困ってます。何か対策はないでしょうか?上記コードを生かしたコードを教えていただくと助かります。

A 回答 (2件)

こんにちは。



直接の回答ではありません。

同じような質問を繰り返されているようですが、残念ながら、その設計自体に問題があります。会社の規模がどの程度か分かりませんが、不特定多数でなかったら、#1さんのご指摘の使用者の教育を徹底とされることでしょうね。

それと、コードは間違いとは言わないまでも、「Workbook_BeforeSave」と、最終目的のメール発信とは関係性がありませんし、ある程度の経験者ならそのようなコードは書かないです。入り口から違っているように思います。報告書を会社にメールを送る場合に、保存は、最優先ではありません。

最近のここカテゴリでも、同じような会社のシステムで質問されている方もいます。その方たちは、みなさん、その後成功され実用化していると思います。残念ながら、少なくとも私は、その導入部分まではお教えするつもりはありません。ご自身でどうしたらよいか研究してください。

ただ、まず、実際のメール発信者のメーラーは何を使っているか、という問題から始まっていきますが、それが特定できない場合は、そこから考えなくてはなりません。
    • good
    • 0

ExcelVBAで必須セルを入力しないと保存不可設定したが、未入力有でメールして来られる。

対策は?
http://okwave.jp/qa4834155.html

この時に解決した部分と、今回の質問事項との違いがわかりにくい感じがします。
前回も思いましたが、Excelを使う作業者への教育を徹底させる事が先なのではと思います。
と私見です。

ExcelのVBAで、必須セルを入力しないと保存できない設定をしましたが、保存しない...
http://detail.chiebukuro.yahoo.co.jp/qa/question …
    • good
    • 0

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