• 締切済み

VBAでPDFファイルをメールに添付する

下記のVBAでエクセルのファイルをpdfに変換して名をつけ保管する、と同時に自動的にメールへ添付したいのですがうまくいきません 「A」でエクセルをpdfに変換して名をつけて保管することができます。 「B」でメールを開き件名の挿入までできます。 「A」のpdfファイルを「B」のメールに添付するプログラムを教えて下さい。 windows7、.エクセルは2010です 「A」 Sub メール() ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "C:\Users\nakasima\Documents\見 積\見積書控\" & Range("O4").Value & ".pdf",_ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ False 「B」 Shell "C:\Program Files\Windows Live\Mail\wlmail.exe /mailurl:mailto:?subject=_ 見積書送付の件" End Sub

みんなの回答

  • x-1919
  • ベストアンサー率52% (91/173)
回答No.1

Windows Live メール限定で考えず CDO で送信したほうが早くないですかね。 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_800_080.html BASP21 を使うって手もあるし。

関連するQ&A

  • VBA  PDF ファイル名をセルからつける

    ExcelでPDFを出力するときに、たとえばB1のセルに入力されているものを、ファイル名の一部として出力する方法がわかりません。 例えばB1に「資料1」と入力されていた場合で、PDFのファイル名を[TEST資料1.pdf]にしたい場合、下記に何かを足すだけでできますでしょうか? ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "I:\補TEST\TEST.pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ True End Sub できれば、解説もいただけると助かります。よろしくお願いします。

  • VBAでPDFを保存する

    Excel2013です。VBAでPDFで保存するコードを書きたいのですが、通常の名前をつけて保存のように保存先とファイル名をその都度変更できるウィンドウを出したいのですが、どのようにすればいいのでしょうか?保存先とファイル名をあらかじめ指定する方法はネット検索でヒットするのですが、そうでない方法が探せません。 以下は現在のコードです。 Sub PDF保存() ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "c:\\xxx.pdf", Quality:= _ xlQualityStandard, IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False End Sub

  • Excelマクロで1シートの中身変えて一冊のPDF

    ExcelのPDF出力で教えてください シート1に帳票テンプレートを作りまして、連番印刷しておりました。 雰囲気でこんな感じで Sub Macro1() ' Macro1 印刷 Dim i As Integer For i = 1 To 10 Range("a1").Value = Format(i, "0000") Sheets(1).PrintOut Next End Sub #例として1~10としましたが、本当は別シートの台帳の連番で #次は11から10枚とか50枚とか変数で指定してますです。 これをPDF出力へと変えようとして次のように変えようと考えました Sub Macro2() ' Macro2 PDF Dim FilePath As String FilePath = "C:\Temp\" Dim FileName As String Dim i As Integer For i = 1 To 10 Range("a1").Value = Format(i, "0000") FileName = "Temp" & i & ".pdf" Sheets(1).ExportAsFixedFormat Type:=xlTypePDF, _ FileName:=FilePath & FileName, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=False, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False Next End Sub で、ここからが相談なんですが、これだとPDFファイルが10個出来ますよね? そうではなく、一冊の10ページのtemp.pdfとしたい場合はどのようにしましょうか? 一旦ズラズラズラーとPDF作ってからのPDF連結ソフト立ち上げての 手作業とかじゃ面倒なので、全自動でVBA処理で出来ればいいなと思っています。 Sheets(1)に0001作ってSheets(2)に複写 Sheets(1)に0002作ってSheets(3)に複写 Sheets(1)に0003作ってSheets(4)に複写 ・・・ Sheets(2)~Sheets(11)まで選択してあげてのPDFエクスポート Sheets(2)~Sheets(11)削除 という流れを構想してみたのですが 他にも、こうすると簡単だよとかいうアドバイスなどありましたら ぜひともご教示くださいませ♪ Sheets(Array("Sheet2", "Sheet3",・・・)).Select ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF~ ActiveWindow.SelectedSheets.Delete という感じ 一挙にいきなりいっぱいシート生成していくのも見た目びっくりだし 配列にシート名入れていくのも面倒だし、どうしてやるのがベターなのかな?と 思案中です

  • Excel2007 VBA で2ページ目PDF

    印刷をする場合なら 例えば、印刷範囲がA1:V60 で1ページだったとすれば A61:V120は2ページ目で印刷されると思います。 もちろん、これはペーパーに印刷した場合です。 これをVBAでPDFにする場合、PDFにしたい範囲が A1:V60 だけなら、1ページとしてPDF化されます。 以下のようなコードで ActiveSheet.ExportAsFixedFormat xlTypePDF, "e:\hogehoge.pdf", xlQualityStandard, True, True またPDFにしたい範囲がA1:V120の時は上記trueをfalseにすることで 1ページに収めたり、A1:V60だけPDF化したりはできます。 そこで、やりたいことですが、 1つのPDFファイルに2ページ 1ページ目はA1:V60 2ページ目はA61:V120 としたいのです。 どなたか教えて頂けると助かります。

  • 違うシートのデータを1つのPDFファイル保存VBA

    Sub データPDFファイル化() If MsgBox("ファイルをPDF化し過去データとして保存します。よろしいでしょうか?", vbYesNo) = vbNo Then End End If If Range("L2").Value <> "" Then Dim Fn As String Fn = Format(Range("L2"), "yyyy年m月d日") & ".pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:="D:\フォルダB\過去記録データ保存用フォルダ\データ\" & Fn Else MsgBox "セルL2にファイル名が入力されていません。", vbExclamation End If End Sub この様なコードがあります。エクセル2003では使用出来ないのでエクセル2007以降の使用です。 これはシート名「A」にコマンドボタンを設置し、そのコマンドボタンを押すとPDF化して保存するマクロです。 そこで質問ですがコマンドボタンを押すとシート名「A」と隣にあるシート名「B」をまとめてPDFファイルで保存する方法はどの様にすれば良いのでしょうか? PDF化した際は1ページ目がシート名「A」で2ページ目がシート名「B」を表示させ、名前はシート名「A」のL2(yyyy年m月d日)で保存します。

  • VBEでの引数を書き方について

    VBE の pdf の出力をする構文の書き方についての質問です。 構文は ExportAsFixedFormat (Type, FileName, Quality, IncludeDocProperties, IgnorePrintAreas, From, To, OpenAfterPublish, FixedFormatExtClassPtr) かと思いますが, Webサイトなどで,調べていると Sheets(ShtName).ExportAsFixedFormat Type:=xlTypePDF, _ FileName:=MyPath & "\" & Sheets(ShtName).Name & ".pdf" のように書かれていて,引数の部分に( ) が使われていません。 なぜでしょうか?

  • マクロの動作不良

    エクセルに下のようなボタンマクロを設定しています。 内容は、inpシートに設定している開始番号と終了番号を入力するとその番号分だけreceptシートのでーたを入れ替えてPDFで吐き出すというコードです。 問題なく動いていたのですが、先日、PCを入れ替えた際に確認したところ、pdfが出力されなくなりました。特にエラーはでることなく完了するのですがファイルができません。 変な質問ですが、原因がつかめず困っております。 このエクセルファイルは旧PCでも、新PCでもSDカードに保存して使用しております。 宜しくお願い致します。 Sub ボタン6_Click() Dim s As Long Dim e As Long Dim i As Long Dim outputFilePath As String Dim outputFileName As String On Error Resume Next s = InputBox("開始No.を入力して下さい。") If s = 0 Then Exit Sub e = InputBox("終了No.を入力して下さい。") If e = 0 Then Exit Sub ' PDFの保存先フォルダを指定する outputFilePath = Environ("USERPROFILE") & "\Desktop\" For i = s To e ' 出力するファイル名を指定する outputFileName = "recept_" & i & ".pdf" ' 対象の番号を設定する Worksheets("Inp").Range("C1").Value = i ' PDF出力を行う With Worksheets("Recept").Range("A36:J74") .ExportAsFixedFormat Type:=xlTypePDF, _ fileName:=outputFilePath & outputFileName, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False End With ' 作成したファイル名を表示する MsgBox "PDFファイルを作成しました: " & outputFilePath & outputFileName Next i End Sub

  • メールの添付ファイルのPDFがエクセルに換わる

    メールの添付ファイルのPDFが開くとエクセルにかわり文字ばけしています。 7.05では、エラーメッセージでていたので、アンインストールし6.0に入れ替えました。 でも、添付のPDFが開きません。

  • PDFファイルを添付して下さいと言われました

    お客さんにとあるHPのアドレスをコピーペーストしてメールしました。 そうするとPDFじゃないと閲覧できないと言われました。 PDFを添付してくれと、、、 どうやって変換すればよいのでしょうか?

  • メール添付ファイルの自動PDF化について

    ファイル添付されたメールに対し、受信側メールサーバーで次のような処理を考えています。 何か良いパッケージやサービスはないでしょうか? メールサーバ上に届いたメールに、ファイル(Officeなど)が添付されていた場合、 1)添付ファイルをPDF化し、別サーバ上へ格納する 2)メールから添付ファイルを削除し、メール本文にPDFファイルを参照できるURLを埋め込む 上記までをメールサーバ(または周辺サブシステム上)で自動処理したいです。 エンドユーザがPC側で参照する際は、メール本文内に埋め込まれたURLをクリックするだけでPDFファイルが開くようになるイメージです。 何か良い手段がありましたら、ぜひ教えてください。

専門家に質問してみよう