メールで配布されるレポートを実行しています。電子メールには、レポートへのハイパーリンクと、レポート コンテンツのスナップショットとしてそこからコピーされたセル範囲があります。自動化しようとして VBA を見つけましたが、私はプログラマーではないので、必要に応じて変更することはできません。
以下の VBA は、ほとんどの方法で私を取得しますが、2 つの欠点があります。
1) メールで参照している特定のファイルを指すハイパーリンクが必要です。このファイルは毎日変更されます (つまり、一意のワークブックが作成されます)。以下は、静的ハイパーリンクを使用しています。セル参照からハイパーリンクを取得する方法を見つけようとしていました。
2) ハイパーリンクとセルの範囲を Excel から電子メールにコピーする場合、ハイパーリンクの下のセルが必要です。以下は、ハイパーリンクの上に範囲を配置します。
ワークシートを参照して電子メールを取得する、以下の VBA で採用されているアプローチを保持したいと思います。配布される他のレポートに簡単に展開できるようです。
サブ CreateMail()
Dim rngSubject As Range
Dim rngTo As Range
Dim rngCc As Range
Dim rngBody As Range
Dim objOutlook As Object
Dim objMail As Object
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
With ActiveSheet
Set rngTo = .Range("B1")
Set rngCc = .Range("B3")
Set rngSubject = .Range("B2")
Set rngBody = .Range("H6:K22")
End With
rngBody.Copy
With objMail
.Body = "Please click on the link below..." & vbCrLf & "rngBody.Paste" & vbCrLf & _
"file:\\dbd03\nccode\Router_Proc\04Routing.txt"
End With
With objMail
.To = rngTo
.Cc = rngCc
.Subject = rngSubject
.Display
End With
SendKeys "^({v})", True
Set objOutlook = Nothing
Set objMail = Nothing