この記事では、さまざまなシートからデータを印刷するためのマクロを作成します。

2枚のシートに異なる生データがあり、これらのシートからの印刷をカスタマイズしたいと思います。

ArrowRawFirst

ArrowRawSecond

ArrowMain

マクロを実行する前に、必要な印刷の種類を指定し、名前、範囲、またはカスタムビューを指定する必要があります。

ArrowCustomView

カスタムビュー「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]までご連絡ください