Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


250 / 13645 ツリー ←次へ | 前へ→

【81317】印刷について kanikaani 20/6/2(火) 20:33 質問[未読]
【81319】Re:印刷について マナ 20/6/2(火) 21:19 発言[未読]
【81320】Re:印刷について kanikaani 20/6/2(火) 22:21 質問[未読]
【81321】Re:印刷について マナ 20/6/2(火) 22:27 発言[未読]
【81322】Re:印刷について kanikaani 20/6/3(水) 11:18 お礼[未読]

【81317】印刷について
質問  kanikaani  - 20/6/2(火) 20:33 -

引用なし
パスワード
   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

【81319】Re:印刷について
発言  マナ  - 20/6/2(火) 21:19 -

引用なし
パスワード
   ▼kanikaani さん:

動作確認用に、ばっさり削除しました。
これで、印刷されますか。

Sub 見積書作成()
  Dim lst As Worksheet, tmp As Worksheet, sh As Worksheet
  
  'リストのあるシート
  Set lst = Sheets("データ")
  '請求書テンプレート
  Set tmp = Sheets("見積書")
  
  tmp.Copy After:=Sheets(Sheets.Count)
  Set sh = ActiveSheet
 
  sh.Range("D1").Value = lst.Range("a2").Value
  
  sh.PrintOut

 End Sub

【81320】Re:印刷について
質問  kanikaani  - 20/6/2(火) 22:21 -

引用なし
パスワード
   ▼マナ さん:

ご丁寧にありがとうございます
なんとかできそうですが
印刷する際に見積書のひな形まで印刷されてしまうようです
自分で直したらバグがでてしまいました...

【81321】Re:印刷について
発言  マナ  - 20/6/2(火) 22:27 -

引用なし
パスワード
   ▼kanikaani さん:

>印刷する際に見積書のひな形まで印刷されてしまうようです

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  <ーーこの行が必要ない

..

【81322】Re:印刷について
お礼  kanikaani  - 20/6/3(水) 11:18 -

引用なし
パスワード
   ▼マナ さん:
無事にできました!
本当に本当にありがとうございました。

250 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free