• 締切済み

ACCESSで自動でメールをおくる時に任意のアドレスに送りたい

ARCの回答

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

真剣に取り組んだわけではないので、確かな答えではありませんが、多分、できません。 マクロで使える機能のほとんどはVBAからも扱えるので、ここは一つVBAに取り組まれてはいかがでしょうか。 ちなみに、「オブジェクトの送信」と同等の機能は、 DoCmd.SendObject ですね。 ヘルプでDoCmdの項目をごらんになれば、マクロで使えるほとんどの機能が、DoCmd.XXX と記述するだけで使えることが分かると思います。 Accessを思い通りに使うためには、VBAの記述は避けては通れないことですので、今後ともAccessを使っていくんであれば、さわりの部分だけでも覚えておけばいいんじゃないでしょうか。 ちょっと作ってみましょうか。(どうせヒマですし) 「宛先一覧クエリー」(フィールド名"e-mail")の全員に、「送信内容クエリー」で抽出されたデータを送りたい時は、下記のようにします。 Sub SendMail()   Dim AtesakiRST As Recordset   Dim AtesakiStr As String   Dim MailAddress As String      On Error GoTo HandleErr '宛先の一覧を、コンマ区切りで生成する   '宛先の一覧を取得   Set AtesakiRST = CurrentDb.OpenRecordset("宛先一覧クエリー")   Do Until AtesakiRST.EOF     MailAddress = Nz(AtesakiRST![e-mail], "")     If MailAddress <> "" Then       'コンマ区切で、文字列を生成       AtesakiStr = AtesakiStr & "," & MailAddress     End If     AtesakiRST.MoveNext   Loop   '先頭のコンマを削除   If Left$(AtesakiStr, 1) = "," Then     AtesakiStr = Right(AtesakiStr, Len(AtesakiStr) - 1)   End If    'メッセージの送信   DoCmd.SendObject acSendQuery, "送信内容クエリー", acFormatXLS, , , AtesakiStr, "題名", "メッセージ" '終了 ExitHere:   Exit Sub 'エラー処理 HandleErr:   MsgBox "エラー発生!!" & vbNewLine & Err.Description   Resume ExitHere End Sub 5分で作って5分でバグ取りしただけのものなんで、「ちゃんと使える」かどうかは疑問ですが、まぁ、参考程度にはなると思います。 (ちなみに著作権うんぬんは主張しません。勝手に使ってくださって結構です。)

noname#1745
質問者

お礼

早速のご回答有難うございます。 お書き頂いたVBAの記述なんとなく、ほんの少し わかるような気がします。 当方、中堅製造メーカーで現場のあわただしさの中で 夜まではほとんど静かにプログラムをかじれるような環境ではなく、おまけに年齢的に頭もなかなか回らなくなりVBA(VB)にはずっと踏み込む勇気がない状態です。 かといってすべてシステム会社にお願いする予算もない というありさまです。 VBA(VB)を基礎から分かりやすく解説しているような お勧めの書籍には何がありますか。 本屋には余りにも多すぎて選択が困難です。 今から約20年前ですけどBASIC、FORTRANは学生時代に かじりました。 しかし、その後はまったく空白です。 脳みそもかなり腐ってきていると感じていますが、、 そういう人間向けの書籍がありましたら宜しくお願いします。

noname#1745
質問者

補足

このシステム初めて使うのですが、 どうやって、回答頂いた方に点数を入れるのですか?

