Excel(エクセル)マクロで開始と終了シートを指定して連続で印刷する方法!

Excel(エクセル)マクロで開始と終了シートを指定して連続で印刷する方法! Excel(エクセル)

業務中に調べることの多い、Excel,Word,PowerPointなどのノウハウを発信していきます!

Biz Magic編集部をフォローする

Excel(エクセル)VBAとは

皆さんExcelのVBAとはなにかをご存じでしょうか?

VBAは、Excelのワークブックやワークシート内のデータやオブジェクトに対してアクセスし、操作することができます。VBAを使用することで、ユーザーはExcelのさまざまな機能をカスタマイズしたり、繰り返し作業を自動化したり、独自の機能を追加したりすることができます。

VBAは、Excelのメニューバーやボタンに割り当てられたマクロを作成するためにも使用されます。マクロは、一連の操作や処理を記録して再生するためのスクリプトです。VBAを使用することで、マクロの記録だけでなく、より高度なプログラミング機能や条件分岐、ループなどの制御構造を使用したプログラムの作成も可能です。

VBAは、Excelだけでなく、他のMicrosoft Officeアプリケーション(Word、PowerPoint、Accessなど)でも使用することができます。また、VBAはExcel以外のアプリケーションとの連携や、外部のデータソースとのデータの取得や更新など、さまざまなタスクを実行するためにも利用されます。

VBAは、プログラミングの基礎知識があれば比較的簡単に学ぶことができます。VBAの学習には、VBAの構文やオブジェクトモデルの理解、関数やサブルーチンの作成、エラーハンドリングなどが含まれます。ExcelのVBAエディタを使用して、コードを入力、編集、実行することができます。

今回の記事ではExcelのマクロで印刷開始と終了のシートを指定して連続で印刷する方法をご紹介していきます。

Excel(エクセル)マクロで開始と終了シートを指定して連続で印刷する方法

では、早速ですがExcelのマクロで開始と終了シートを指定して連続で印刷する方法をご紹介していきます。

まず、VBAを使用するためには「開発」タブの「Visual Basic」を選択します。

これでVBAを入力する画面を開くことができます。

開発タブがない方はExcelのオプションで開発にチェックをいれてください。

これで開発タブを使用できるようになります。

VBAのエディタに以下のコードを入力します。

Sub ContinuousPrinting()
    Dim startSheet As Worksheet
    Dim numSheetsToPrint As Integer
    Dim i As Integer
    
    ' ポップアップで印刷を開始するシート番号を入力
    Dim startSheetNumber As Variant
    startSheetNumber = InputBox("印刷を開始するシートの番号を入力してください:")
    
    ' 入力がキャンセルされた場合は終了
    If startSheetNumber = "" Then
        MsgBox "印刷がキャンセルされました。", vbInformation
        Exit Sub
    End If
    
    ' 入力された番号が有効かどうかを確認
    On Error Resume Next
    Set startSheet = ThisWorkbook.Sheets(CInt(startSheetNumber))
    On Error GoTo 0
    
    If startSheet Is Nothing Then
        MsgBox "指定された開始シートが存在しません。", vbExclamation
        Exit Sub
    End If
    
    ' ポップアップで印刷するシートの数を入力
    Dim numSheetsInput As Variant
    numSheetsInput = InputBox("印刷するシートの数を入力してください:")
    
    ' 入力がキャンセルされた場合は終了
    If numSheetsInput = "" Then
        MsgBox "印刷がキャンセルされました。", vbInformation
        Exit Sub
    End If
    
    ' 入力された数が有効かどうかを確認
    If Not IsNumeric(numSheetsInput) Then
        MsgBox "印刷するシートの数には数値を入力してください。", vbExclamation
        Exit Sub
    End If
    
    numSheetsToPrint = CInt(numSheetsInput)
    
    ' エラーチェック
    If numSheetsToPrint <= 0 Then
        MsgBox "印刷するシートの数は1以上の値を指定してください。", vbExclamation
        Exit Sub
    End If
    
    ' 印刷を開始するシートをアクティブにします
    startSheet.Activate
    
    ' 指定したシートの分だけ印刷を実行します
    For i = 1 To numSheetsToPrint
        ' シートを印刷します
        ActiveSheet.PrintOut
        ' 次のシートに移動します(印刷順がシートの順番に依存する場合)
        ' ActiveSheet.Next.Select
        ' あるいは、次のシートを直接アクティブにする場合は以下のコードを使用します
        ThisWorkbook.Sheets(startSheet.Index + i).Activate
    Next i
    
    ' 印刷が完了したら、元のシートに戻ります
    startSheet.Activate
    
    MsgBox numSheetsToPrint & "枚のシートを連続して印刷しました。", vbInformation
End Sub

これで連続印刷のマクロの作成まで完了しました。

あとはこのマクロを実行していきます。

マクロのエディタ画面でマクロの実行をクリックします。

すると印刷を開始するシートを指定するようポップアップが出るので開始するシートの番号を入力します。

次に何シート分印刷するかを指定します。

これで指定したシートを連続で印刷することができます。

Excelの操作方法は実際に手を動かし、身につけていきましょう

今の時代、様々な仕事でExcelを使用することがあるでしょう。今回はExcelのマクロで印刷を開始するシートと終了するシートを指定して連続で印刷する方法についてご紹介しました。このような機能を使いこなすことができれば仕事にも役に立つので、実際に手を動かし、覚えていきましょう。

WordやExcelなどのOfficeツールでは便利なショートカットキーなどがたくさんあるのでよく使う作業に関してはショートカットキーを調べてみるのも効率よく仕事を進める上で大切なことなのでこれから実践してみましょう。

コメント

タイトルとURLをコピーしました