![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
お世話になります。
エクセル2007を使用しています。コマンドボタンを押すとMsg BOXを出現させ「PDF形式で保存しますか?」と表示し「はい」を押すとエクセルファイルをPDFファイル形式に自動で保存しようと考えています。
紙の大きさはB4サイズでPDFファイルに保存させたいです。
保存先はデスクトップのフォルダ「購買分」と言う所に保存します。
保存の名称に関してはエクセルファイルのC1には「2014年2月」と表示されており「購買分2014年2月」と自動で保存してくれる様にしたいです。
この様なマクロはエクセルで組むことが出来るのでしょうか?
No.3ベストアンサー
- 回答日時:
ちょっと強引かもしれませんが,とりあえず保存できる方法として
Sub Sample()
If Range("C1").Value <> "" Then
Dim Fn As String
Fn = Format(Range("C1"), "yyyy年m月") & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\Users\ユーザー名\Desktop\購入分" & Fn
Else
MsgBox "セルC1にファイル名が入力されていません。", vbExclamation
End If
End Sub
最初の通常保存時には使用できない文字を入力する場合、エラーメッセージを発生させてVBAを止める部分を消せば、保存できました。
No.2
- 回答日時:
先ずNet上で見つけたマクロを解釈してみますと
Sub Sample()
With Range("C1")
If .Value <> "" Then
If InStr(.Value, "\") > 0 Or _
InStr(.Value, "/") > 0 Or _
InStr(.Value, ":") > 0 Or _
InStr(.Value, "*") > 0 Or _
InStr(.Value, "?") > 0 Or _
InStr(.Value, """") > 0 Or _
InStr(.Value, "<") > 0 Or _
InStr(.Value, ">") > 0 Or _
InStr(.Value, "|") > 0 Then
MsgBox "セルC1にファイル名に使えない文字(\/:*?" & """" & "<>|)が含まれています。", vbExclamation
ファイル名(C1のセル)に「\、/、:、*、?、""、<、>、|」が入っている場合はメッセージを表示させて、マクロを終了させるという意味になります。
Else
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\Users\ユーザー名\Desktop\" & .Value & ".pdf"
ファイル名に上記の文字が入っていない場合,C1.valueの名前でpdf形式で保存します。
End If
Else
MsgBox "セルC1にファイル名が入力されていません。", vbExclamation
End If
End With
End Sub
あるサイトでこの様なVBAが見つかりました。これで出来るかと思いましたがC1の日付の表示が「2014/2/16」となっているため「セルC1にファイル名に使えない文字(\/:*?" & """" & "<>|)が含まれています。」と表示され保存できません。
書式形式を変更しても上手くいきませんでした。どうすれば良いでしょうか?
書式ではなく、そのセルの値の属性が何であるかが重要だと思います。
仮に文字だとすれば、2014/2/16.pdfを作ろうとしますので、これは最初のIF構文中の「/」が入っているので保存できない、という解釈になります。
ところで、保存したいファイル名は「購入分2014年2月」であるので
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\Users\ユーザー名\Desktop\" & .Value & ".pdf"
を
Dim Fn as String
Fn = Format(Range("C1"), "yyyy年m月") & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\Users\ユーザー名\Desktop\購入分" & Fn
に変えてみて下さい。多分できると思います。
補足ですが、ユーザー名は自分のアカウント名を入力してくださいね。
この回答への補足
保存しようとしたら「セルC1にファイル名に使えない文字(\/:*?" & """" & "<>|)が含まれています」と表示され、該当するフォルダに保存出来ませんでした。
C1セルの年月はカレンダーから選択する仕様になっており、セルの書式設定が「〇〇〇〇年〇〇月」となってます。C1セルを標準の文字に設定すると2014年2月17日は「41687」と言う文字になりますね。
No.1
- 回答日時:
2010で同じような事ができていますので、おそらくできると思います。
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
フォルダのパスとファイル名 & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= False
ファイル名の部分はRange(C1)で指定すれば良いと思います。
この回答への補足
Sub Sample()
With Range("C1")
If .Value <> "" Then
If InStr(.Value, "\") > 0 Or _
InStr(.Value, "/") > 0 Or _
InStr(.Value, ":") > 0 Or _
InStr(.Value, "*") > 0 Or _
InStr(.Value, "?") > 0 Or _
InStr(.Value, """") > 0 Or _
InStr(.Value, "<") > 0 Or _
InStr(.Value, ">") > 0 Or _
InStr(.Value, "|") > 0 Then
MsgBox "セルC1にファイル名に使えない文字(\/:*?" & """" & "<>|)が含まれています。", vbExclamation
Else
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\Users\ユーザー名\Desktop\" & .Value & ".pdf"
'引数Filenameには保存したい場所を指定してください(このコードではデスクトップに保存しています)。
End If
Else
MsgBox "セルC1にファイル名が入力されていません。", vbExclamation
End If
End With
End Sub
あるサイトでこの様なVBAが見つかりました。これで出来るかと思いましたがC1の日付の表示が「2014/2/16」となっているため「セルC1にファイル名に使えない文字(\/:*?" & """" & "<>|)が含まれています。」と表示され保存できません。
書式形式を変更しても上手くいきませんでした。どうすれば良いでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでCSVファイルとして保...
-
Excel画面の自動更新 Excelファ...
-
「変更を保存しますか?」と聞...
-
エクセル文書を保存したらメモ...
-
エクセルを上書き保存したのに...
-
「名前を付けて保存」ができな...
-
複数のブックを上書き保存する...
-
Excelでの最終更新時刻表示
-
appleworksのファイルをエクセ...
-
エクセルのツールバーの上書き...
-
excelとCSVについて質問です! ...
-
エクセル A1の内容を ファ...
-
いきなりPDFでPDFファイルを開...
-
マクロ中断中に誤って保存?し...
-
EXCELで同一名のファイルがある...
-
画像になってしまう、テキスト...
-
パワーポイントをエクセルファ...
-
エクセルを開いたときのシート
-
エクセルで「500時間」を「何日...
-
エクセルVBAでアクセスファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
いきなりPDFでPDFファイルを開...
-
エクセルを上書き保存したのに...
-
エクセル文書を保存したらメモ...
-
エクセルでVBAを使用して1分毎...
-
Excel画面の自動更新 Excelファ...
-
メール添付されているファイル...
-
ピボットテーブルの更新ができない
-
マクロ VBA ファイル名を連番...
-
エクセル・マクロ(VBA)で、指定...
-
エクセルでCSVファイルとして保...
-
Illustratorファイルに読み取り...
-
マクロVBA特定フォルダーに次々...
-
エクセルの共有ファイルで、保...
-
エクセルがwindows終了時に未保...
-
エクセル表のCSV化ができない
-
開いてるファイル(エクセル等)...
-
エクセル 更新していないのに...
-
メールソフト「サンダーバード...
-
「変更を保存しますか?」と聞...
-
エクセル2019でPDFファイル名に...
おすすめ情報