[リストへもどる]
一括表示

投稿時間:2002/11/21(Thu) 11:56
投稿者名:スナフキン
URL :
タイトル:
どなたか教えて下さい!
こんにちは。スナフキンと申します。スナフキンですが女の子です。
どなたか教えて下さい!

VBでやりたい事は。。。

@あるパラメータにより仕様書をどのメーカーに発注するか判別。
 (メールにて発注します。パラメーターを入力するフォームは作成済です。)
      ↓
A既存のExcel仕様書原紙をOpenし、仕様書を作成。保存。
      ↓
B@で判別したメーカーに作成したファイルを添付してメールを送付。
(メール送信するサンプルは頂きました。サンプルはファイル添付する機能は有りません。)

=================================================
Private Sub Command1_Click()

    With sckInternetMail
        
        If .State <> sckConnected And .State <> sckOpen Then
            .Connect "_____", 25            'メールサーバ指定
            Do While .State <> sckConnected
                DoEvents
            Loop
        End If
        
        Dim strMessage As String
        
        strMessage = "_____" & vbCrLf  'Helo メールサーバ記述
        .SendData strMessage
        WaitResponse
        
        strMessage = "MAIL FROM:<" & JisConv(txtFrom) & ">" & vbCrL
        
        .SendData strMessage
        WaitResponse
        
        strMessage = "RCPT TO: <" & JisConv(txtTo) & ">" & vbCrLf
        .SendData strMessage
        WaitResponse
        
        strMessage = "DATA" & vbCrLf
        .SendData strMessage
        WaitResponse
        
        strMessage = "SUBJECT: " & JisConv(txtSub) & vbCrLf  'タイトル(題目)
        strMessage = strMessage & vbCrLf
        strMessage = strMessage & JisConv(txtCom) & vbCrLf   '内容
        strMessage = strMessage & "." & vbCrLf
        .SendData strMessage
        WaitResponse
        
        .Close
        Do While .State <> sckClosed
            DoEvents
        Loop
    End With

Exit Sub

End Sub

Private Sub WaitResponse()
Dim strResponse As String
    strResponse = ""
    Do While strResponse = ""
        sckInternetMail.GetData strResponse
        DoEvents
    Loop
End Sub

Private Sub GetReponse()
Dim strTemp As String
    
    strTemp = ""
    Do While strTemp = ""
        sckInternetMail.GetData strTemp
        DoEvents
    Loop
End Sub
=================================================
とこんな感じです。


こんな事は出来ますか!?

どなたか教えて頂ける方、いらっしゃいませんか!?
どうぞ。。。宜しくお願い致します。(ペコリ)

投稿時間:2002/11/21(Thu) 12:50
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: どなたか教えて下さい!
> どなたか教えて頂ける方、いらっしゃいませんか!?
> どうぞ。。。宜しくお願い致します。(ペコリ)
「何を教えて欲しいのか」がわからなかったので、とりあえず、
「VBで実現可能かどうかを知りたい」という質問だと解釈して回答します。


> こんな事は出来ますか!?
コード中にあった sckInternetMail というのが何の事かわかりませんが、
お望みの仕様を満たすプログラムをVBで作成すること自体は可能です。
ファイルを添付したメールを送信するプログラムを書く事もできますし、
Excelファイルを作成・編集・保存するような物も作れます。

なお、最近のExcelであれば、ワークブックをメール送信するような機能が
Excel自体に実装されているので、VBではなく、Excel VBAで作成するというのも
一つの方法です。


> 既存のExcel仕様書原紙をOpenし、仕様書を作成。保存。
オートメーション、もしくは DDE という物を使えば、
Excelファイルを作成する事ができます。ただしその為には、
実行環境に Microsoft Excel がインストールされている必要があります。

もし、Excelの入っていない環境で Excelファイルを作成したいのであれば、
「Excelクリエーター」などのActiveXコンポーネントに頼る事になるでしょう。


> (メール送信するサンプルは頂きました。サンプルはファイル添付する機能は有りません。)
メール送信機能を自力実装する事もできますが、SMTPやMIMEに関するRFC仕様を
全く知らないのであれば、添付ファイルを扱えるような、市販/Freesoft/Sharewareの
メール送信モジュールを使った方が無難かと思いますよ。
# 例えば、「BASP21」とか、先に書いたExcelの機能とか。。。

