グラフウィザードで作成したグラフを電子メールで送信するには ( Access
2000)
グラフウィザードを使用してレポート上に作成したグラフを、電子メールで自動送信する方法を説明します。
ここで紹介する方法を採用すると、商品区分別売上高をグラフ化(視覚化して見易く加工)して定期的に電子メールで自動送信することができます。
- Access 2000
を起動してサンプルデータベース Northwind.mdb
を開きます。
- フォーム編にて解説した グラフウィザードを使用してフォーム上にグラフを表示させるには を参考に95年商品区分別売上高のグラフを新規レポートに作成します。
 |
| 図1-グラフウィザードを使用してレポート上にグラフを表示させた例 |
- グラフウィザードを使用した場合、図1に示すように月名が日本語化されないで英語名で表示されます。月名を日本語化するには、グラフのプロパティを表示させて値集合ソース(Row
Source)をクリックしてクエリビルダボタンを表示させます。
クエリビルダボタンをクリックするとSQLステートメントが表示されますので、式1:
(Format([出荷日],"mmm""
'""yy"))を式1: (Format([出荷日],"m月"))のように変更します。クエリを保存したら、プレビューボタンをクリックして結果を確認します。月名が斜めに表示されているときは、グラフをダブルクリックしてGraph9
Server を起動します。X軸をダブルクリックすると、書式設定のダイアログが表示されますので、フォントタブをクリックしてサイズを9に設定します。
レポートの空き領域をクリックしてGraph9
Serverを終了させたら、プレビューで結果を確認します。図2のようにグラフが表示されるように調整します。
 |
| 図2-グラフのX軸に表示される月名を日本語化した例 |
- レポートのプロパティを表示させたら、その他のタブをクリックしてタグ(Tag)に電子メール送信情報(レポートID、宛先、件名、本文)を設定します。
電子メール送信情報:
Monthly;ceo@friendlysw.com;Snapshot Report;Here is the
Monthly Report
レポートを rpt95年商品区分別売上高 の名称で保存します。
レポートのタグに設定する、電子メール送信情報の詳細については レポートを定期的に電子メールで自動送信するには
を参照してください。
- 新規のフォームを作成して、メール送信のコマンドボタン(cmdSendMail)を配置します。コマンドボタンのクリックイベントに、リスト1のコードをコピー&ペーストします。この例では、SendSnapShotの引数にReport
IDとしてMonthlyを指定していますので、全レポートのタグプロパティを検索して月次に印刷するレポートをスナップショット形式で電子メールにて送信します。電子メールの宛先、用件、本文は、レポート毎に設定することができます。複数の宛先を指定するときは、コンマ(、)で区切ります。
| リスト1-コマンドボタンのクリック(On
Click)イベントの処理 |
Private Sub cmdSendMail_Click()
SendSnapShot "Monthly"
End Sub
Sub SendSnapShot(strReportID As String)
Dim obj As AccessObject
Dim rpt As Report
Dim varTag As Variant ' ID(0),To(1),Subject(2),Body(3)
Dim intI As Integer
Const conID = 0
Const conTo = 1
Const conSubject = 2
Const conBody = 3
On Error Resume Next
For Each obj In CurrentProject.AllReports
DoCmd.OpenReport obj.Name, acViewDesign
Set rpt = Reports(obj.Name)
With rpt
varTag = Split(Nz(.Tag), ";") ' 0-based array
If UBound(varTag) > 1 Then
If LCase(varTag(conID)) = LCase(strReportID) Then
DoCmd.OpenReport obj.Name, acViewPreview
DoCmd.SendObject acSendReport, obj.Name, _
acFormatSNP, Replace(varTag(conTo), ",", ";"), , , _
varTag(conSubject), varTag(conBody), False
End If
End If
End With
DoCmd.Close acReport, obj.Name, acSaveNo
Next obj
End Sub |
- フォームをビューモードに切り替えたら、メール送信のコマンドボタンをクリックします。Outlook
2000を起動して送信トレイにメールが送信されていることを確認してから、送受信のアイコンをクリックして送信します。
- Outlook 2000で、メールを受信して添付ファイルを開くと、Snapshot
Viewerが起動されてレポートのグラフが表示されます。
 |
| 図3-電子メールで受信した添付ファイルを
Snapshot Viewerで開いた例 |
|
|