環視フォルダ内に新しく追加されたファイルをメールで送信する設定をしています。
以下のバッチを使用しているのですが、pdfファイルのみを送信したいのですがどのように記述すればよいでしょうか?
Dim Fs, strPath, Fl, F, NewFile, NewFileFP, OutF
Set Fs = CreateObject("Scripting.FileSystemObject")
strPath = "C:\Users\マイPC\Desktop\監視ファイル送信\"
NewFile = ""
Set Fl = Fs.GetFolder(strPath)
For Each F In Fl.Files
If F.Name > NewFile Then
NewFile = F.Name
End If
Next
NewFileFP = Fl & "\" & NewFile
Dim WshShell, BtnCode
Set WshShell = WScript.CreateObject("WScript.Shell")
Set objShell = CreateObject("Wscript.Shell")
Set oMsg = CreateObject("CDO.Message")
oMsg.From = "ファイル送信元 <差し出す側のメールアドレス>" '送信元
oMsg.To = "送信する宛先メールアドレス" '送信先
oMsg.Bcc = "宛先サブメールアドレス"
oMsg.Subject = "新着ファックスの送信" '件名
oMsg.TextBody = "新着FAXファイルをお送りします。" 'メール本文
oMsg.AddAttachment NewFileFP '添付
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/s … = 2
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/s … = "メール送信サーバー"
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/s … = 587
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/s … = 1
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/s … = "アカウント名"
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/s … = "パスワード"
oMsg.Configuration.Fields.Update
oMsg.Send
Set OutF = Fs.OpenTextFile("C:\FileSend\Fsend.log",8)
OutF.WriteLine "Date[" & date & "] Time[" & time & "] File[" & NewFile & "]"
OutF.Close
Fs.DeleteFile NewFileFP
objShell.Popup "メール送信しました。", 0, "送信完了", 0
Set Fs = Nothing
Set Fl = Nothing
Set OutF = Nothing
No.2ベストアンサー
- 回答日時:
ANo.1です。
フォルダ監視(フォルダに新しいファイルが配置されたことを検知する部分)は別途プログラムで行っていて、質問のスクリプトは新しいファイルが検知されたときに呼び出されるということで良いですか。それなら、最初の
For each F In Fl.Files
~
Next
の部分の中身が変で、この~の中に、ファイルFがpdfか否かの判定とpdfだった場合のメール送信の全てを記述するべきです。例えば以下のように。
’ ここから
If Fs.GetExtensionName(F.Name)="PDF" Then
NewFileFP = Fl & "\" & F.Name
' ここにメール送信処理
End If
Fs.DeleteFile F.Name
' ここまで (動作未検証)
なお、拡張子によって処理を分ける記述例は下記に。
http://bayashita.com/p/entry/show/75
ちなみにフォルダ監視もVBSで記述することはできます。その場合はWMI Serviceを利用してファイル生成を監視するのが効率的ですが、Windowsにある程度詳しくないと書くのが難しいです。
ご丁寧にコードを書いていただきありがとうございました。
組み入れてみたのですが、うまく動作しませんでした。
やはり素人にはハードルが高すぎるので、あきらめます。
ありがとうございました。
No.1
- 回答日時:
ちょっと分からないですが質問のリストだと、フォルダに複数のファイルが追加されたとき名前順で最も大きいファイルだけが処理されますよね。
後のファイルは?あとFileSystemObjectを使っているのは何故ですか。ファイル取得だけならDirで十分ですし、Dirならワイルドカード指定して.pdfのみ抽出とか簡単ですけど。
また最後にメールしたファイルを削除していますが、.pdf以外のファイルは削除するのか残すのかどちらにしたいのですか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) VBA メール送信済で実行されるはずが、実行されない時があります。 2 2023/02/02 14:05
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) outlook マクロが終了しません。 1 2022/09/02 11:14
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- 英語 【大至急】Hellotalk公式からメールの返信が来ました 1 2022/04/18 17:53
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Gmailで頂いたメールにファイル...
-
BCCで送られてきたメールで添付...
-
エクセルの添付ファイルが開け...
-
Androidスマホ(AQUOSセンスライ...
-
このファイルの閲覧方法は ???
-
Thunderbirdのメールを復旧でき...
-
EdMaxからOutlookへメールを移...
-
パワーポイントが入っていない...
-
メールに添付されたWordファイ...
-
メールに添付されたファイルの...
-
添付ファイル名の最後に自動的...
-
メールに勝手に謎のファイルが...
-
Outlook (メール)の添付ファイ...
-
メールで画像を送信したら、勝...
-
サンダーバードでフォルダごと...
-
yahooメールは受信箱は一万件以...
-
ファイルの一部だけを添付して...
-
Yahooメールに添付されて送られ...
-
リンク先ショートカットアイコ...
-
Googleフォームを間違ってけし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Gmailで頂いたメールにファイル...
-
BCCで送られてきたメールで添付...
-
メールに添付されたファイルの...
-
このファイルの閲覧方法は ???
-
添付ファイル名の最後に自動的...
-
メールに添付されたWordファイ...
-
拡張子.exe_を.exeに変更したい…
-
データをメールで送る方法
-
Mailのemlx形式ファイルをemlに...
-
エクセルの添付ファイルが開け...
-
メールに添付したHTMLファイル...
-
ガラケーからスマホへのメール...
-
メールの添付ファイルについて
-
EdMaxからOutlookへメールを移...
-
メールでFinaleの楽譜を送信で...
-
THUNDERBIRDの添付ファイル
-
パワーポイントが入っていない...
-
携帯からメールでパソコンに写...
-
監視フォルダ内のPDFファイ...
-
Outlook Express - 添付ファイ...
おすすめ情報
実を言うと、VBSについては全くわからないド素人です。WEBサイトをあちこち参考にして引用して使っています。すみません。
FAXが届くとPCに保存されるようになっていて、保存されるフォルダを監視し、新しく追加されたファイルを一旦デスクトップの別フォルダへコピーします。その別フォルダを「監視ソフト」を使って監視し、今回質問したバッチを動かすというしくみにしています。
FAXが来た時に、席をはずしていると気が付かないことがあるので、メールで送信することにしたのです。
それで、FAXが「ti」という拡張子のついたファイルからPDFに変換しているらしいのです。別フォルダへ追加ファイルがコピーされたときに、「ti」のファイルもコピーしてしまって、そのファイルとPDFと二つのファイルがメールで送信されることとなってしまっています。なので、PDFだけ送信するようにしたいというわけなのです。
参考にしたサイトは下記です。
https://plaza.rakuten.co.jp/mscrtf/diary/2012062 …
https://plaza.rakuten.co.jp/mscrtf/diary/2012062 …
https://note.chiebukuro.yahoo.co.jp/detail/n8385
さすがにコマンドを自分で考えるのは難しいです。お力をお借りできれば幸いです。
忘れていました。デスクトップの別フォルダにコピーされたFAXデータはメール送信ができたらすべて削除されるようにするのは、変わらずそのままで大丈夫です。