質問編集履歴
1
エラーの詳細、インデントの修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,8 +1,12 @@
|
|
1
1
|
Excel上F列の最終行数によって、印刷するページを変更して自動印刷するVBAを作成しようと思っております。
|
2
2
|
|
3
|
-
実行をしてみた所、以下最終行を取得する所で400エラーとなります。
|
3
|
+
実行をしてみた所、以下最終行を取得する所で400エラー(※)となります。
|
4
4
|
考えられる原因教えて頂けますでしょうか。
|
5
5
|
|
6
|
+
ポップアップウィンドウで400のみ表示されました。
|
7
|
+
調べてみた所、「VBA エラー 400 アプリケーション定義または
|
8
|
+
オブジェクト定義のエラーです。」となっておりました。
|
9
|
+
|
6
10
|
MaxRow = wb.Worksheets(i).Cells(Rows.Count, 6).End(xlUp).Row
|
7
11
|
|
8
12
|
wb.Worksheets(i)をActivesheetに変更しても同様のエラーが発生しました。
|
@@ -19,33 +23,31 @@
|
|
19
23
|
fol = "C:\temp"
|
20
24
|
f = Dir(fol & "*.xls")
|
21
25
|
Do While f <> ""
|
22
|
-
Set wb = Workbooks.Open(fol & "\" & f)
|
26
|
+
Set wb = Workbooks.Open(fol & "\" & f)
|
23
|
-
wscnt = wb.Worksheets.Count
|
27
|
+
wscnt = wb.Worksheets.Count
|
24
28
|
|
25
29
|
For i = 1 To wscnt
|
26
30
|
|
27
|
-
MaxRow = wb.Worksheets(i).Cells(Rows.Count, 6).End(xlUp).Row
|
31
|
+
MaxRow = wb.Worksheets(i).Cells(Rows.Count, 6).End(xlUp).Row
|
28
32
|
|
29
|
-
MsgBox MaxRow
|
33
|
+
MsgBox MaxRow
|
30
34
|
|
31
|
-
With wb.Worksheets(i).PageSetup
|
35
|
+
With wb.Worksheets(i).PageSetup
|
32
|
-
|
36
|
+
.Orientation = xlPortrait
|
33
|
-
|
37
|
+
.Zoom = False
|
34
|
-
|
38
|
+
If MaxRow > 20 Then
|
35
|
-
|
39
|
+
.FitToPagesTall = 1
|
36
|
-
|
40
|
+
Else
|
37
|
-
|
41
|
+
.FitToPagesTall = 2
|
38
|
-
|
39
|
-
|
42
|
+
End If
|
40
43
|
|
41
|
-
.FitToPagesTall = 1
|
42
|
-
|
44
|
+
.FitToPagesWide = 1
|
43
|
-
End With
|
45
|
+
End With
|
44
46
|
|
45
|
-
wb.Worksheets(i).PrintOut
|
47
|
+
wb.Worksheets(i).PrintOut
|
46
|
-
Next i
|
48
|
+
Next i
|
47
|
-
wb.Close
|
49
|
+
wb.Close
|
48
|
-
f = Dir()
|
50
|
+
f = Dir()
|
49
51
|
Loop
|
50
52
|
Set wb = Nothing
|
51
53
|
End Sub
|