[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBA 値を変更しながら連続印刷』(WE4)
印刷する際に1から順番に番号を振りたいです。
(仮)1〜5を振ったとします。
次に印刷する際は、6から印刷したいです。
仮にできない場合はA2に6を入力してからVBAを行いたいです。
また、可能なら印刷する枚数をA3に入力したいです。
A B C
1連続番号
2開始番号
3何枚印刷するか
4
5
Sub Print_Out_1() 'セルに値を設定しながら連続印刷する。印刷対象:アクティブシート
'定数 Const conStart As Long = 1 '開始番号 Const conEnd As Long = 5 '終了番号 Const conStep As Long = 1 '間隔 Const conCell As String = "A1" 'セル番地 '変数 Dim i As Long With Application .ScreenUpdating = False With .ActiveSheet For i = conStart To conEnd Step conStep .Range(conCell).Value = i .PrintOut Next End With .ScreenUpdating = True End With End Sub
< 使用 Excel:Excel2019、使用 OS:unknown >
■1
>印刷する枚数
https://daitaideit.com/vba-from-to/
https://www.osiete-excelvba.work/entry/2019/12/18/095342
■2
>連続番号、開始番号、何枚印刷するか
もしも、セルの値を参照したいのであれば、Const(定数)ではダメですね。
逆に、「i」(変数)を書き込むのがアクティブシートのA1セルに固定されているのであれば、
.Range(conCell).Value = i ↓ .Range("A1").Value = i
のように直接書いたほうが分かりやすいように思います。(現状がダメとは言いませんが)
■3
↓もなんか回りくどい印象です。(こちらもダメではないかもしれませんが・・・)
With Application With .ActiveSheet
(もこな2) 2022/01/28(金) 11:17
もこな2さんの意見に同感ですが、 >何枚印刷するか は、もしかして連番1-5の部分をA3セルの値を参照して可変にするという意味では?
その辺を加味した参考例ですが、 Sub Print_Out_2()
Dim st As Long '開始番号 Dim ed As Long '終了番号 Dim i As Long
Application.ScreenUpdating = False With ActiveSheet st = .Range("A2").Value ed = st + .Range("A3").Value - 1 For i = st To ed .Range("A1").Value = i .PrintOut Next i .Range("A2").Value = i End With Application.ScreenUpdating = True End Sub
なお、 With ActiveSheet の部分は具体的なシート名を入れたほうが 間違いが起こりにくいので私としては好みです。 (try) 2022/01/28(金) 13:12
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.