teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2021/06/09 01:14

投稿

jinoji
jinoji

スコア4592

answer CHANGED
@@ -62,18 +62,16 @@
62
62
 
63
63
  ```VBA
64
64
  Sub macro2()
65
-
65
+
66
- Dim dic 'As Scripting.Dictionary
66
+ Dim i
67
- Set dic = CreateObject("Scripting.Dictionary")
68
-
69
- Dim ws As Worksheet
67
+ ReDim wsNames(1 To Worksheets.Count)
70
- For Each ws In Sheets
68
+ For i = 1 To Worksheets.Count
71
- dic.Add ws.Name, ws
69
+ wsNames(i) = Worksheets(i).Name
72
70
  Next
73
-
71
+
74
72
  Dim v, ary
75
73
  For Each v In Array("100", "200", "300")
76
- ary = Filter(dic.Keys, v)
74
+ ary = Filter(wsNames, v)
77
75
  If UBound(ary) > -1 Then
78
76
  Worksheets(ary).Select
79
77
  ActiveSheet.ExportAsFixedFormat Type:=0, Filename:=v & ".pdf"
@@ -81,5 +79,27 @@
81
79
  Next
82
80
 
83
81
  End Sub
82
+ ```
83
+ ```VBA
84
+ Sub macro3()
84
85
 
86
+ Dim dic 'As Scripting.Dictionary
87
+ Set dic = CreateObject("Scripting.Dictionary")
88
+
89
+ Dim ws As Worksheet, tCode As String
90
+ For Each ws In Sheets
91
+ tCode = Left(ws.Name, 3)
92
+ dic(tCode) = dic(tCode) & " " & ws.Name
93
+ Next
94
+
95
+ Dim k
96
+ For Each k In dic
97
+ Worksheets(Split(Trim(dic(k)))).Select
98
+ ActiveSheet.ExportAsFixedFormat Type:=0, Filename:=k & ".pdf"
99
+ Next
100
+
101
+ End Sub
102
+
103
+
104
+
85
105
  ```

1

追記

2021/06/09 01:14

投稿

jinoji
jinoji

スコア4592

answer CHANGED
@@ -55,4 +55,31 @@
55
55
  End Sub
56
56
 
57
57
 
58
+ ```
59
+ ---
60
+
61
+ <追記>別解を考えてみました。
62
+
63
+ ```VBA
64
+ Sub macro2()
65
+
66
+ Dim dic 'As Scripting.Dictionary
67
+ Set dic = CreateObject("Scripting.Dictionary")
68
+
69
+ Dim ws As Worksheet
70
+ For Each ws In Sheets
71
+ dic.Add ws.Name, ws
72
+ Next
73
+
74
+ Dim v, ary
75
+ For Each v In Array("100", "200", "300")
76
+ ary = Filter(dic.Keys, v)
77
+ If UBound(ary) > -1 Then
78
+ Worksheets(ary).Select
79
+ ActiveSheet.ExportAsFixedFormat Type:=0, Filename:=v & ".pdf"
80
+ End If
81
+ Next
82
+
83
+ End Sub
84
+
58
85
  ```