dポイントプレゼントキャンペーン実施中!

こんにちは。

以前、このような質問があり、
自分でもこれを元にプログラムを書いてみました。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1652780

問題は、添付するファイルの名前が変わるので
どうすれば毎回変化する名前のファイルが
きちんと添付できるかというのが質問です。

アスタリスク(*)はVBAでは使えないとのこと。
正規表現?というのを使用するのでしょうか?
※下のAttFile = "D:\教えて01.txt"を例にすると「教えて02,教えて03・・・」と
 毎回ファイル名が変わるものとして下に書きました。
 ここの記述はどのようにすればよいのでしょうか?

環境はWindowsXP
    Office2003
    BASP21というのを使用しています。

Sub SendMail()
Dim B21Obj, MailContents
Dim Server, Mailto, MailFrom, Title, Body, AttFile
If Range("A1") = "" Then GoTo Fin
If Range("A2") = "" Then GoTo Fin
If Range("A3") = "" Then GoTo Fin
Set B21Obj = CreateObject("basp21")
Server = "***.***.com" 'サーバー名(ご自分のSMTPサーバーに書換え)
Mailto = Range("A1").Value & vbTab & "bcc" & vbTab & "***@***.ne.jp" '宛先
MailFrom = "***@***.com" '差出し人(ご自分のメールアドレスに書換え)
Title = Range("A2").Value 'タイトル
Body = Range("A3").Value '本文
AttFile = "D:\教えて01.txt" '添付書(01,02,03・・・と毎回変わります)
MailContents = B21Obj.SendMail(Server, Mailto, MailFrom, Title, Body, AttFile)
Fin:
Set B21Obj = Nothing
Range("A1").Select
End Sub

A 回答 (3件)

>どのように組み込むか



単純に・・・
Sub SendMail()
  :
AttFile = "D:\教えて" & Format(Now(), "yymmdd") & Format(Range("L10").Value) & ".txt"
Name "D:\教えて01.txt" As AttFile
  :
End Sub
    • good
    • 0
この回答へのお礼

hana-hana3様!

昨日につづきご回答ありがとうございました!
動作も上手くいきました!!

この4月より会社で部署が変わり
このVBAをやることになりまして・・・
VBA歴10日余り・・・
この感謝を忘れません!

皆様ありがとうございました!

お礼日時:2006/04/11 11:18

単純に 01 部分を指定したいなら、そこを変数にするだけです。


Sub Test1()
Dim myNum
 myNum = Application.InputBox("D:\教えて?.txt", "指定", Type:=2)
 If myNum <> False Then MsgBox "D:\教えて" & myNum & ".txt"
End Sub

やはりファイルを選ばせるのが普通でしょうか、、、
Sub Test2()
Dim fName
 ChDrive "D:\": ChDir "D:\"
 fName = Application.GetOpenFilename("テキスト ファイル (*.txt), *.txt")
 If fName <> False Then MsgBox "選択されたファイル: " & fName
End Sub
    • good
    • 0
この回答へのお礼

papayuka様
ご回答ありがとうございました。
test2は理想的です!

元のSub SendMail()に
どのように組み込むか
ご教授願えないでしょうか?

よろしくお願いいたします!!

お礼日時:2006/04/11 08:50

>どうすれば毎回変化する名前のファイルがきちんと添付できるかというのが質問です



毎回変化する理由は?
変化したファイル名を取得する手段は?
等、ファイル名を取得できるタイミング(方法)の有無。

ファイル名の取得には、
1.DIR関数でフォルダの全ファイル名を取得
2.ファイルダイアログでファイルの選択
3.セルに記述
など、いくつかの手段があります。

この回答への補足

hana-hana3様
早速のご回答ありがとうございました!

>毎回変化する理由は?
>変化したファイル名を取得する手段は?
具体的には下のようなものを先に書いて、あえてファイル名を変えてから、メール送信をしたいと考えています。

Sub rename()
Name "D:\教えて01.txt" As "D:\教えて" & Format(Now(), "yymmdd") & Format(Range("L10").Value) & ".txt"
End Sub

恐れ入りますが、
よろしくお願いいたします。

補足日時:2006/04/11 07:56
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A