[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『保存場所を指定して保存するマクロを教えてください』(yomogi)
いつもご指導有難うございます。
マクロ学習中の初心者です。
先日、こちらの掲示板で、作成したエクセルファイルを「日時」「指定セル」をファイル名にしてPDF保存するマクロを教えていただきました。
しかし、現状ではマクロが保存されているフォルダにPDFが作成されてしまうため、
宛先(指定セルです)毎に別のフォルダにPDFファイルを移動させなければならない
状態になっています。
そこで、PDFを保存場所を指定して保存([名前を付けて保存]ダイアログボックス?)
するようにしたいのですが、全く歯が立ちません。
どうか、ご指導を宜しくお願い申し上げます。
教えていただいた現在のマクロは以下の通りです
=============================================================
Private Sub PDF保存_Click()
Dim 保存パス As String, tmp As String
With ActiveSheet 保存パス = ThisWorkbook.Path & "\" & Format(Now, "yyyymmdd_hhmmss") & "見積書#" & .Range("I6").Value .ExportAsFixedFormat Type:=xlTypePDF, Filename:=保存パス End With End Sub
=============================================================
(yomogi)
< 使用 Excel:Excel2013、使用 OS:Windows10 >
こんにちは〜 ^^ https://excel-ubara.com/excelvba1/EXCELVBA375.html こちらがすごく参考になるかと思いますです。 でわでわ、頑張ってくださいね。m(_ _)m
(隠居じーさん) 2020/01/31(金) 11:21
追伸。。。 ^^ http://officetanaka.net/excel/vba/tips/tips39.htm フォルダだけの問題ならこちらのほうも参考になるかも しれません。でわでわ。m(_ _)m (隠居じーさん) 2020/01/31(金) 11:30
[[20200128103816]] 『PDF作成時に日付と保存された時刻を入力したいのです』(yomogi)
■1
>PDFを保存場所を指定して保存([名前を付けて保存]ダイアログボックス?)するようにしたいのですが、全く歯が立ちません。
どんなことをチャレンジしましたか?自分で考えたくないので聞きましたってのは無しですよ。
■2
>宛先(指定セルです)毎に別のフォルダ
↑だけみると、
宛先シート ___A_____ 1 A社 2 B社 3 C社
ってなってたら、
保存パス = "D:\出力先\" Worksheets("宛先シート").Cells(1,"A").Value & "\" & Format(Now, "yyyymmdd_hhmmss") & "見積書#" & .Range("I6").Value
みたいにすればA社フォルダに出力できるし、「.Cells(2,"A").Value」みたいにすればB社フォルダに保存されますよね?
この発想で、いっぺんに複数の宛先フォルダに出力したいなら行番号が変わっていくループ処理を組めばよいとおもいます。
■3
そうではなくて、処理する毎にフォルダを指定したいなら、隠居じーさんさんが「2020/01/31(金) 11:30」に仰ってるとおりの方法になると思います。
(もこな2) 2020/01/31(金) 12:17
例えば、
1.ダイアログで選択したフォルダのパスを取得
2.取得したパスとファイル名を結合
3.結合したフルパスを変数の保存パスに代入
といった形で、ある程度細分化したフローを
頭の中でも書き出してもいいので考えてから、
コードを記述していく方がいいと思います。
既に核心のアドバイスがされているようなので、私はこの辺で。
(tkit) 2020/01/31(金) 13:44
=====================================
Private Sub PDF保存_Click()
Dim 保存パス As String, tmp As String Dim 保存フォルダー As String With Application.FileDialog(msoFileDialogFolderPicker) If .Show = True Then 保存フォルダー = .SelectedItems(1) End With With ActiveSheet 保存パス = 保存フォルダー & "\" & Format(Now, "yyyymmdd_hhmmss") & "見積書#" & .Range("I6").Value .ExportAsFixedFormat Type:=xlTypePDF, Filename:=保存パス End With End Sub ===================================== よろしくお願いします。 (yomogi) 2020/02/05(水) 12:47
Sub test() Const 保存フォルダー = "c:\tmp\" Dim 保存パス As String
With ActiveSheet 保存パス = Application.GetSaveAsFilename(保存フォルダー & Format(Now, "yyyymmdd_hhmmss") & "見積書#" & .Range("I6").Value & ".pdf", "PDFファイル,*.pdf") If 保存パス = "False" Then Exit Sub .ExportAsFixedFormat Type:=xlTypePDF, Filename:=保存パス End With End Sub
(???) 2020/02/05(水) 13:17
ダイアログでキャンセル等のエラー回避が無いですね。 私でしたら以下のようにしています。
If .Show = False Then Exit Sub 保存フォルダー = .SelectedItems(1) (tkit) 2020/02/06(木) 10:28
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.