Microsoft ExcelでVBAを使用して異なるシートからの印刷データ
この記事では、さまざまなシートからデータを印刷するためのマクロを作成します。
2枚のシートに異なる生データがあり、これらのシートからの印刷をカスタマイズしたいと思います。
マクロを実行する前に、必要な印刷の種類を指定し、名前、範囲、またはカスタムビューを指定する必要があります。
カスタムビュー「customView1」を作成しました。
ロジックの説明
カスタマイズされた印刷用の「PrintReports」マクロを作成しました。このマクロは、セルA13から最後の行までループします。カスタマイズされた印刷には、3つの異なるタイプを指定できます。
タイプ1の場合、次の列でシート名を指定する必要があります。
タイプ2の場合、印刷する範囲を指定する必要があります。
タイプ3の場合、カスタムビューの名前を指定する必要があります。
コードの説明
Range( “A13″、ActiveCell.End(xlDown))内の各Cell1について
上記のコードは、セルA13から最後の行までループするために使用されます。
DefinedName = ActiveCell.Offset(0、1).Value上記のコードは、アクティブセルの次の列のセルから値を取得するために使用されます。
Select Case Cell1.Value Case 1 ‘定義済みシートの選択Sheets(DefinedName).Select Case 2’定義済み範囲の選択Application.GotoReference:= DefinedName Case 3 ‘定義済みカスタムビューの選択ActiveWorkbook.CustomViews(DefinedName).Show End Select上記のSelectステートメントは、ユーザーが定義したタイプに基づいて指定された領域を選択するために使用されます。
ActiveWindow.SelectedSheets.PrintOut上記のコードは、選択した領域を印刷するために使用されます。
コードについては以下に従ってください
Option Explicit Sub PrintReports() 'Declared variables Dim DefinedName As String Dim Cell1 As Range 'Disabling screen updates Application.ScreenUpdating = False 'Looping through all the cells For Each Cell1 In Range("A13", ActiveCell.End(xlDown)) Sheets("Main").Activate 'Selecting the cell Cell1.Select 'Getting value of sheet name or defined range DefinedName = ActiveCell.Offset(0, 1).Value Select Case Cell1.Value Case 1 'Selecting the defined sheet Sheets(DefinedName).Select Case 2 'Selecting the defined range Application.Goto Reference:=DefinedName Case 3 'Selecting the defined custom view ActiveWorkbook.CustomViews(DefinedName).Show End Select 'Printing the required data ActiveWindow.SelectedSheets.PrintOut Next Application.ScreenUpdating = True End Sub
このブログが気に入ったら、FacebookやFacebookで友達と共有してください。
皆様からのご意見をお待ちしております。私たちの仕事を改善し、あなたのために改善する方法をお知らせください。 [email protected]までご連絡ください