朝倉市ニュース

朝倉市の話題や最新情報

Excel豆知識53 Sub 連続印刷 Dim i As

2021年3月6日 |

Excel豆知識53 Sub 連続印刷 Dim i As。リストデータが129048560480のように並んでいる場合開始を1290。Sub 連続印刷()
Dim i As Integer
Dim LastRow As Integer

Worksheets("印刷シート") Select With Worksheets("リストシート")
LastRow = Range("A65536") End(xlUp) Row
For i = 2 To LastRow
Range("AV5") Value = Range("A" & i) Value
ActiveSheet PrintOut
Next
End With
End Sub

ExcelのVBAに関する質問です

現在請求書を作るにあたり、VLOOKUPで別シートから項目を"印刷シート"に引っ張り、順番に印刷するマクロを作って、利用しています

使用コードを記載します

Dim i As Integer
Dim LastRow As Integer

Worksheets("印刷シート") Select

With Worksheets("リストシート")
LastRow = Range("A65536") End(xlUp) Row
For i = 2 To LastRow
Range("AV5") Value = Range("A" & i) Value
ActiveSheet PrintOut
Next
End With
End Sub

これなのですが、"リストシート"に項目が入っており、セルAV5に識別番号を入れ、それ以降のものを全部印刷するというマクロです

AV5の数字が順番に切り替わっていき、印刷、切り替わり印刷を繰り返します

ここからが質問なのですが、全部印刷するのではなく、セルをもう1つ設け、開始番号をAV5セル、終了番号を別セルに入力し、その番号の間のみ印刷を行いたいというものです

それにあたり、1つややこしい点がありまして
"リストシート"の識別番号は連番ではないのです

1025の次が950などと、数字に規則性がないのです

そのため、AV5が1025 終了番号セルが48と入力されていたら、"リストシート"の1025から48の間の番号を順番に引っ張り、印刷するようにしたいのです

皆様のお力をお貸し頂きたいです
宜しくお願いいたします 『マクロで連続印刷するとき。連続印刷_全部まとめて
頭紙 &#;←名簿一覧のシート内でループし
ますよ = &#;←列の

名簿から連続印刷の習作。連続印刷
通知書 名簿 =
= =Excelシートの大量印刷を簡単自動化。チェックシート等の型は同じだけど枚ずつ内容の違うシートを自動で一気に印刷
する方法のご紹介。 =
= 文の上に
あるは変数を宣言するためにあります。 今回使用した変数の「」宛名を変えて自動的に連続印刷する方法Excel2000以降。そこに。次のようにコードを記述してください。 連続印刷
発注書 名簿即効テクニック。_ &#;印刷実行用のボタン
_ _ = =
=, =, =
_ =

Excel豆知識53。として変数の宣言を強制しています
ので。 というふうに行目から行目までの繰り返しで使う変数を
長整数型で宣言しました。データ型についてはこちら。 整数型 は「複数シートの印刷PrintOut。=
=

リストデータが129048560480のように並んでいる場合開始を1290 終了を480 のようにしたいという事なら開始をAV5、終了をAV7に入れるとしてSub 連続印刷Dim sh As WorksheetDim sno As Long, eno As LongDim LastRow As IntegerDim srng As RangeDim i As LongSet sh = Worksheets印刷シートWith shsno = .RangeAV5.Valueeno = .RangeAV7.ValueEnd WithWith WorksheetsリストシートLastRow = .CellsRows.Count, 1.EndxlUp.RowWith .RangeA1:ALastRowSet srng = .FindWhat:=sno, LookIn:=xlValues, LookAt:=xlWholeEnd WithIf srng Is Nothing ThenMsgBox 開始番号がデータにありませんExit SubEnd Ifi = srng.RowDo Until iLastRowsh.RangeAV5.Value = .RangeAi.Value'sh.PrintOutsh.PrintPreviewIf .RangeAi.Value = eno ThenExit DoEnd Ifi = i + 1LoopEnd WithEnd SubリストシートのA列が必ず数値であるなら、印刷前に比較判定を行えば出来ると思います。参考にどうぞSub test Dim i As Integer Dim LastRow, MAX, MIN As LongWorksheets印刷シート.SelectWith Worksheetsリストシート LastRow = .RangeARows.Count.EndxlUp.Row'A2が開始値、B1に終了値がある場合 If .RangeA2.Value.RangeB1.Value Then MAX = .RangeA2.Value MIN = .RangeB1.Value Else MAX = .RangeB1.Value MIN = .RangeA2.Value End IfFor i = 2 To LastRow RangeAV5.Value = .RangeAi.Value If MIN = .RangeAi.Value And .RangeAi.Value = MAX Then ActiveSheet.PrintOut End If Next End WithEnd Sub

Comments

コメントを残す