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件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんにちは。
直接の回答ではありません。
同じような質問を繰り返されているようですが、残念ながら、その設計自体に問題があります。会社の規模がどの程度か分かりませんが、不特定多数でなかったら、#1さんのご指摘の使用者の教育を徹底とされることでしょうね。
それと、コードは間違いとは言わないまでも、「Workbook_BeforeSave」と、最終目的のメール発信とは関係性がありませんし、ある程度の経験者ならそのようなコードは書かないです。入り口から違っているように思います。報告書を会社にメールを送る場合に、保存は、最優先ではありません。
最近のここカテゴリでも、同じような会社のシステムで質問されている方もいます。その方たちは、みなさん、その後成功され実用化していると思います。残念ながら、少なくとも私は、その導入部分まではお教えするつもりはありません。ご自身でどうしたらよいか研究してください。
ただ、まず、実際のメール発信者のメーラーは何を使っているか、という問題から始まっていきますが、それが特定できない場合は、そこから考えなくてはなりません。
No.1
- 回答日時:
ExcelVBAで必須セルを入力しないと保存不可設定したが、未入力有でメールして来られる。
対策は?http://okwave.jp/qa4834155.html
この時に解決した部分と、今回の質問事項との違いがわかりにくい感じがします。
前回も思いましたが、Excelを使う作業者への教育を徹底させる事が先なのではと思います。
と私見です。
ExcelのVBAで、必須セルを入力しないと保存できない設定をしましたが、保存しない...
http://detail.chiebukuro.yahoo.co.jp/qa/question …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Access(アクセス) ExcelのVBAコードについて教えてください。 4 2023/01/20 09:44
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【エクセル】関数で「A1が0でな...
-
エクセルでセルにポインタする...
-
エクセル逆三角マークで選択項...
-
エクセル 入力規則のリストボ...
-
エクセルでセルのコメントが消...
-
Excel 集計表
-
エクセルで、入力できる箇所を...
-
表内で、Enterキーで横→行の最...
-
エクセルVBA、間違っているコー...
-
エクセルの入力規則で作ったリ...
-
Excel 一番右のセルを参照する
-
ドロップダウンリスト(INDIREC...
-
エクセルで。
-
エクセルVBA ユーザーフォーム...
-
エクセルで電話番号から市内局...
-
カンマで区切った数値をCOU...
-
エクセルVBA ブックを閉じる前...
-
シートを保護しても入力規則を...
-
エクセルのプルダウンボタンの...
-
初期値をIF文で設定した後入力...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【エクセル】関数で「A1が0でな...
-
エクセル逆三角マークで選択項...
-
エクセルでセルにポインタする...
-
シートを保護しても入力規則を...
-
エクセルVBA ブックを閉じる前...
-
エクセル 入力規則のリストボ...
-
【Excel】ドロップダウンリスト...
-
エクセルでセルのコメントが消...
-
Excel 自動的に半角英数になり...
-
エクセルの入力規則で作ったリ...
-
入力規則の入力時メッセージの...
-
Excelでセルに名前を定義したい...
-
エクセルで、入力できる箇所を...
-
ドロップダウンリスト(INDIREC...
-
入力規則をブック全体にかける...
-
エクセルで電話番号から市内局...
-
エクセルVBA ユーザーフォーム...
-
EXCEL:入力規則の「リスト」は...
-
Excelで同じセルに入力し エン...
-
エクセルで、セルをクリックす...
おすすめ情報