質問編集履歴

2

不正削除の打ち消し

2018/07/01 23:39

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- Androidstudioエディタビューでタブ開いたままにする方法を教えください。
1
+ VBAで複数Excelファイル印刷するマクロについ
test CHANGED
@@ -1,3 +1,247 @@
1
+ ### 前提・実現したいこと
2
+
3
+ VBAでフォームのリストボックス内にダイアログで選択したExcelファイル(複数)を表示させ。
4
+
5
+ ①リストボックス内のExcelファイル(複数)をブック全体で印刷させたい。
6
+
7
+ (リストボックス内のファイルをループでアクティブにする方法orその他のやりかた)
8
+
9
+ ②ファイル選択ボタン押下でダイアログボックスのカレントディレクトリを指定したい
10
+
11
+ ③印刷した際に開いたファイルを開きっぱなしではなく自動で閉じるようにしたい
12
+
13
+ ④リストボックス内のファイルを印刷した後にリストボックス内に選択したファイルの表示を残す方法
14
+
15
+ ### 現在の状況
16
+
17
+ フォームのファイル選択ボタン押下でダイアログを開き、印刷したいExcelファイル(複数)を選択し、
18
+
19
+ リストボックスに選択したExcelファイル(複数)を表示させることはできましたが、
20
+
21
+ 印刷ボタンでリストボックス内のExcelファイル(複数)を印刷しようとしたのですが、
22
+
1
- Androidstudioエディタビューに開いているファイルがInternetexplorerを見て再度Androidstudioを開くと全て閉じてしまいます。いたままにておきたいです。
23
+ 複数印刷することができず、最初に選んだアクティブ(?)Excelファイルだけ印刷できる状態です。(うまくかなかっのでソースの記載な)
24
+
2
-
25
+ ### ThisWorkBook
26
+
27
+ ```VBA
28
+
29
+ Option Explicit
30
+
31
+ Sub Workbook_Open()
32
+
33
+ MainForm.Show
34
+
35
+ End Sub
36
+
37
+ ```
38
+
39
+ ### MainForm
40
+
41
+ ```VBA
42
+
43
+ Option Explicit
44
+
45
+ 'インスタンス生成
46
+
47
+ Dim CFileMgr As New FileMgr
48
+
49
+ '読み込みボタン押下時
50
+
51
+ Private Sub btn_FileOpen_Click()
52
+
53
+ CFileMgr.OpenFile
54
+
55
+ End Sub
56
+
57
+ '印刷ボタン押下時
58
+
59
+ Private Sub btn_FilePrint_Click()
60
+
61
+ CFileMgr.OpenFile
62
+
63
+ End Sub
64
+
65
+ ```
66
+
67
+ ### GrobalDate
68
+
69
+ ```VBA
70
+
71
+ Option Explicit
72
+
73
+ 'ユーザ定義型
74
+
75
+ Public Type FileData
76
+
77
+ FilePath As String
78
+
79
+ BookName As String
80
+
81
+ SheetName As String
82
+
83
+ End Type
84
+
85
+ 'グローバル変数定義
86
+
87
+ Public ListInput() As FileData 'ファイルデータリスト
88
+
89
+ Public ListIndex As Integer 'リスト内現在位置
90
+
91
+ ```
92
+
93
+ ### FileMgr
94
+
95
+ ```VBA
96
+
97
+ Option Explicit
98
+
99
+ Dim OpenFileName As Variant 'ファイル格納用
100
+
101
+ Dim Count As Interger 'ファイル数
102
+
103
+ Public isCansel As Boolean 'キャンセルフラグ
104
+
105
+ 'コンストラクタ
106
+
107
+ Private Sub Class_Initialize()
108
+
109
+ isCansel = False
110
+
111
+ Count = 0
112
+
113
+ ChDir (ThisWorkbook.Path)
114
+
115
+ End Sub
116
+
3
- 設定のやり方をご存じの方がいゃいましら教えてください。
117
+ 'ダイアログボックスか選択したファイルとパス取得
118
+
119
+ Public Sub OpenFile()
120
+
121
+ Dim Target As Variant
122
+
123
+ Dim i As Integer
124
+
125
+ Dim isNew,isAddList As Boolean
126
+
127
+ isCansel = False
128
+
129
+ isAddList = False
130
+
131
+ '選択ファイルを開いて名前を格納する
132
+
133
+ OpenFileName = Application.GetOpenFilename(FileFilter:="Microsoft Excelブック,*.xls?",MultiSelect:=True)
134
+
135
+ 'ファイル選択時の処理
136
+
137
+ If IsArray(OpenFileName) Then
138
+
139
+ For Each Target In OpenFileName
140
+
141
+ '初回時
142
+
143
+ If Sgn(ListInput) = 0 Then
144
+
145
+ 'リストにファイル情報を格納
146
+
147
+ ReDim Preserve ListInput(Count)
148
+
149
+ ListInput(Count).BookName = dir(Target)
150
+
151
+ ListInput(Count).FilePath = Target
152
+
153
+ 'カウンタ加算
154
+
155
+ Count = Count + 1
156
+
157
+ 'リスト追加フラグ
158
+
159
+ isAddList = True
160
+
161
+ Else
162
+
163
+ 'フラグ初期化
164
+
165
+ isNew = True
166
+
167
+ '重複チェック
168
+
169
+ For i = 0 To UBound(ListInput)
170
+
171
+ If ListInput(i).BookName = dir(Target) Then
172
+
173
+ isNew = False
174
+
175
+ Exit For
176
+
177
+ End If
178
+
179
+ Next i
180
+
181
+ '新規登録
182
+
183
+ If isNew Then
184
+
185
+ 'リストにファイル情報を格納
186
+
187
+ ReDim Preserve ListInput(Count)
188
+
189
+ ListInput(Count).BookName = dir(Target)
190
+
191
+ ListInput(Count).FilePath = Target
192
+
193
+ 'カウンタ加算
194
+
195
+ Count = Count + 1
196
+
197
+ ’リスト追加フラグオン
198
+
199
+ isAddList = True
200
+
201
+ End If
202
+
203
+ End If
204
+
205
+ Next Target
206
+
207
+ Else
208
+
209
+ 'キャンセル時
210
+
211
+ isCansel = True
212
+
213
+ Exit Sub
214
+
215
+ End If
216
+
217
+ '新規追加時のみリスト登録処理
218
+
219
+ If isAddList Then SetListInput()
220
+
221
+ End Sub
222
+
223
+ 'リストに登録
224
+
225
+ Private Sub SetListInput()
226
+
227
+ Dim i As Long
228
+
229
+ 'リストボックスクリア
230
+
231
+ MainForm.BookInput.Clear
232
+
233
+ '登録
234
+
235
+ For i = 0 To UBound(ListInput)
236
+
237
+ MainForm.BookInput.AddItem ListInput(i).BookName
238
+
239
+ Next i
240
+
241
+ End Sub
242
+
243
+
244
+
245
+ ```
246
+
247
+ よろしくお願いいたします。

