Accessのグラフウィザードを利用してフォーム上に表示させたグラフを電子メールで送信するには

Access 97のグラフウィザードでフォーム上に表示したグラフを電子メールで送信する方法を紹介します。このテクニックを利用すれば、商品区分別売上高を定期的に上司に電子メールで送信することができます。

  1. Access97のサンプルデータベース(Northwind.mdb)を開きます。通常このサンプルデータベースは、C:\Program Files\Microsoft Office\Office\Samplesに格納されています。

  2. データベースウインドウのフォームタブをクリックして新規作成のボタンをクリックします。

  3. フォームの新規作成ダイアログが表示されたら、基になるテーブル/クエリーの選択に1995年 商品区分別売上高を選択します。リストボックスの一覧からグラフウイザードを選択してOKボタンをクリックします。以降、グラフウイザードの指示に従ってグラフを表示するフォームを作成します。
    Modules_Automation_EmailGraph_fig1
    図1 フォームの新規作成ダイアログ
  4. フォーム上に作成されたグラフのオブジェクトを選択してコントロール名(Name)をoleGraphに書き換えます。

  5. フォームフッターにグラフを電子メールで送信するためのコマンドボタン(Email Graph)を作成します。

  6. コマンドボタンのコントロール名をcmdEmailGraphに書き換えます。
    Modules_Automation_EmailGraph_fig2
    図2 グラフウイザードで作成したフォーム
  7. コマンドボタンのクリックエベントにイベント処理のコードをコピー&ペーストします。

  8. ツールメニューから参照設定をクリックしてMyLib.mdaを登録します。(詳細は、ライブラリーデータベースの組み込みを参照してください)

  9. フォームをビューモードに切り替えたらコマンドボタン(Email Graph)をクリックします。

  10. Outlook97を起動して、ツールメニューから送受信をクリックします。

  11. 電子メールが送受信されます。

コマンドボタン(Email Graph)のクリックイベント処理:

Private Sub cmdEmailGraph_Click()
  
  Dim objGraph As Object
  Dim strFileName As String

  Set objGraph = Me.oleGraph.Object
  strFileName = AppPath_FS() & "Graph.jpg"
  objGraph.Export FileName:=strFileName

  OpenOutlook_FS 
  SendtoOutlook_FS strTo:="fs21@ceres.ocn.ne.jp", _
      strSubject:="Graph Info " & Format(Now(), "yyyy/mm/dd hh:mm"), _
      strBody:="Access97/Outlook Automation", _
      strAttachmentPath:=strFileName
  CloseOutlook_FS
                     
  Set objGraph = Nothing
  
  MsgBox strFileName & " has been E-Mailed", _
        vbInformation + vbOKOnly

End Sub 

AppPath_FS()関数は、現在オープンされているデータベースのパス名を返します。例えば、Nothwind.mdbがC:\Tempのフォルダにあるときは、C:\Temp\が返されます。フォーム上に表示されたグラフは、データベースと同じフォルダにGraph.jpgの名称で保存されます。

コマンドボタンをクリックしてグラフを送信する前にメールアドレスをご自分のアドレスに変更してください。