エクセル実践塾 > エクセル実践塾2007

指定したページだけを、とびとびで印刷したい

 

マクロを使えば、指定したページだけを連続して印刷することは可能です

通常の印刷手順では、特定のページや範囲を印刷することはできますが、とびとびの指定ページを連続して印刷できません。しかし、次のようなマクロを使えば、それが可能です。

Sub PrintSelect()
  Dim i As Byte
  Dim r As Range

  For Each r In Selection
    i = r.Value
    ActiveWindow.SelectedSheets.PrintOut From:=i, To:=i
  Next
End Sub

Selectionは、選択中のセル範囲を表します。選択中の各セルに、印刷したいページ番号をそれぞれ入力しておくことで、それらのページがとびとびであっても連続して印刷することができます。

このマクロを個人用マクロブックに登録しておけば、どのブックでも使えるようになります。

@マクロ編集用のVisual Basic Editorのボタンが含まれる、[開発]タブがリボンに表示されるようにします。

[開発]タブの表示は、[Excelのオプション]で設定します。

A[[開発]タブをリボンに表示する]にチェックマークを付けます。

B[開発]→[Visual Basic]ボタンをクリックして、マクロ編集用のVisual Basic Editorを起動します。

すでにVisual Basic Editorが起動している場合には、画面が切り替わります。

旧バージョンのExcelでは、[ツール]→[マクロ]→[Visual Basic Editor]で、個人用マクロブックの編集を行えます

C個人用マクロブックのモジュールウィンドウに、マクロのコードを記述します。

個人用マクロブックは、Visual Basic Editorでは「PERSONAL〜」というファイル名で表示されます。それに含まれる、「Module〜」をダブルクリックすれば、マクロを記述するためのコードウィンドウが表示されます。

なお、個人用マクロブックは、個人用マクロブックへのマクロ記録を少なくとも一度は行わなければ作成されません。プロジェクトウィンドウに「PERSONAL〜」という名のVBAProjectが見当たらないときには、Excelの編集画面に戻って、適当なマクロの記録を個人用マクロブックに行ってください(前号参照)。

DPrintSelectマクロを実行する前に、印刷したいページの番号をセルに入力しておきます。

@印刷したいページの番号を各セルに入力して、そのセル範囲を選択しておきます。下の例では4つのページ番号しか指定していませんが、PrintSelectマクロではその数に制限はありません。印刷したいページの番号を連続する各セルに入力しておき、そのセル範囲が選択されていれば、そのすべてが印刷対象となります。A[開発]→[マクロ]ボタンをクリックします。BPrintSelectマクロを選びます。C[実行]ボタンをクリックすると、選択中の各セルに入力されている数値に該当するページが、連続して印刷されます。

※[マクロ]ダイアログボックスの[編集]ボタンは、非表示となっている個人用マクロブックのマクロでは利用できません。

※個人用マクロブックは、一度作成されると、以降のExcel起動時から自動的に非表示で開かれるようになります。Excelの利用中は常に開かれているので、そこに保存されているマクロは、どのブックからでも実行できるわけです。

 

●選択するセル範囲に空セルが含まれている場合には、次のようにIf文を追加することで、その空セルを無視して印刷できるようになります。

Sub PrintSelect()

   Dim i As Byte
   Dim r As Range

   For Each r In Selection

      If r <> "" Then

        i = r.Value
        ActiveWindow.SelectedSheets.PrintOut from:=i, to:=i

      End If

   Next

End Sub

※""は、空セルを表します。一致しないことを意味する比較演算子 <> でセルと比較することにより、空セルでないときにだけ、End Ifまでの処理が行われるようになります。

 

 

旧バージョンのExcelでは、[ツール]→[マクロ]→[Visual Basic Editor]で、個人用マクロブックの編集を行えます

以降の手順は、Excel 2007の場合と同じです。