1

2018/07/01 23:39

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- VBAで複数のExcelファイル印刷するマクロにつ
1
+ Androidstudioのエディタビュータブ開いたままにする方法を教えてくださ
test CHANGED
@@ -1,305 +1,3 @@
1
- ### 前提・実現したいこと
1
+ Androidstudioのエディタビューに開いているファイルがInternetexplorerを見て再度Androidstudioを開くと全て閉じてまいます。開いままにしておきたです。
2
2
 
3
-
4
-
5
- VBAでフォームのリストボックス内にダイアログで選択したExcelファイル(複数)を表示させ。
6
-
7
- ①リストボックス内のExcelファイル(複数)をブック全体で印刷させたい。
8
-
9
- (リストボックス内のファイルをループでアクティブにする方法orその他のやりかた)
10
-
11
- ②ファイル選択ボタン押下でダイアログボックスのカレントディレクトリを指定したい
12
-
13
- ③印刷した際に開いたファイルを開きっぱなしではなく自動で閉じるようにしたい
14
-
15
- ④リストボックス内のファイルを印刷した後にリストボックス内に選択したファイルの表示を残す方法
16
-
17
-
18
-
19
- ### 現在の状況
20
-
21
- フォームのファイル選択ボタン押下でダイアログを開き、印刷したいExcelファイル(複数)を選択し、
22
-
23
- リストボックスに選択したExcelファイル(複数)を表示させることはできましたが、
24
-
25
- 印刷ボタンでリストボックス内のExcelファイル(複数)を印刷しようとしたのですが、
26
-
27
- 複数印刷することができず、最初に選んだアクティブ(?)のExcelファイルだけが印刷できる状態です。(うまくいかなかったのでソースの記載なし)
28
-
29
-
30
-
31
-
32
-
33
- ### ThisWorkBook
34
-
35
-
36
-
37
- ```VBA
38
-
39
- Option Explicit
40
-
41
- Sub Workbook_Open()
42
-
43
- MainForm.Show
44
-
45
- End Sub
46
-
47
- ```
48
-
49
- ### MainForm
50
-
51
- ```VBA
52
-
53
- Option Explicit
54
-
55
- 'インスタンス生成
56
-
57
- Dim CFileMgr As New FileMgr
58
-
59
-
60
-
61
- '読み込みボタン押下時
62
-
63
- Private Sub btn_FileOpen_Click()
64
-
65
- CFileMgr.OpenFile
66
-
67
- End Sub
68
-
69
-
70
-
71
- '印刷ボタン押下時
72
-
73
- Private Sub btn_FilePrint_Click()
74
-
75
- CFileMgr.OpenFile
76
-
77
- End Sub
78
-
79
- ```
80
-
81
-
82
-
83
- ### GrobalDate
84
-
85
- ```VBA
86
-
87
- Option Explicit
88
-
89
-
90
-
91
- 'ユーザ定義型
92
-
93
- Public Type FileData
94
-
95
- FilePath As String
96
-
97
- BookName As String
98
-
99
- SheetName As String
100
-
101
- End Type
102
-
103
- 'グローバル変数定義
104
-
105
- Public ListInput() As FileData 'ファイルデータリスト
106
-
107
- Public ListIndex As Integer 'リスト内現在位置
108
-
109
- ```
110
-
111
-
112
-
113
-
114
-
115
- ### FileMgr
116
-
117
- ```VBA
118
-
119
- Option Explicit
120
-
121
- Dim OpenFileName As Variant 'ファイル格納用
122
-
123
- Dim Count As Interger 'ファイル数
124
-
125
- Public isCansel As Boolean 'キャンセルフラグ
126
-
127
-
128
-
129
- 'コンストラクタ
130
-
131
- Private Sub Class_Initialize()
132
-
133
- isCansel = False
134
-
135
- Count = 0
136
-
137
- ChDir (ThisWorkbook.Path)
138
-
139
- End Sub
140
-
141
-
142
-
143
- 'ダイアログボックスか選択したファイルとパス取得
3
+ 設定のやり方をご存じの方がいゃいましら教えてください。
144
-
145
- Public Sub OpenFile()
146
-
147
- Dim Target As Variant
148
-
149
- Dim i As Integer
150
-
151
- Dim isNew,isAddList As Boolean
152
-
153
-
154
-
155
- isCansel = False
156
-
157
- isAddList = False
158
-
159
-
160
-
161
- '選択ファイルを開いて名前を格納する
162
-
163
- OpenFileName = Application.GetOpenFilename(FileFilter:="Microsoft Excelブック,*.xls?",MultiSelect:=True)
164
-
165
-
166
-
167
- 'ファイル選択時の処理
168
-
169
- If IsArray(OpenFileName) Then
170
-
171
- For Each Target In OpenFileName
172
-
173
-
174
-
175
- '初回時
176
-
177
- If Sgn(ListInput) = 0 Then
178
-
179
-
180
-
181
- 'リストにファイル情報を格納
182
-
183
- ReDim Preserve ListInput(Count)
184
-
185
- ListInput(Count).BookName = dir(Target)
186
-
187
- ListInput(Count).FilePath = Target
188
-
189
-
190
-
191
- 'カウンタ加算
192
-
193
- Count = Count + 1
194
-
195
-
196
-
197
- 'リスト追加フラグ
198
-
199
- isAddList = True
200
-
201
- Else
202
-
203
- 'フラグ初期化
204
-
205
- isNew = True
206
-
207
-
208
-
209
- '重複チェック
210
-
211
- For i = 0 To UBound(ListInput)
212
-
213
- If ListInput(i).BookName = dir(Target) Then
214
-
215
- isNew = False
216
-
217
- Exit For
218
-
219
- End If
220
-
221
- Next i
222
-
223
- '新規登録
224
-
225
- If isNew Then
226
-
227
-
228
-
229
- 'リストにファイル情報を格納
230
-
231
- ReDim Preserve ListInput(Count)
232
-
233
- ListInput(Count).BookName = dir(Target)
234
-
235
- ListInput(Count).FilePath = Target
236
-
237
-
238
-
239
- 'カウンタ加算
240
-
241
- Count = Count + 1
242
-
243
-
244
-
245
- ’リスト追加フラグオン
246
-
247
- isAddList = True
248
-
249
- End If
250
-
251
- End If
252
-
253
- Next Target
254
-
255
- Else
256
-
257
-
258
-
259
- 'キャンセル時
260
-
261
- isCansel = True
262
-
263
- Exit Sub
264
-
265
- End If
266
-
267
-
268
-
269
- '新規追加時のみリスト登録処理
270
-
271
- If isAddList Then SetListInput()
272
-
273
- End Sub
274
-
275
-
276
-
277
- 'リストに登録
278
-
279
- Private Sub SetListInput()
280
-
281
- Dim i As Long
282
-
283
- 'リストボックスクリア
284
-
285
- MainForm.BookInput.Clear
286
-
287
- '登録
288
-
289
- For i = 0 To UBound(ListInput)
290
-
291
- MainForm.BookInput.AddItem ListInput(i).BookName
292
-
293
- Next i
294
-
295
- End Sub
296
-
297
-
298
-
299
-
300
-
301
- ```
302
-
303
-
304
-
305
- よろしくお願いいたします。