回答編集履歴
1
サンプルコード追記
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
|
+
```
|