Excelのマクロについて教えて下さい。 G列・BL列・DO列の文字の有無(関数は入っている)で最終行を判断して 各リストが印刷されるマクロを自分なりに調べて作ってみたのですが、
Excelのマクロについて教えて下さい。 G列・BL列・DO列の文字の有無(関数は入っている)で最終行を判断して 各リストが印刷されるマクロを自分なりに調べて作ってみたのですが、 下記のパターンの時の組み方が分かりません。。。 Sub 印刷() 'リスト①の最終行を取得 r = WorksheetFunction.CountIf(Columns("G"), ">*") + 8 ActiveSheet.PageSetup.PrintArea = "$A$1:$BE" & r 'リスト①を印刷 ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _ IgnorePrintAreas:=False 'リスト②の最終行を取得 r = WorksheetFunction.CountIf(Columns("BL"), ">*") + 8 ActiveSheet.PageSetup.PrintArea = "$BF$1:$DJ" & r 'リスト②を印刷 ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _ IgnorePrintAreas:=False 'リスト③の最終行を取得 r = WorksheetFunction.CountIf(Columns("DQ"), ">*") + 8 ActiveSheet.PageSetup.PrintArea = "$DK$1:$FO" & r 'リスト③を印刷 ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _ IgnorePrintAreas:=False End Sub 【質問1】 例えばリスト①のG列に何も入っていなかった場合も8行目までは印刷されてしまう ➡何も入っていない場合は何も印刷したくないです 【質問2】 ボタンを押すと自動印刷される前提で作っているのですが、 ボタン設置場所をこのシートとは別のシートに設定したい場合の 印刷先のシート指定はコードのどこに組み込めば良いのでしょうか?
Visual Basic | Visual Basic・82閲覧・50
ベストアンサー
CountIf(Columns("G"), ">*") + 8 という事は最終行の取得列は文字(関数の結果)なのですか? 出来れば関数も示した方が正確な回答が得られると思います。 +8しているのは何故でしょうか? +9だと思うのですが。 印刷シートを仮に「Sheet5」とした例です。 テストの為にプレビューにしてあります。 結果が正しければPrintPreviewを消して下さい。 Sub test() Dim r As Long With Worksheets("Sheet5") 'リスト①の最終行を取得 r = .Cells(Rows.Count, "G").End(xlUp).row r = WorksheetFunction.CountIf(.Range("G10:G" & r), ">*") If r > 0 Then r = r + 9 .PageSetup.PrintArea = "$A$1:$BE" & r 'リスト①を印刷 .PrintPreview '.PrintOut Copies:=1 ', Collate:=True, IgnorePrintAreas:=False End If 'リスト②の最終行を取得 r = .Cells(Rows.Count, "BK").End(xlUp).row r = WorksheetFunction.CountIf(.Range("BK10:BK" & r), ">*") If r > 0 Then r = r + 9 .PageSetup.PrintArea = "$BF$1:$DJ" & r 'リスト②を印刷 .PrintPreview '.PrintOut Copies:=1 End If 'リスト③の最終行を取得 r = .Cells(Rows.Count, "DO").End(xlUp).row r = WorksheetFunction.CountIf(.Range("DO10:DO" & r), ">*") If r > 0 Then r = r + 9 .PageSetup.PrintArea = "$DK$1:$FO" & r 'リスト③を印刷 .PrintPreview '.PrintOut Copies:=1 End If End With End Sub
質問者からのお礼コメント
おお!ありがとうございました。
お礼日時:1/27 9:35