Microsoft CDO for Windows 2000 Library を使用して、メールの配信まではうまくいくようになったのですが、ファイル添付の方法が分かりません
CDOについて、まだ勉強不足なので、どんな些細な事でも教えて下さい

A 回答 (1件)

部分的ですが、下記コードでどうでしょう?



添付ファイル名 = Application.GetOpenFilename("全てのファイル (*.*),*.*", , "添付ファイル選択", , True)

結果 = SendMailByCDO(SMTPサーバ, 発信者, 宛先, "", "", 件名, 本文, 添付ファイル名)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QWebBrowserコントロールとMicrosoft HTML Object Library

お世話になります
よろしくお願いします
OS:XP
VB:6.0

現在、Dreamweberのような動きをしたくて試行錯誤しています
そこでわからなくなり質問させて下さい

WebBrowserコントロールローカルに保存してあるhtmlを表示して
WebBrowserコントロール上でテキストを選択すると
選択されているテキストを取得するところまではできたのですが

そのテキストがソースの部分のどこかというのを調べる方法はないでしょうか?

やりたいことは、その選択された部分のテキストを変更できるようにしたいです。

あと、Microsoft HTML Object Libraryに関して詳しく説明してある
ホームページとかないでしょうか?

以上よろしくお願いします

Aベストアンサー

MSHTMLの解説などは MSDN本家(英語)のサイトということになりそうです
http://msdn.microsoft.com/en-us/library/aa741317(VS.85).aspx

Q個別に違う添付ファイルを付けて一括でメール配信をしたいのですが、EXC

個別に違う添付ファイルを付けて一括でメール配信をしたいのですが、EXCELやACCESSのVBA、またはソフトなどご存知の方いませんか。

例)
送信先    添付ファイル 本文(同じ)
田中さん   excel01.xls  添付いたしましたファイルの内容にて、お願いします。
鈴木さん excel02.xls  添付いたしましたファイルの内容にて、お願いします。
;
;


添付ファイルが1つで、多数の方に送信できるフリーソフトはあったのですが、それぞれに送れる方法が
知りたいです。(添付ファイルは 1つのフォルダにあるとして)

100件位、あるので毎回 通常のメールに添付するのが面倒なのです。
宜しくお願いします。

Aベストアンサー

エクセルのVBAで Outlookをコントロールする事例です。
仮に D8セルの添付するファイルを保存しているパスを入れておきます。

13行目以下の
B列に メールアドレス
C列に 件名
D列に 本文
F列に ファイル名 をいれて準備します。

Sub ボタン1_Click()
Dim myOLApp As Object
Dim myDATA As MailItem
Dim GYOU As Long
'### OUTLOOKのオブジェクトを作成後、メールを新規作成する。
Set myOLApp = CreateObject("Outlook.Application")
For i = 13 To Range("B65536").End(xlUp).Row
Set myDATA = myOLApp.CreateItem(olMailItem)
'(添付ファイルの追加)
myDATA.Attachments.Add Range("D8").Value & "\" & Range("F" & i).Value & ".xls"
'(宛先のアドレス、件名、本文の追加)
myDATA.To = Range("B" & i).Value
myDATA.Subject = Range("C" & i).Value
myDATA.Body = Range("D" & i).Value
'作成したメールアイテムの送信
myDATA.Send
Next
Set myDATA = Nothing
Set myOLApp = Nothing
End Sub

エクセルVBAでOlutLookのVBAを作動させるには
VBエディターの ツール=>参照設定 で Micrsoft Loutlook 10.0 Object Library にチェックを入れておきます。

エクセルのVBAで Outlookをコントロールする事例です。
仮に D8セルの添付するファイルを保存しているパスを入れておきます。

13行目以下の
B列に メールアドレス
C列に 件名
D列に 本文
F列に ファイル名 をいれて準備します。

Sub ボタン1_Click()
Dim myOLApp As Object
Dim myDATA As MailItem
Dim GYOU As Long
'### OUTLOOKのオブジェクトを作成後、メールを新規作成する。
Set myOLApp = CreateObject("Outlook.Application")
For i = 13 To Range("B65536").End(xlUp).Row
Set myDATA...続きを読む

Q[VBA]CDOメッセージ送信エラー

CDOメッセージオブジェクトを使用し、EXCEL2010 VBAよりメール送信を実現したいのですが..
下記コードの .Sendを実行後にエラーメッセージ「[6]オーバーフローしました」が表示されます。
試行錯誤しておりますが..自力では解決できないため、皆様よりご教授賜りたく何卒よろしくお願い
申し上げます。
---------------------------------------------------------------------------------------------------------
Public Sub SendMail()
Dim objCDOMsg As New CDO.Message '/* CDOメッセージオブジェクト */

