
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
№4さんお回答にもありますが、データを更新しても保存せずに終了することもあると思いますので、
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean,Cancel As Boolean)イベントプロシージャーの方がよいと思います。
参考https://kosapi.com/post-2038/
データを更新せずに保存することもあるかもしれませんし、データを更新した後に再更新して元に戻してから保存することもあるかもしれません。そこまで厳密にしなくてよいかと思います。
No.4
- 回答日時:
こんばんは
一度に変更する箇所が数千とかで無いのなら、大丈夫かな、、
OneDriveだったかSharePointだったかで教えてくれる機能があったような、、使わなないので解りませんが。
#3では、説明を割愛しましたが、
セル(行列)の削除などは使えなくなります。また、エラー処理は行っていないのでサンプル程度としてください。
使用する場合、
Outlookを事前バインディングしてください。
Private Sub Workbook_BeforeClose(Cancel As Boolean) は
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) の方が良いかも
なさりたい事をざっくりコードにしてみただけで検証を行っていません。
なので実用的では、ないかもですね。
No.3
- 回答日時:
こんにちは
変更できるセルはどのくらいあるのでしょうか?
沢山であれば、問題になるかと思いますが、少しならこんな感じで
Option Explicit
Dim aryData()
Dim n As Long
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim bf_val, af_val()
Dim cnt As Long
Application.EnableEvents = False
For cnt = 1 To Target.Count
ReDim Preserve af_val(cnt)
af_val(cnt) = Target(cnt).Formula
Next
Application.Undo
For cnt = 1 To Target.Count
bf_val = Target(cnt).Formula
Target(cnt).Formula = af_val(cnt)
If af_val(cnt) <> bf_val Then
If bf_val = "" Then bf_val = "Empty?"
ReDim Preserve aryData(n)
aryData(n) = Sh.Name & "_" & Target.Address(0, 0) & " : " & bf_val & " --> " & af_val(cnt)
n = n + 1
End If
Next
Application.EnableEvents = True
End Sub
Sub SendEmail()
Dim objOutlook As Outlook.Application
Dim objMail As Outlook.MailItem
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(olMailItem)
Dim i As Long
Dim BodyText As String
For i = 0 To UBound(aryData)
BodyText = BodyText & aryData(i) & vbCrLf
Next
With objMail
.To = "" 'メール宛先
.Subject = "Excel 編集" 'メール件名
.Body = Format(Date, "yyyy/mm/dd") & vbCrLf & _
Application.UserName & vbCrLf & vbCrLf & _
BodyText 'メール本文
.Display
' .Send
End With
Set objMail = Nothing
Set objOutlook = Nothing
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If n > 0 Then
Call SendEmail
End If
Erase aryData '不要
n = 0 '不要
'Cancel = True '不要デバッグ用
End Sub
すべてThisWorkbookモジュールに記
Outlookは取敢えず表示(送信準備)
バックグランドでの送信などは調べてください。
共有ファイルで試していないのでダメかも知れません。
No.2
- 回答日時:
こんにちは
マクロに関してはすでに回答がでていますので・・・
メールは送れませんけれど、エクセルの機能で以下のようなものがあります。
この程度では使い物にはならないでしょうか。
https://forest.watch.impress.co.jp/docs/serial/e …
No.1
- 回答日時:
こんにちは。
直接の回答ではありませんが、正直、かなり難しいのでは?と思います。
もし作成されるなら、下記の組み合わせが必要だと思います。
(下記HPの詳細は見ていませんので、最適化は不明です。)
作成する前に、どの様な仕様で作成するかを、きちんと決めないと、
後々、トラブルになりそうな気がします。
あと、変更履歴がちゃんと残るかなど、検証も必要かと。
VBAでメール作成・送信!エクセルマクロでOutlook操作する方法
https://fastclassinfo.com/entry/vba_outlook_send …
ブックが閉じる時に自動実行(Workbook_BeforeCloseとAuo_Close)
https://excel-ubara.com/excelvba4/EXCEL240.html
共有しているエクセルファイルの変更履歴・更新ログをとる方法
https://deskworklabo.jp/auto-log/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルに入力されたらメールが担当者に送信されるには?
Excel(エクセル)
-
Excelの更新をメール通知
Excel(エクセル)
-
共有ファイルの更新を通知する方法
Excel(エクセル)
-
-
4
エクセルで作成した表に入力した時自動でメールが送れるようにできますか?
Excel(エクセル)
-
5
Excelで作業終了時、メールを自動送信したい。
Excel(エクセル)
-
6
エクセルでメールの自動送信
Excel(エクセル)
-
7
EXCEL共有ファイルの使用中の相手への通知
Excel(エクセル)
-
8
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
-
9
エクセル マクロ セル数値が条件を満たしたらメールを送信する
Excel(エクセル)
-
10
自分の部署・担当を言うとき、どういう言い方が正しいでしょうか?? 会社のときは、弊社といいますが、部
その他(ビジネス・キャリア)
-
11
EXCELファイルに誰がアクセスしたかを見たい
Access(アクセス)
-
12
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
13
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
-
14
あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように
Excel(エクセル)
-
15
ファイルのアクセス回数について
Access(アクセス)
-
16
エクセルである日付を過ぎたら自動でメール送信。
Excel(エクセル)
-
17
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
18
Excelのセルの色を変えた行(すべてのシート)を別シートに抽出したい
Excel(エクセル)
-
19
Enterキーでマクロを起動さす。
その他(ソフトウェア)
-
20
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
受信メールの添付ファイル忘れ...
-
xHamsterというサイト
-
メール送信すると以下のような...
-
送信しても『Mail System Error...
-
相手にメールを送信したら、 Ea...
-
送信エラーの際、CCには届い...
-
通帳口座番号 メールで送っても...
-
お祝い金を徴収するメールの書き方
-
メールの一斉送信で非対象者に...
-
一度聞いたかも知れないのをっ...
-
OCNメールの保存期間がすご...
-
空メールって何も書かなくてい...
-
"***@***.ocn.ne.jp"の"@***"は...
-
なぜこのメールが送られてくるの?
-
来た?着た?
-
(No subject)と言うメールでの障害
-
同じメールを2通ずつ受信して...
-
メールの最後に「それでは失礼...
-
自分のアドレスにCCを送信す...
-
エラーメールは必ず戻ってきま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
受信メールの添付ファイル忘れ...
-
メール送信すると以下のような...
-
xHamsterというサイト
-
一度聞いたかも知れないのをっ...
-
お祝い金を徴収するメールの書き方
-
通帳口座番号 メールで送っても...
-
相手にメールを送信したら、 Ea...
-
送信しても『Mail System Error...
-
送信エラーの際、CCには届い...
-
メールの一斉送信で非対象者に...
-
メールの書き方 保護者から先生へ
-
OCNメールの保存期間がすご...
-
"***@***.ocn.ne.jp"の"@***"は...
-
(No subject)と言うメールでの障害
-
空メールって何も書かなくてい...
-
失礼な文とは分からず、先生に...
-
迷惑メール??
-
Outlookで受信メールの件名に[S...
-
自分のアドレスにCCを送信す...
-
大学の先生からのメールに、夜...
おすすめ情報
シートが2021年4月から2022年3月まであり、
その中のセルD12からAH101までのどこかが変更したら、お知らせがくるようにしたいのですが、難しいでしょうか?