質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

2466閲覧

VBAでエクセルをPDFで保存したい

OOOOO

総合スコア11

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2018/04/24 01:20

イタリックテキスト### 前提・実現したいこと
初めまして。VBA初心者です。
今回エクセルファイルをPDFで保存したいのですが、以下のようなエラーが発生します。
何度も試行錯誤しましたがうまくいきません。
なぜうまくいかないのか、エラーを手立てに修正してみてもわかりません。

お手数おかけしますが、もしお分かりの方がいればお力をお貸ししてほしいです。
よろしくお願いします。

発生している問題・エラーメッセージ

オブジェクト変数、またはウィンアクターwithブロック変数が足りません

使用言語

VBA

Sub outputPDF()

Dim date_now As Date
Dim fileName As String

'保存先フォルダパス&ファイル名
fileName = ThisWorkbook.Path & date_now & ".pdf"

Dim sheet1 As Worksheet
'sheet1.Activat
'ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, fileName:=fileName
sheet1.ExportAsFixedFormat Type:=xlTypePDF, fileName:=fileName

End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coco_bauer

2018/04/24 01:42

「"マクロの記録"をクリックして、エクセルファイルをPDFに印刷する操作を行い、"記録終了"をクリックする」を行うと、それに対応するVBAのプログラム(マクロ)が記録されます。記録されたマクロを元にすると作業が楽ですよ。
OOOOO

2018/04/24 01:53

素早いご対応、ありがとうございます。マクロにしてしまうとExportAsFixedFormatメソッドと異なり、示す範囲が広いため汎用性が低いかな…と思い、マクロを書くように努めていました。他の動作の際はcoco_bauerさんのアドバイス通り、マクロを基に組み立てたいと思います。ありがとうございます。、
guest

回答1

0

ベストアンサー

Dim sheet As Worksheet
Set sheet = ActiveSheet

デバッグ、ステップ実行、イミディエイトウィンドウ、ローカルウィンドウ、etc まだできる事は山ほどありますよ。

投稿2018/04/24 01:32

ExcelVBAer

総合スコア1175

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

OOOOO

2018/04/24 01:38

素早い返信、ありがとうございます! 無事、エラーは解決されました。 set の知識が乏しいことが分かりました、勉強します。 アドバイスいただいたように直したところ、ファイルを保存できません。とエラーが出ました。 こちらについてもお分かりではないでしょうか… 自分としては、filenameが問題かと思い、変更してみたのですがうまく動かせることはできませんでした。 Dim sheet1 As Worksheet Set sheet1 = ActiveSheet ⇒ここがエラー ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, fileName:=fileName
coco_bauer

2018/04/24 02:07

エラーが出る行の直前に MsgBox("filename:" & filename & ";")というコードを加えて、変数filenameの内容を確認してみてください。"/"、":"などのファイル名に使えない文字や、引用符で括られていない空白文字が含まれていませんか?
ExcelVBAer

2018/04/24 02:20

「ActiveSheet.ExportAsFixedFormat」は、「sheet1.ExportAsFixedFormat」に変えるべきです。 折角、Sheet1変数にActiveSheetを格納したのに、意味が無いですよ。 で、保存するパスについてですが、ご自分でブレークポイントおいて、確認してください。 「fileName = ThisWorkbook.Path & date_now & ".pdf"」 ・date_now には何が入ってますか? ・ThisWorkbook.Path だけだと、どうなってますか? ・fileName には何が入ってますか?
OOOOO

2018/04/24 02:23

MsgBox("filename:" & filename & ";")、とても便利ですね。 問題はDateは現在の日付を表示してくれると思っていたのですが、Dateを入れた部分が0:00:00と表示されていることでした。 問題が明確になり、何とか進めることができそうです。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問