【VBA】連番印刷をする 3
こんにちは
引き続き連番印刷です。
今回はプログラム編ということで簡単にですがプログラムを作成しました。
文字を入力するのはC7とC28のセルですね。
それではプログラムを見ていきましょう。
サンプルプログラム
Sub test() Dim 入力文字 As String Dim 番号, 枚数 As Long Dim i As Long 入力文字 = InputBox("開始する番号を入力してください", "連番印刷", "") If IsNumeric(入力文字) Then ElseIf Int(入力文字) < 0 Then Exit Sub Else: Exit Sub End If 番号 = Int(入力文字) 入力文字 = InputBox("印刷する枚数を入力してください", "連番印刷", "") If IsNumeric(入力文字) Then ElseIf Int(入力文字) < 0 Then Exit Sub Else: Exit Sub End If 枚数 = Int(入力文字) For i = 1 To 枚数 Range("C7") = Date & " " & 番号 + i - 1 Range("C28") = Date & " " & 番号 + 枚数 + i - 1 Worksheets("Sheet1").PrintOut Next i Range("C7") = "=TODAY()" Range("C28") = "=C7" End Sub |
1行目:プロシージャの開始
2~4行目:変数宣言
5行目:なし
6行目:InputBoxによる文字の入力
7~10行目:入力された文字が数字で0より大きいか判定
11行目:開始の番号の代入
12行目:なし
13~18行目:開始番号の内容を印刷枚数に置き換えたもの
19~20行目:なし
21行目:For文の開始、印刷枚数文繰り返す
22行目:C7セルに日付と番号を入力
23行目:C28セルに日付と番号を入力(印刷枚数文数字を足す)
24行目:シートの印刷
25行目:Next i
26行目:なし
27行目:C7セルにTODAY関数を入力
28行目:C28セルに=C7を入力
29行目:プロシージャの終了
解説
7行目と14行目のIsNumeric(入力文字)は()内の値が数字ならTrueを返します。
ここのIf文以外をExit Subにすることで数字が入力されなかった場合はプログラムを終了するようにしています。
22,23行目
Date & " " & 番号 + i - 1
これは今日の日付とスペース、番号を入力しています。
Date & " " & 番号 + 枚数 + i - 1
これは紙を半分に切断して重ねたときに1枚目から順番になるように枚数文がプラスされています。
プログラムはこんなもので。
歳後にボタンの追加方法を説明しますね。