回答編集履歴

1

サンプルコード追記

2021/06/07 07:06

投稿

hatena19
hatena19

スコア33795

test CHANGED
@@ -9,3 +9,81 @@
9
9
 
10
10
 
11
11
  [複数シートの印刷(PrintOut)|VBAサンプル集](https://excel-ubara.com/excelvba5/EXCELVBA205.html)
12
+
13
+
14
+
15
+ ---
16
+
17
+ 取りあえずのサンプルコードです。
18
+
19
+ アクティブなシートを3回コピー追加してプレビューします。
20
+
21
+ 3つ固定なので、コピー数を可変にしたい場合は、もう少し工夫が必要です。
22
+
23
+
24
+
25
+ ```vba
26
+
27
+ Public Sub PreViewTest()
28
+
29
+
30
+
31
+ Const lgStart As Long = 1
32
+
33
+ Const lgStep As Long = 1
34
+
35
+
36
+
37
+ Dim lgEnd As Long, lgPosition As Long
38
+
39
+ lgEnd = 3 '取りあえず3つぶんプレビュー
40
+
41
+ lgPosition = 1
42
+
43
+
44
+
45
+ Dim ws As Worksheet
46
+
47
+ Set ws = ActiveSheet
48
+
49
+
50
+
51
+ Application.ScreenUpdating = False
52
+
53
+ Application.DisplayAlerts = False
54
+
55
+
56
+
57
+ Dim i As Long
58
+
59
+ For i = lgStart To lgEnd Step lgStep
60
+
61
+ ws.Copy After:=Worksheets(Worksheets.Count) '末尾にシートをコピー
62
+
63
+ ' Call PMNest 'lgPositionの値によって、シートに表示する値を変更する関数
64
+
65
+ ActiveSheet.Cells(1, 1) = i '取りあえず追加コピーしたシートのA1に代入
66
+
67
+ lgPosition = lgPosition + 1
68
+
69
+ Next
70
+
71
+
72
+
73
+ With Sheets(Array(Worksheets.Count - 2, Worksheets.Count - 1, Worksheets.Count))
74
+
75
+ .PrintPreview '追加したシートをまとめてプレビュー
76
+
77
+ .Delete '追加したシートを削除
78
+
79
+ End With
80
+
81
+
82
+
83
+ Application.DisplayAlerts = True
84
+
85
+ Application.ScreenUpdating = True
86
+
87
+ End Sub
88
+
89
+ ```