|
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
|
|