• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルでセル内容でpdfで保存しメールの起動まで)

エクセルでセル内容でpdfで保存しメールの起動まで

このQ&Aのポイント
  • エクセルでセル内容を指定してPDFファイルを保存し、メールを起動する方法について質問があります。
  • コードを入力してマクロを作成しているのですが、特定の条件でエラーが発生してしまいます。
  • 具体的には、ファイル名のセルを変更した際に「実行時エラー13、型が一致しません」というエラーが表示されます。

質問者が選んだベストアンサー

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.1

xFolder = PdfDir + "\" + xSht.Cells(15, 4).Text & xSht.Cells(1, 1).Text + ".pdf" とすると期待通り動くものと思います。

akira0723
質問者

お礼

早々のご回答ありがとうございます。 最初はどこが違うのか分かりませんでしたが、並べてみたらValueがTEXTになっていました。 最初のBookではC&Pの後数字だけ変えてValueのままで動いたのに不思議です。 このコードはこれからも汎用になるので、こんなレベルで使うには少し不安もありますが今更以前のように、(1)ファイル名をつけて、(2)所定のフォルダを探して、(3)pdfで保存して、(4)そのファイルをフォルダから探して、(5)メールに添付して、(6)シートごとに決まった宛名を入れて送信。。。はできないので非常に助かりました。 複数の人がこの作業をやるのですが、1人の人には上記の6つの作業はハードルが高く、1人の人は入力ミスが多いので本当に助かりました。

akira0723
質問者

補足

いつもお世話になっております。 早々かつ度々のご回答ありがとうございます。 朝一で「動かない」と指摘されて、最初のBookでは何度やっても問題なく動くことから、セル番地だけの問題と何度も試行錯誤していたのが全く無駄だったことに無力感、とすんなり解決したことに感謝です。

その他の回答 (2)

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.3

(2018/12/28)の時には、掲示サイトからそのままコピペしました。 よく見ると文字演算で + を使っていますね。 xFolder = PdfDir & "\" & xSht.Cells(15, 4).Text & xSht.Cells(1, 2).Text & ".pdf" とすれば、より確実です。  

akira0723
質問者

お礼

本当に色々ありがとうございます。 +は使用した覚えがなく、というかそんな知識がありません。 ここからコピペしたときに+になったハズです。 同じような現象で¥は\になるものと思いました。 ご回答コードを\のままマクロに貼り付けたら¥に戻ったと思います。 今確認したらコピペしたはずなのに、同じ行に+と&が混在していましたので原因(規則性)不明。 気持ち悪いので&に修正して(も)正常に動くことを確認しました。 残念ながら当方に\を+に変える知識はありません。(ご存知の通り)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

>質問ではA1+B1で質問しましたので(1,1)と(1,2)になっています。 >xFolder = PdfDir + "\" + xSht.Cells(1, 1).Value & xSht.Cells(1, 2).Value + ".pdf" >(15,4)と(1,1))に変更すると Range("D15") と Range("A1") ですね なら xFolder = PdfDir & "\" & xSht.Range("D15").Value & xSht.Range("A1").Value & ".pdf" 文字の連列は & で行いましょう MsgBox xFolder で連結後の確認もしてみましょう

akira0723
質問者

お礼

ご回答でうまく行くことが確認出来ました。 Range()で出来ないのはなぜ?が有ったので色々試行錯誤してみたところ、指定したセルが空白の場合はエラーになるようです? ちょっとした確認不足、大きな知識不足ですみませんでした。 上記訂正とお詫びします。

akira0723
質問者

補足

いつもお世話になっております。 早々のご回答に感謝!! 試してみたのですが赤●の中に×が入って400というエラー表示が出ます。 他のマクロではRange()を使っているので、Range()でも行けるということだと思いますが当方のことですので何かの手違いも。。。自信なし。 いずれにしても#No1さんのご回答で解決しましたのでこれ以上のお手数は結構です。

関連するQ&A

専門家に質問してみよう