'// Dim objCDOMsg As Object '/* CDOメッセージオブジェクト */
'// Set objCDOMsg = CreateObject("CDO.Message")

With objCDOMsg
' /* メールサーバ設定 */
With .Configuration.Fields
.Item(CdoConfiguration.cdoSendUsingMethod) = CdoSendUsing.cdoSendUsingPort '/* 外部SMTP指定 */
.Item(CdoConfiguration.cdoSMTPServer) = "111.222.333.44" '/* SMTPサーバ名 */
.Item(CdoConfiguration.cdoSMTPServerPort) = 25 '/* ポート№ */
.Item(CdoConfiguration.cdoSMTPConnectionTimeout) = 60 '/* タイムアウト */
.Item(cdoSMTPAuthenticate) = cdoAnonymous '/* SMTP認証なし */
.Item(CdoConfiguration.cdoLanguageCode) = CdoCharset.cdoShift_JIS '/* 文字セット */
.Update
End With

' /* メール編集 */
.To = "test@aaa-bbb.com" '/* 宛先 */
.CC = "test@aaa-bbb.com" '/* CC */
.From = "test@aaa-bbb.com" '/* 送信者 */
.Subject = "Test mail" '/* 件名 */
.TextBody = "メール本文" '/* メール本文 */
.AddAttachment "C:\Users\term\Desktop\TempFile.txt" '/* 添付ファイル */

' /* メール送信 */
.Send <------------------- このコードをステップ実行後にエラーメッセージ表示
End With

' /* オブジェクト変数解放 */
Set objCDOMsg = Nothing
End Sub
---------------------------------------------------------------------------------------------------------
[実行環境]
・Windows 7 Professional SP1
・EXCEL 2010 (Ver. 14.0.7165.5000)
・Outlook 2010(Ver. 14.0.7165.5000)

[補足]
・Outlook セキュリティセンターの設定
DEP有効、マクロ警告、プログラムアクセス警告
・Outlook アカウント種類
POP/SMTP

以上、宜しくお願いいたします。

CDOメッセージオブジェクトを使用し、EXCEL2010 VBAよりメール送信を実現したいのですが..
下記コードの .Sendを実行後にエラーメッセージ「[6]オーバーフローしました」が表示されます。
試行錯誤しておりますが..自力では解決できないため、皆様よりご教授賜りたく何卒よろしくお願い
申し上げます。
---------------------------------------------------------------------------------------------------------
Public Sub SendMail()
Dim objCDOMsg As New CDO.Message '/* CD...続きを読む

Aベストアンサー

こんにちは。

正直な話、もうCDOを使ったのは古い昔の話なので、このエラーの要因というのは、コードそのものよりも、固有の設定に問題があるように思います。

自分で作ってみました。
ご質問のコードを元に、googleを使って自分自身用に作ってみました。
以下のコードで送られることは確認しましたが、ここ最近、Google は、メールの設定が異様に厳しくなりましたので、Google自体のメール・セキュリテイの設定を下げないとGoogleからは送信されませんが、コード自体は問題なさそうです。

>「転送においてサーバーに接続できませんでした」
このエラーメッセージは、Configuration のミスで発生しました。正しく直したら、通りました。

細かい問題は、相手のメールサーバーとの関係ですから、設定を細かく見ていくしかないと思います。

'//
Const myAddress As String ="********"
Const myPSW As String = "********"

Public Sub SendMail2()
Dim objCDOMsg As CDO.Message ' New CDO.Message '/* CDOメッセージオブジェクト */do.
Set objCDOMsg = New CDO.Message
'// Dim objCDOMsg As Object '/* CDOメッセージオブジェクト */
'// Set objCDOMsg = CreateObject("CDO.Message")
On Error GoTo ErrHandler
With objCDOMsg
  ' /* メールサーバ設定 */
  With .Configuration.Fields
    .Item(CdoConfiguration.cdoSendUserName) = myAddress '/*ユーザー名*/
    .Item(CdoConfiguration.cdoSendPassword) = myPSW  '/*パスワード*/
    .Item(CdoConfiguration.cdoSendUsingMethod) = CdoSendUsing.cdoSendUsingPort '/* 外部SMTP指定 */
    .Item(CdoConfiguration.cdoSMTPConnectionTimeout) = 100 '/* タイムアウト */
    .Item(CdoConfiguration.cdoSMTPServer) = "smtp.gmail.com" ' /* SMTPサーバ名 */
    .Item(CdoConfiguration.cdoSMTPServerPort) = 465 '/* ポート№ */
    .Item(CdoConfiguration.cdoSMTPAuthenticate) = cdoBasic
    .Item(CdoConfiguration.cdoSMTPUseSSL) = True
    .Item(CdoConfiguration.cdoLanguageCode) = CdoCharset.cdoShift_JIS '/* 文字セット */
    .Update
  End With
  
  ' /* メール編集 */
  .To = "xxxxxx@yyyyy.co.jp" '/* 宛先 */
  .From = "******@gmail.com" '/* 送信者 */
  .Subject = "Test mail" '/* 件名 */
  .TextBody = "MainMessage" & vbNewLine & Date & " " & Time & vbNewLine & _
   "This is TesMail" '/* メール本文 */
  '.AddAttachment ThisWorkbook.Path & "\myTest.Txt" ' "C:\Users\term\Desktop\TempFile.txt" '/* 添付ファイル */

  ' /* メール送信 */
  .Send '<------------------- このコードをステップ実行後にエラーメッセージ表示
