エクセルマクロについて質問があります。
自分では実力不足で作れないため助けていただきたいです。
〇 Sheet1のセルA1からA5までにシート名の入力項目がある
〇 Sheet2以降は"月"、"火"、"水"、"木"、"金"、"土"、"日"という名前のシートがある
〇 例としてSheet1のセルA1に"月"、A2に"水"、A3に"金"と入力する (A4、A5は空欄)
この時、マクロを実行すると
入力名のシートだけをすべて選択して印刷するというマクロはどうなるか教えていただきたいです。
入力する項目はいろいろ変わります。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
No.1です。
>指定シートを選択してすべてを一つのファイルとして保存したいと考えています。
選択Sheet(印刷プレビューで表示されたSheetだけ)を別ファイル(PDFファイル)として保存するのが一番手っ取り早いのではないでしょうか?
Sub Sample2()
Dim i As Long, k As Long, cnt As Long
Dim wB1 As Workbook, wB2 As Workbook
Set wB1 = ThisWorkbook
Workbooks.Add
Set wB2 = ActiveWorkbook
With wB1.Worksheets("Sheet1")
For i = 1 To 5
If .Cells(i, "A") <> "" Then
For k = 2 To wB1.Worksheets.Count
If wB1.Worksheets(k).Name = .Cells(i, "A") Then
cnt = cnt + 1
If wB2.Worksheets.Count < cnt Then
wB2.Worksheets.Add after:=wB2.Worksheets(Worksheets.Count)
End If
wB1.Worksheets(k).Cells.Copy wB2.Worksheets(cnt).Range("A1")
wB2.Worksheets(cnt).PrintPreview
Exit For
End If
Next k
End If
Next i
End With
wB2.ExportAsFixedFormat Type:=xlTypePDF, Filename:="PDFファイル"
'↑「PDFファイル」という名前で保存//
Application.DisplayAlerts = False
wB2.Close
Application.DisplayAlerts = True
End Sub
※ おそらくマイドキュメントに「PDFファイル」という名前で保存されていると思います。
ファイル名は適宜変更してください。
当方の力ではこの程度しか思いつきません。m(_ _)m
引き続きの回答ありがとうございます。
一番の目的である指定シートを一つにということができました。
まだちなみになのですが...
マイドキュメントに「PDFファイル」というところを。元のエクセルファイル名と同じにという指定ができますでしょうか??
Filename:="PDFファイル"のところをどうにか変えるのだろうな..ということしかわかりません(/ω\)
No.4
- 回答日時:
No.3です。
Sheet1のセルA1からA5に、実際に存在しないシート名が入力されていませんか?
または、見た目は空白でもスペースがひとつ入っている等でもエラーになります。
No.2のお礼の中に「ファイル名を元Excelファイル名と同じにしたい」という要件が書かれていますが、Microsoft Print To PDFでは、都度、ファイル名の指定が必要になってしまいます。よって、No.2さんの方式の方が応用が利くので便利かもしれません。
ありがとうございます。
必要のないスペースがありました。修正すると印刷することができました。
様々な方法が勉強になり本当に助かりました。この場でしか教えていただく方法がないため、またわからないことがありましたら、力を貸してください。よろしくお願いします。
ありがとうございました。
No.3
- 回答日時:
通常使うプリンターに、Microsoft Print To PDFを指定するということなので、マクロでのPDF化は意識しなくて良いと云うことですよね。
であれば、こんな感じでどうでしょう。(tom04さん、すいません!!VBAコードは、tom04さんの最初の案のパクリです。)
Sub Sample1()
Dim i As Long
Dim k As Variant
With Worksheets("Sheet1")
For i = 1 To 5
If .Cells(i, "A") <> "" Then
If k <> "" Then k = k & "!"
k = k & .Cells(i, "A")
End If
Next i
End With
Worksheets(Split(k, "!")).PrintOut
End Sub
回答ありがとうございます。
マクロでのPDF化は意識しなくて良いという考えは、正しくその通りです。
記述していただいたものを実行したところ
Worksheets(Split(k, "!")).PrintOut
のところで「インデックスが有効範囲にありません。」
となりました。この場合はどうしたらよいでしょうか?
No.1
- 回答日時:
こんばんは!
一例です。
標準モジュールにしてください。
Sub Sample1()
Dim i As Long, k As Long
With Worksheets("Sheet1")
For i = 1 To 5
If .Cells(i, "A") <> "" Then
For k = 2 To Worksheets.Count
If Worksheets(k).Name = .Cells(i, "A") Then
Worksheets(k).PrintPreview '←印刷プレビューでやめています//
Exit For
End If
Next k
End If
Next i
End With
End Sub
※ コード内に記載しているように「印刷プレビュー」でやめています。
すぐに印刷実行したい場合は
>Worksheets(k).PrintOut
にしてください。m(_ _)m
すごいです。できました!!
どうも丁寧にありがとうございました。
ちなみにWindowsのプリンタの設定をPDFにして印刷した場合に一つ一つの保存ではなくて、印刷シートすべてを一ファイルのような形にしたいのですが、そのようなことも可能でしょうか??
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) セルによって印刷するシートを変える方法 EXCEL-VBA 2 2022/08/01 20:48
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) エクセル関数について 2 2022/04/13 18:25
- Excel(エクセル) Excel VBAプルダウンの値を変えながら2枚ずつ印刷する方法? 4 2022/05/27 13:04
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Excel(エクセル) エクセルのフッタやヘッダーについて 3 2023/02/04 09:45
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルファイルを開く時、常...
-
エクセル印刷時 一枚の書類に...
-
Excel 特定のシートを印刷不可...
-
エクセルのマクロで複数シート...
-
エクセルで行番号、列アルファ...
-
1ヶ月分の日付を一度に出す方法...
-
エクセルで複数のシートの1枚目...
-
エクセルで複数のシートを同じ...
-
[EXCEL]2つのシートを無駄なく...
-
Excel VBA 印刷設定/ヘッダー、...
-
エクセルでのヘッダーをページ...
-
エクセルで140人をマクロを...
-
なぜか「Nextに対応するForがあ...
-
エクセルの一部のセルの背景色...
-
Excelを印刷する際、一番上の行...
-
改ページプレビューの画面で左...
-
エクセルで作成した文書と表を...
-
EXCELで、A3からA4に縮小印刷し...
-
Excelで網掛けを印刷時非...
-
エクセルで1個のシートを1枚の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルファイルを開く時、常...
-
エクセルの一部のセルの背景色...
-
エクセル印刷時 一枚の書類に...
-
マクロで印刷→セルの値から部数...
-
エクセルで複数のシートの1枚目...
-
Excel 特定のシートを印刷不可...
-
1ヶ月分の日付を一度に出す方法...
-
エクセルの行タイトルを特定の...
-
エクセルで行番号、列アルファ...
-
エクセルでのヘッダーをページ...
-
エクセルのマクロで複数シート...
-
エクセルでシートの色がグレー...
-
エクセルで複数のシートを同じ...
-
【Excel】複数シートがあるエク...
-
エクセルのシート名を印刷した...
-
条件によって印刷するシートを...
-
エクセルのページ設定を他のペ...
-
Excel 2シートを1枚に印刷した...
-
エクセルで、ヘッダーに他のシ...
-
特定のシートのみ印刷できない...
おすすめ情報
印刷はPDFにしたいため、WindowsのプリンターをPDFに設定し、一つ一つの印刷ではなく、指定シートを選択してすべてを一つのファイルとして保存したいと考えています。