関連するQ&A

  • Accessのマクロを使って複数人にメールを送る方法を教えてください。

    Accessのマクロを使って複数人にメールを送る方法を教えてください。 Access2003を使用しています。 いつも、マクロの「オブジェクトの送信」を流用して複数人にメールを送っています。 ・「オブジェクトの送信」だけど、「オブジェクトの種類」や「オブジェクト名」はブランク ・「出力形式」もブランク ・「メッセージ」のところに、メール本文を書く ・「宛先」に送る人間の名前を入れる この方法で問題なくOutlookが起動しメールが配信できたのですが、今回配信したい本文はかなり長文で「メッセージ」部分に入りきりません(文字数オーバーで後半が切れる)。 そこで、 ・「オブジェクトの送信」だけど、「オブジェクトの種類」や「オブジェクト名」はブランク ・「出力形式」もブランク ・「メッセージ」も「宛先」も「件名」もブランク ・「テンプレート ファイル」にテンプレート格納先のフォルダとファイル名のパスを記入 にしたのですが、テンプレートとして認識してくれませんでした。 (何もかもブランクのOutlookが一枚立ち上がるのみ・・・) どこがいけなかったのでしょう? というか、そもそもマクロの「オブジェクトの送信」では、テンプレートを使用したメール配信は無理、VBAを使わないとダメなのでしょうか? 詳しい方教えてください。よろしくおねがいします。 (VBAしか使えない場合、書き方も教えていただけると助かります)

  • アクセス2000:マクロで「オブジェクトの送信」のアドレス変更

    マクロ機能の「オブジェクトの送信」では送信先が一つだけしか入れられません。 選んだオブジェクトがフォームで1レコードであるときに、そのレコードに入力しているメールアドレスを自動的に送信先に指定するにはVBAを使うしかないのでしょうか?

  • VB6とVBAのマクロのアクセス方法を教えてください。

    VB6とVBAのマクロのアクセス方法を教えてください。 用途は、 (1)VB6からVBAマクロを起動する。 (2)VBAマクロの途中経過をVB6のオブジェクトへ通知する。 VBAはPC外部接続機器をコントロールします。 VB6での実装サンプルが用意されていない為、VBAを使用しております。) (3)VB6は通知結果を、拾って別ルーチンの処理を実行する。 (1)では、下記の様な方法にてマクロ実行を考えていたのですが、 マクロが終了するまで、次コードへ移らない為、 シェル関数の様な形でマクロをキックしたい。 xlApp.run ("VBA_TEST(" & Chr(&H22) & strarg & Chr(&H22) & " )") (2)では、VBAとVB6と平行に実行したい為、フラグをやり取りするのに、 VB6のオブジェクトを使用したい。

  • ACCESS2000 クエリをテーブル化するマクロ(VBA)おしえてください

    こんにちは。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1801262 の質問者です。コレの続きを教えてください。 まとめますと、クロス集計クエリや、ユニオンクエリをそのまま扱うと、データや計算式がからまってエラーになったり、処理が遅かったりするので、テーブル化してからいじりたいのです。 マクロは データベース変換 変換の種類…インポート データベースの種類…MS ACCESS データベース名…L:\パス\パス\ファイル名.MDB オブジェクトの種類…クエリ オブジェクト名…クエリ名 変換先名…テーブル名 テーブル構造のみ変換…いいえ としてみましたが、クエリとしてインポートされてしまいます。 いちどCSVか何かでエクスポートしてから、テキスト変換するという手もありますが、もっとスマートな方法がありましたら教えてください。 VBA も勉強中なので、VBAでお答えいただいてもけっこうです。 よろしくお願いします。

  • アクセスのメニュー(続編・・)

    先程下記の質問をしてマクロでの実行方法をご教授いただいた者です。解決してしまったのですが、参考までに、VBAでの実行方法もむずかしくないようなら教えていただけないでしょうか・・・ (^^; ----ここから先程の質問---- access2000ですが、書籍についてきたものをちょっとだけ手を加えたいのです。TOPメニュー(フォーム)にボタンを追加して、それをクリックしたときに特定の「更新クエリ」を実行する簡単な設定方法を教えていただけないでしょうか。このクエリはオブジェクト/クエリ/のところに最初から作成済みのクエリです。 #accessの知識はほとんどありません。 #VBAもいじったことがありません。 #TOPメニューへのボタンの追加はできます。

  • アクセスのマクロ解析ツール?

    素人ながら、アクセス97で発注・仕入処理を クエリーを使い倒し、マクロを用いて、 どうにかこうにか、システムを作って、運用しています。 ところが、クエリーの数も200個以上になり、 マクロも小さな処理も含めて100は超えています。 こうなってくると、どこでどのマクロを使っていたのか、 すっかり忘れてしまうこともあり、変更の都度、あちこち をたどって行かねばなりません。 VBA(VB)を使えれば良いのですが、今更一から勉強するような時間の余裕すらありませんので、 かといってシステム屋さんに頼もうにも、 業務を全く知らないので、その打ち合わせをする時間で ある程度のもななら自分らで作れるので、 苦労して作っています。 そこで、教えていただきたいのは、マクロまでの処理で 作る場合、あとあとのメンテナンスの時、このマクロは どこで使われているのか、逆引きできたり、どのフォームから実行されているのか、などわかりやすく解析できる ツールのようなものは有りませんでしょうか? ドキュメントツールとなると、たいそうなものでしょうか? アクセスの機能にある、データベースの解析など やたら、紙面が増えて使いづらいことこの上なしなので 何か良いツール(安価かフリーなもの)を教えてください。

  • AccessのクエリをEXCELのVBAを使用して置き換える方法をご教

    AccessのクエリをEXCELのVBAを使用して置き換える方法をご教示願います。 AccessデータはE:¥生産管理¥生産.mdbで現状データ内 受注残とゆうクエリ (受注NO 品番 品名 納期 受注残で並んでいます)を Office Links→Excelの出力処理にてExcelデータに変換しこのデータを 元データにし品番を縦ならび、納期を横並びにしてどの日付に何個受注が残っているかが わかるようにVBAで処理するようにしております。 横並びにする理由は資材発注などで結構先の受注を確認して自動計算するためです。 上記のように自動化されていない Office Links→Excelの出力処理をVBAでやる方法が 検索方法が悪いせいかわかりません。 Office Links→Excelの出力処理もしくは クエリから直接データを引き込む方法をご教授お願いいたします。

  • VBA未使用でシステム開発は可能?(Access)

    (1)一般的な給与・勤怠管理システムを 作るのにVBAを使わずにシステムを 作り上げるのは可能でしょうか? (使うのはクエリー、マクロなど。) (2)難易度はプログラミングを専業にしない人でも 作れるレベルでしょうか? (3)私はVBプログラマなのでVBAを駆使した方が簡単だと思うのですがどうでしょうか?

  • アクセスのメニュー

    access2000ですが、書籍についてきたものをちょっとだけ手を加えたいのです。TOPメニュー(フォーム)にボタンを追加して、それをクリックしたときに特定の「更新クエリ」を実行する簡単な設定方法を教えていただけないでしょうか。このクエリはオブジェクト/クエリ/のところに最初から作成済みのクエリです。 #accessの知識はほとんどありません。 #VBAもいじったことがありません。 #TOPメニューへのボタンの追加はできます。

  • アクセスから差し込み文書のメール送信の自動化

    現在アクセスのデータをワードへの差し込み文書からメール送信しています。 この一連の操作をクリック1回で行う設定は可能でしょうか? 現在の手順は以下のとおりです。 (1) ワードで作成した差し込み文書を立ち上げる。(差し込み元のアクセスのファイルも同時に起動) (2) 差し込み文書からメール送信。 (3) 送信を完了したら、アクセスのテーブルにチェックを入れる。 マクロとかVBAを利用してできるものでしょうか?