• ベストアンサー

マクロで行を増やすにはどうすればいいでしょうか?

例えば、sheet1で3行商品を入力して、コマンドボタンをおしたらsheet2へ転写する。 ここまではできますが、sheet2は発注書で印刷するため7行までしか一ページにはいりきらないので、sheet1で8行目を入力したらsheet2で2ページ目にいくようにするにはどうすればいいでしょうか? また、3行しか入力しなかったら、3行だけ分のレイアウトで終わるようにもしたいです。 すみませんが、何か方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • ester09
  • ベストアンサー率100% (3/3)
回答No.1

A1から入力されていることを前提に書いています。 また、テンプレートが無いことを前提に書いています。 Sub Substitution() 'CellD:セルに入力された行数 'i:Forで使用 'P:Sheet2の行数管理に使用 Dim CellD, i, P As Integer P = 1 'SheetName:シートの名前を代入 Dim SheetName As String SheetName = ThisWorkbook.ActiveSheet.Name '行数の代入 CellD = Range("A1").CurrentRegion.End(xlDown).Row For i = 1 To CellD Step 7 If CellD - i > 7 Then Range("A" + CStr(i) + ":A" + CStr(i + 6)).Select Selection.Copy Sheets("Sheet2").Select Range("A" + CStr(P)).Select ActiveSheet.Paste P = P + 7 Range("A" + CStr(P)).Select '改行 ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell Sheets(SheetName).Select Else Range("A" + CStr(i) + ":A" + CStr(CellD)).Select Selection.Copy Sheets("Sheet2").Select Range("A" + CStr(P)).Select ActiveSheet.Paste '改行 Range("A" + CStr(CellD + 1)).Select ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell End If Next End Sub

その他の回答 (1)

  • ester09
  • ベストアンサー率100% (3/3)
回答No.2

すいません うっかり訂正前のを書いてしまいました(汗 下のコードは1,2行だとおかしなことになるかもしれません 2行以上は必ず書いてください 訂正箇所 If CellD - i > 7 Then ↓ If CellD - i >= 7 Then

ytsugie
質問者

お礼

お礼が遅くなりました どうもありがとうございました

関連するQ&A