ショボ短歌会

宜しくお願い致します。
あるサイトを参考に自分の設定を下記情報に設定しました。
保存の画面が出るのですが、【OK】しても実際にはデスクトップには保存されません。
ちゃんとデスクトップに保存をするにはどうしたら良いでしょうか?
VBAの知識はなく、さっぱりわかりません。
どうぞご教授をお願い致します。

Sub SaveFileSample011()
Dim SaveFileName
Dim wScriptHost As Object, strInitDir As String
'カレントディレクトリをデスクトップに変更

a = Range("a2").Value
b = Range("c9").Value

Set wScriptHost = CreateObject("WScript.Shell")
ChDir wScriptHost.SpecialFolders("Desktop")

SaveFileName = Application.GetSaveAsFilename(a & "様" & b, "PDFとして保存,*.pdf")

If SaveFileName <> False Then
MsgBox "入力されたファイル名は、" & SaveFileName & " です。", vbInformation
Else
MsgBox "キャンセルがクリックされました。", vbInformation
End If

End Sub

A 回答 (1件)

今のマクロで実現できているのは「保存用の名前を確認する」とこまでで,肝心の保存する動作がありません。


あとちなみに,ブックの「どのシートをPDFとして作成したい」のかも不明です。


とりあえず作成例:今のマクロに少し書き足して
sub macro1()
 Dim SaveFileName
 Dim wScriptHost As Object, strInitDir As String
 dim a,b, mypath

'カレントディレクトリをデスクトップに変更 必要に応じてカレントドライブも変更する
 a = Range("a2").Value
 b = Range("c9").Value
 Set wScriptHost = CreateObject("WScript.Shell")
 mypath = wScriptHost.SpecialFolders("Desktop")
 chdrive left(mypath ,1)
 chdir mypath

’保存したいファイル名を設定している
 SaveFileName = Application.GetSaveAsFilename(a & "様" & b, "PDFとして保存,*.pdf")
 If SaveFileName <> False Then
  MsgBox "入力されたファイル名は、" & SaveFileName & " です。", vbInformation
 Else
  MsgBox "キャンセルがクリックされました。", vbInformation
  exit sub
 End If

’実際にPDFとして保存する
 worksheets("Sheet1").exportasfixedformat xltypepdf, savefilename, xlqualitystandard

end sub
    • good
    • 0
この回答へのお礼

keithin様

早々のご回答ありがとうございます。<(_ _)>
無事に保存が出来るようになりました。
自分で勉強して一から調べていたらどれだけ時間がかかったか・・・
と言うより、この結果にはたどり着けなかったと思います。
keithin様本当にありがとうございました。

お礼日時:2011/11/19 15:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!