• ベストアンサー

エクセルのマクロでの保存先指定方法を教えて

エクセルのマクロを使用して作業したいと思っています。 印刷画面をpdfにして出力しようと思っております ただし、ここで使用しております エクセルデータは usbで使用しており pcによりドライブが変わってしまう このusbに pdfデータを出力したいのですができますでしょうか pdf変換しておくとプリンタなくても コンビニ印刷できるもので・・・ 詳しい方 お教えください 宜しくお願い致します

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

スミマセン,随分間の空いたレスポンスでしたので,こちらも見落としていました。 >ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "I:\H23年度\マレットゴルフ 成績表.pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ True ようやっと,ご利用のエクセルのバージョンを含めてそもそもどうやってPDFを保存しているのかの情報が出てきましたね。 この流れで行うなら ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=thisworkbook.path & "\マレットゴルフ 成績表.pdf", _ Quality:=xlQualityStandard, IncludeDocProperties:=True, _ IgnorePrintAreas:=False, OpenAfterPublish:=True といった具合になります。 ドライブレターだけ参照して全く違うフォルダに保存したい場合は,前述回答を参考にちょい直してください。

その他の回答 (3)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

>今回使用するエクセルのファイルのあるドライブにPDFを書き出したいのですが 失礼しました。 既に回答がでていますよね ThisWorkbook.Path で、そのでエクセルの保存されているドライブとパスが文字列で得られます。 もし、ドライブ名だけであれば、最初の2文字を取り出してみてください。 使用するエクセルのファイルに Sub ボタン1_Click() Range("A1").Value = ThisWorkbook.Path Range("A2").Value = Left(ThisWorkbook.Path, 2) End Sub で試してみてください。

komtan
質問者

補足

確認したドライブをどの様に反映したら良いのでしょうか 例えば、ファイルが、gドライブにあるということが解ったとして ドライブ先 g:を 変数なんかに入れて ファイルのあるusbに入れたいのです 変数:drに g をいれ dr:abcde.pdf みたいにしたいのですが ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "I:\H23年度\マレットゴルフ 成績表.pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ True の I:をどの様にすればよいのでしょうか 宜しくお願い致します

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

http://www.moug.net/tech/acvba/0020011.htm のあたりが参考になると思います。 VBエディターを開いて ツール=>参照 から Microsoft Scripting Runtime にチェックして Sub ボタン1_Click() Dim myFileSystem As New Scripting.FileSystemObject Dim myDrive As Scripting.Drive Dim myDriveType() As Variant 'ドライブの種類を配列に設定しておく myDriveType = Array("不明", "リムーバブル ディスク", _ "ハードディスク", "ネットワークドライブ", "CD-ROM", "RAMディスク") i = 1 'すべてのドライブの名前と種類を表示する For Each myDrive In myFileSystem.Drives Range("C" & i).Value = myDrive.DriveLetter & _ ":" & myDriveType(myDrive.DriveType) i = i + 1 Next End Sub とでもすれば、パソコンにつながっているドライブの一覧が得られます。 その結果を利用してみてください。 但し、USBが2つあった場合などは、それなりの運用が必要になります。

komtan
質問者

補足

説明が悪くて済みませんでした usbドライブのドライブ番号が知りたいのではなくて 今回使用するエクセルのファイルのあるドライブにPDFを書き出したいのですが エクセルデータのドライブを読み出して、変数かに入れ PDFを書き出すドライブ指定に使いたいのですが 宜しくお願い致します

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>エクセルデータは usbで使用しておりpcによりドライブが変わってしまう thisworkbook.path あるいは left(thisworkbook.path, 1) などで,ドライブレターや保存先を確認できます。

komtan
質問者

補足

確認したドライブをどの様に反映したら良いのでしょうか 例えば、ファイルが、gドライブにあるということが解ったとして ドライブ先 g:を 変数なんかに入れて ファイルのあるusbに入れたいのです 変数:drに g をいれ dr:abcde.pdf みたいにしたいのですが ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "I:\H23年度\マレットゴルフ 成績表.pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ True の I:をどの様にすればよいのでしょうか 宜しくお願い致します

関連するQ&A