End With
ErrHandler:
If Err.Number <> 0 Then
   MsgBox Err.Number & " :" & Err.Description
   'Debug.Print Err.Number & " :" & Err.Description
End If
' /* オブジェクト変数解放 */
Set objCDOMsg = Nothing
End Sub

こんにちは。

正直な話、もうCDOを使ったのは古い昔の話なので、このエラーの要因というのは、コードそのものよりも、固有の設定に問題があるように思います。

自分で作ってみました。
ご質問のコードを元に、googleを使って自分自身用に作ってみました。
以下のコードで送られることは確認しましたが、ここ最近、Google は、メールの設定が異様に厳しくなりましたので、Google自体のメール・セキュリテイの設定を下げないとGoogleからは送信されませんが、コード自体は問題なさそうです。

>「転送においてサー...続きを読む

Q以下のFor Nextで「Nextに対するForがありません」とコンパ

以下のFor Nextで「Nextに対するForがありません」とコンパイルエラーが出ます。どこが悪いのか教えてください。

Sub 品番検索()
'
' Macro1 Macro
'
Application.Goto Reference:="Macro1"
'
Dim hinban As String
Dim y, n
y = 16
hinban = InputBox("品番を入力してください。", "品番入力", "ABC-123")
For n = 2 To 200
A0 = Worksheets("履歴RW").Cells(2, n)
A1 = Worksheets("履歴RW").Cells(2, n + 1)
A2 = Worksheets("履歴RW").Cells(2, n + 2)
A3 = Worksheets("履歴RW").Cells(2, n + 3)
A4 = Worksheets("履歴RW").Cells(2, n + 4)
A5 = Worksheets("履歴RW").Cells(2, n + 5)
A6 = Worksheets("履歴RW").Cells(2, n + 6)
A7 = Worksheets("履歴RW").Cells(2, n + 7)
A8 = Worksheets("履歴RW").Cells(2, n + 8)
A9 = Worksheets("履歴RW").Cells(2, n + 9)
If hinban = A0 Then
Worksheets("発注FM").Cells(y, 2) = A0
Worksheets("発注FM").Cells(y, 3) = A1
Worksheets("発注FM").Cells(y, 4) = A2
Worksheets("発注FM").Cells(y, 5) = A3
Worksheets("発注FM").Cells(y, 6) = A4
Worksheets("発注FM").Cells(y, 7) = A5
Worksheets("発注FM").Cells(y, 8) = A6
Worksheets("発注FM").Cells(y, 9) = A7
Worksheets("発注FM").Cells(y, 10) = A8
Worksheets("発注FM").Cells(y, 11) = A9
y = y + 1
Else
Next
End Sub

以下のFor Nextで「Nextに対するForがありません」とコンパイルエラーが出ます。どこが悪いのか教えてください。

Sub 品番検索()
'
' Macro1 Macro
'
Application.Goto Reference:="Macro1"
'
Dim hinban As String
Dim y, n
y = 16
hinban = InputBox("品番を入力してください。", "品番入力", "ABC-123")
For n = 2 To 200
A0 = Worksheets("履歴RW").Cells(2, n)
A1 = Worksheets("履歴RW").Cells(2, n + 1)
A2 = Worksheets("履歴RW").Cells(2, n + 2)
...続きを読む

Aベストアンサー

「Else」を「End If」に変える。

QMSDN Subscriptions Libraryとは?

MSDN Subscriptions Libraryと通常のMSDN Libraryは
いったいどこが違うのですか?
MSDN Subscriptions LibraryというCD、DVDを
ネットでよく見かけますが、それをインストールすると
どんなメリットがあるのですか?
ちなみにMSDN Libraryは開発用のヘルプですよね。
よろしくお願い致します。

Aベストアンサー

ここで言っている MSDN Library とは開発ツールを導入した時にインストールするモノのことですかね。
MSDN Subscriptions Library てのは MSDN Subscriptions の会員向けに定期的に提供される MSDN Library です。
つど内容が変更・追加されます。
上書き的にインストールするか並行(追加)インストールするか選べたような気がします。(インストールしてない・・・)


人気Q&Aランキング

おすすめ情報