投稿時間:2002/11/21(Thu) 13:50
投稿者名:スナフキン
URL :
タイトル:
Re^2: どなたか教えて下さい!
早速のReplayありがとうごさいます☆
こんなに早くReplayして頂けてとても感謝致しております☆

> なお、最近のExcelであれば、ワークブックをメール送信するような機能が
> Excel自体に実装されているので、VBではなく、Excel VBAで作成するというのも
> 一つの方法です。

 私のPCはWindoew98,Excle2000がインストールされています。
 私は、ExcelVBAである程度はマクロを組む事が出来ます。
 上記にも書かれて有りますExcelVBAでメール送信するコードを
 ヘルプで調べました。

 ActiveWorkbook.SendMail Recipients:="宛先", Subject:="件名"

 上記ですと、OutlookExpressが起動され添付ファイル付きで、宛先、件名を
 指定してメール送信が出来る様です。

 ですがこのコードですと、本文は指定できません。。。
 出来れば、本文も指定してメールを送りたいのです。。。
 調べてみたのですが、どうしても解らずにいます。
 ですのでVBで何とかならないものかと投稿致しました。

 OutLook2000版のメール送信マクロは作成出来たのですが。。。(下記に有ります。)

 私はある企業に勤務していますが、どうしてもOutLookExpres
 を使用してとの事なので。。。

 どうかお力をお借り出来ないでしょうか!? 宜しくお願い致します。(ペコリ)

Public Sub Mail_transmission() 'メール送信(OUTLOOK2000)
  
'*** OUTLOOKを使用してMailを送る ***

Dim OLApp As Object
Dim Data As MailItem

Dim product_name
Dim Mail_Address

product_name = "AAAAA"
Mail_Address = "BBBBB"

'*** OUTLOOKのオブジェクトを作成後、Mailを送信する ***
Set OLApp = CreateObject("outlook.Application")
Set Data = OLApp.CreateItem(olMailItem)
Data.Display

'*** Mailの宛先・題名・本文・添付ファイルを設定する ***
Data.To = Mail_Address
Data.Subject = "新規作成をお願い致します。" & product_name
Data.Body = "いつも大変お世話になっております。" + Chr(13) + "宜しくお願い致します。"
Data.Attachments.Add ThisWorkbook.Path + "\" + ThisWorkbook.Name
Data.CC = Mail_Address

'*** Mail送信 ***
Data.Send

'*** Reste ***
Set OLApp = Nothing
Set Data = Nothing

End Sub

投稿時間:2002/11/21(Thu) 14:13
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
添付ファイルの送信方法
質問の題名を変更させていただきました。

> こんなに早くReplayして頂けてとても感謝致しております☆
投稿時に「図表モード」を選択してもらえると、見やすくなります。

>  ですのでVBで何とかならないものかと投稿致しました。
VBの「MAPISendMailコントロール」の「AttachmentPathNameプロパティ」を使うとか。

> OutLook2000版のメール送信マクロは作成出来たのですが。。。(下記に有ります。)
(OutLookではなく、Outlookですね。)

> 私はある企業に勤務していますが、どうしてもOutLookExpres
> を使用してとの事なので。。。
VBで送信して、それをOutlookExpressで読めれば良いのでしょうか?
それとも、送信作業自体もOutlookExpressから行わせたい、という事でしょうか?

投稿時間:2002/11/22(Fri) 09:24
投稿者名:スナフキン
URL :
タイトル:
Re: 添付ファイルの送信方法
再Replayありがとうございます。(ペコリ)

> VBの「MAPISendMailコントロール」の「AttachmentPathNameプロパティ」を使うとか。

 ありがとうごさいます。調べてみます。

> VBで送信して、それをOutlookExpressで読めれば良いのでしょうか?
> それとも、送信作業自体もOutlookExpressから行わせたい、という事でしょうか?

 後者の方で、送信作業自体もOutlookExpressから行わせたいです。
 お時間のあるときで結構ですので、宜しかったらReplay下さい☆