• 締切済み

エクセルマクロ ファイル出力

エクセルマクロにおいてファイル出力の件で、教えてください。 Asheetに、PDF出力とCSV出力を一括で行えるマクロを付加したボタンを作成したいです。 PDF出力範囲は、AsheetのA1:L40で固定。 CSV出力範囲は、BsheetのA1:BF29で固定。 また両方の出力ファイル名を、AsheetのF1の内容をファイル名にしたいです。 マクロに関して初心者ですので、お手柔らかにお願いいたします。 よろしくお願いいたします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

エクセルで自分のしたいことや仕事でしたいことは、自分のエクセルのVBAの技量を待ってくれない。日ごろから勉強しておくほかない。 本件は課題を文章で書いただけで、丸投げで、コードをコピペするほかないレベルだろう。 もう一つ、質問者は、フリーソフトでも探したらどうか。 XXをやりたいというのは勝手だが、もっと自分で調べるや、本を読む、実際にやってみる必要がある。初心者にはむつかしいことを望み過ぎ。 ーー (1)PDFやCSVなど、エクセルブック以外の保存を望んでいること (2)出力範囲(シートとセル範囲)を限っていること などの点でやさしい課題でない。 ーー PDFについては https://support.office.com/ja-jp/article/PDF-%25E5%25BD%25A2%25E5%25BC%258F%25E3%2581%25A7%25E4%25BF%259D%25E5%25AD%2598%25E3%2581%2599%25E3%2582%258B-d85416c5-7d77-4fd6-a216-6f4bf7c7c110?ui=ja-JP&rs=ja-JP&ad=JP&fromAR=1#bm5 に「マクロの記録モード」にして、この操作をやってみて、記録されるコードを見るのはどうか。 PDFは印刷に親和性があり、「指定した範囲」印刷や「ページ指定」印刷などで、印刷範囲を限定はできるかもしれない。 ーー CSVは、csvファイルはどういうものか知っているのか。 いろいろ知っておくべき点があり、VBAでやるのは経験が必要。 シートに下記のもっとも簡単なテストデータを作ってやってみるほかない。 ーー 元データ A2:D4 aa,1,23,東京都 bb,3,43,神奈川 cc,5,56,静岡 ーー 標準モジュールに Sub test02() Close #1 Open "CSVアウトプット" For Output As #1 lr = Worksheets("Sheet2").Range("A1000").End(xlUp).Row MsgBox "最終行 " & lr s = "" For i = 2 To lr s = "" For j = 1 To 4 x = Worksheets("Sheet2").Cells(i, j) 'If IsNumeric(x) Then 'xc = CStr(x) 'Else 'xc = x 'End If s = s & x & "," Next j s = Left(s, Len(s) - 1) '最後の余分なカンマを省く MsgBox s Print #1, s s = s & vbCrLf Next i '-- Close #1 End Sub ーー 結果 メモ帳で確認 aa,1,23,東京都 bb,3,43,神奈川 cc,5,56,静岡 ーーー 一番簡単な例を挙げて書いているので、それを理解することが先決。 その後自分の場合は、どこをどう変えるか考えること。 相当の予備知識が必要と思う。

関連するQ&A