[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Do Loopを使って印刷しようとしたら止まらない』(がんばるVBA)
こんにちは。
B1にある文字をF18(セル結合してF18〜I18)にコピペし印刷、次にB2にある文字を同じくF18にコピペし印刷というマクロをつくりました。Bセルに入力されている範囲がB5までであったりB10までであったりするので、RowPos+1という形でB○セルが空欄になったらLOOPを抜けるとして印刷をしたところ、抜け出せなくなり印刷が止まらなくなってしまいました。Loopを終了させる為にはどのようなコードを使えばよいのでしょうか・・・?
With ActiveSheet
Dim i As Byte RowPos = 1
Do Cells(1, 2).Select Selection.Copy Range("F18:I18").Select ActiveSheet.Paste Application.CutCopyMode = False ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _ IgnorePrintAreas:=False
RowPos = RowPos + 1
Cells(RowPos, 2).Select Selection.Copy Range("F18:I18").Select ActiveSheet.Paste Application.CutCopyMode = False ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _ IgnorePrintAreas:=False
Loop while Cells(RowPos,2).value = ""
End With
End Sub
< 使用 Excel:Excel2010、使用 OS:Windows8 >
(がんばるVBA) 2016/04/26(火) 09:56
原因かどうかはわからないが。 (あとこちらへの書き込み時のミスかもしれないが) >With ActiveSheet としているのにCellsやRangeの頭に「.」がなく全く使われていないのは?
(ねむねむ) 2016/04/26(火) 09:59
Loop until trim(Cells(RowPos,2).value) = "" (abc1965) 2016/04/26(火) 10:17
(がんばるVBA) 2016/04/26(火) 11:39
プリントまでは試していませんが・・・
Sub test()
Dim i As Long, LastRow As Long
LastRow = Cells(Rows.Count, 2).End(xlUp).Row
i = 1 Do Range("F18").Value = Range("B" & i).Value ActiveSheet.PrintOut i = i + 1 Loop Until i > LastRow
End Sub (se_9) 2016/04/26(火) 11:52
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.