| 
    
     |  | VBAで見積書を作っています 件数ごとに自動的に見積書を作成することはできるのですが、印刷することができません
 
 もしかしたら私のパソコンやエクセルの設定がおかしいのかもしれませんが
 私の作成しているVBAのほうが間違っている可能性が一番大きいと思うので
 質問させていただきました。
 
 『元々作成していたもの』
 Sub 見積書作成()
 Dim lst As Worksheet, tmp As Worksheet, sh As Worksheet
 Dim i As Long
 'リストのあるシート
 Set lst = Sheets("データ")
 '請求書テンプレート
 Set tmp = Sheets("見積書")
 
 ActiveSheet.PrintOut Preview:=True
 
 'B列2行目から最終行の手前まで
 For i = 2 To lst.Cells(Rows.Count, "B").End(xlUp).Row
 'テンプレコピー
 tmp.Copy After:=Sheets(Sheets.Count)
 With lst
 '新規シート名はB列の文字列
 ActiveSheet.Name = .Cells(i, "B") & "様"
 Set sh = ActiveSheet
 
 '番号/名前
 Range("D1").Value = Worksheets("データ").Range("a" & i).Value
 Range("A5").Value = Worksheets("データ").Range("b" & i).Value
 
 'コピペ部分/行列を入れ替えて値でペースト
 .Range(.Cells(i, "C"), .Cells(i, "J")).Copy
 sh.Range("A12").PasteSpecial Paste:=xlPasteValues, Transpose:=True
 .Range(.Cells(i, "K"), .Cells(i, "R")).Copy
 sh.Range("C12").PasteSpecial Paste:=xlPasteValues, Transpose:=True
 
 '計算
 Range("D12:D19").Formula = "=(B12:B19*C12:C19)"
 Range("D20").Formula = "=SUM(D12:D19)"
 Range("D21").Formula = "=D20*0.05"
 Range("D22").Formula = "=D20+D21"
 Range("B9") = Range("D22")
 
 [ActiveSheet.PrintOut
 ActiveSheet.Printpreview
 .PrintOut
 .Printpreview などを試しています]
 End With
 Next i
 Application.CutCopyMode = False
 
 End Sub
 
 |  |