印刷後に4つの異なるセルの連続番号を増やす

印刷後に4つの異なるセルの連続番号を増やす

1/4 レター サイズの領収書を作成し、それを 1 つのワークシートに 4 回コピーし (紙を節約するため)、001 から 100 まで連続して印刷したいと考えています。各領収書には、001、002、... 100 という一意のシリアル番号が必要です。

4 つの異なるセルに連続した数字を入力し、たとえば A1、C1、E1、G1 に 001、002、003、004 という数字を入力し、印刷するたびに各数字を増やすにはどうすればよいですか。

開始番号を指定する機能も必要です。

私はこれをウェブで見つけたので、これが出発点になるかもしれません:

Sub IncrementPrint()

    Dim xCount As Variant
    Dim xScreen As Boolean
    Dim I As Long
    On Error Resume Next
LInput:
    xCount = Application.InputBox("Please enter the number of copies you want to print:", "Title")
    If TypeName(xCount) = "Boolean" Then Exit Sub
    If (xCount = "") Or (Not IsNumeric(xCount)) Or (xCount < 1) Then
        MsgBox "error entered, please enter again", vbInformation, "Title"
        GoTo LInput
    Else
        xScreen = Application.ScreenUpdating
        Application.ScreenUpdating = False
        For I = 1 To xCount
            ActiveSheet.Range("A1").Value = " Company-00" & I
            ActiveSheet.PrintOut
        Next
        ActiveSheet.Range("A1").ClearContents
        Application.ScreenUpdating = xScreen
    End If
End Sub

答え1

これを使って


Option Explicit

Public Sub IncrementPrint()
    Dim resp As Variant, scr As Boolean, i As Long, j As Long

On Error Resume Next
    resp = Application.InputBox(Prompt:="Please enter the number of copies to print:", _
                                Title:="Select Total Print Copies", Type:=1)
On Error GoTo 0

    If resp = False Then Exit Sub
    If resp < 1 Or resp > 100 Then
        MsgBox "Invalid number: " & resp & " (Enter 1 to 100)", vbExclamation, "Try Again"
        Exit Sub
    End If

    scr = Application.ScreenUpdating
    Application.ScreenUpdating = False
    j = 0
    For i = 1 To resp
        ActiveSheet.Range("A1").Value2 = " Company-00" & i + 0 + j
        ActiveSheet.Range("C1").Value2 = " Company-00" & i + 1 + j
        ActiveSheet.Range("E1").Value2 = " Company-00" & i + 2 + j
        ActiveSheet.Range("G1").Value2 = " Company-00" & i + 3 + j
        ActiveSheet.PrintOut
        j = j + 3
    Next i
    ActiveSheet.Range("A1,C1,E1,G1").ClearContents
    Application.ScreenUpdating = scr
End Sub

関連情報