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

質問編集履歴

2

不正削除の打ち消し

2018/07/01 23:39

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- Androidstudioのエディタビュータブ開いたままにする方法を教えてくださ
1
+ VBA複数のExcelファイル印刷するマクロにつ
body CHANGED
@@ -1,2 +1,124 @@
1
+ ### 前提・実現したいこと
2
+ VBAでフォームのリストボックス内にダイアログで選択したExcelファイル(複数)を表示させ。
3
+ ①リストボックス内のExcelファイル(複数)をブック全体で印刷させたい。
4
+ (リストボックス内のファイルをループでアクティブにする方法orその他のやりかた)
5
+ ②ファイル選択ボタン押下でダイアログボックスのカレントディレクトリを指定したい
6
+ ③印刷した際に開いたファイルを開きっぱなしではなく自動で閉じるようにしたい
7
+ ④リストボックス内のファイルを印刷した後にリストボックス内に選択したファイルの表示を残す方法
8
+ ### 現在の状況
9
+ フォームのファイル選択ボタン押下でダイアログを開き、印刷したいExcelファイル(複数)を選択し、
10
+ リストボックスに選択したExcelファイル(複数)を表示させることはできましたが、
11
+ 印刷ボタンでリストボックス内のExcelファイル(複数)を印刷しようとしたのですが、
1
- Androidstudioのエディタビューに開いているファイルがInternetexplorerを見て再度Androidstudioを開くと全て閉じてしまいます。開いたまにしておきたいです。
12
+ 複数印刷すことができず、最初に選んだアクティブ(?)のExcelファイルだけ印刷できる状態です。(うかなかったのソースの記載なし)
13
+ ### ThisWorkBook
14
+ ```VBA
15
+ Option Explicit
16
+ Sub Workbook_Open()
17
+ MainForm.Show
18
+ End Sub
19
+ ```
20
+ ### MainForm
21
+ ```VBA
22
+ Option Explicit
23
+ 'インスタンス生成
24
+ Dim CFileMgr As New FileMgr
25
+ '読み込みボタン押下時
26
+ Private Sub btn_FileOpen_Click()
27
+ CFileMgr.OpenFile
28
+ End Sub
29
+ '印刷ボタン押下時
30
+ Private Sub btn_FilePrint_Click()
31
+ CFileMgr.OpenFile
32
+ End Sub
33
+ ```
34
+ ### GrobalDate
35
+ ```VBA
36
+ Option Explicit
37
+ 'ユーザ定義型
38
+ Public Type FileData
39
+ FilePath As String
40
+ BookName As String
41
+ SheetName As String
42
+ End Type
43
+ 'グローバル変数定義
44
+ Public ListInput() As FileData 'ファイルデータリスト
45
+ Public ListIndex As Integer 'リスト内現在位置
46
+ ```
47
+ ### FileMgr
48
+ ```VBA
49
+ Option Explicit
50
+ Dim OpenFileName As Variant 'ファイル格納用
51
+ Dim Count As Interger 'ファイル数
52
+ Public isCansel As Boolean 'キャンセルフラグ
53
+ 'コンストラクタ
54
+ Private Sub Class_Initialize()
55
+ isCansel = False
56
+ Count = 0
57
+ ChDir (ThisWorkbook.Path)
58
+ End Sub
2
- 設定のやり方をご存じの方がいゃいましら教えてください。
59
+ 'ダイアログボックスか選択したファイルとパス取得
60
+ Public Sub OpenFile()
61
+ Dim Target As Variant
62
+ Dim i As Integer
63
+ Dim isNew,isAddList As Boolean
64
+ isCansel = False
65
+ isAddList = False
66
+ '選択ファイルを開いて名前を格納する
67
+ OpenFileName = Application.GetOpenFilename(FileFilter:="Microsoft Excelブック,*.xls?",MultiSelect:=True)
68
+ 'ファイル選択時の処理
69
+ If IsArray(OpenFileName) Then
70
+ For Each Target In OpenFileName
71
+ '初回時
72
+ If Sgn(ListInput) = 0 Then
73
+ 'リストにファイル情報を格納
74
+ ReDim Preserve ListInput(Count)
75
+ ListInput(Count).BookName = dir(Target)
76
+ ListInput(Count).FilePath = Target
77
+ 'カウンタ加算
78
+ Count = Count + 1
79
+ 'リスト追加フラグ
80
+ isAddList = True
81
+ Else
82
+ 'フラグ初期化
83
+ isNew = True
84
+ '重複チェック
85
+ For i = 0 To UBound(ListInput)
86
+ If ListInput(i).BookName = dir(Target) Then
87
+ isNew = False
88
+ Exit For
89
+ End If
90
+ Next i
91
+ '新規登録
92
+ If isNew Then
93
+ 'リストにファイル情報を格納
94
+ ReDim Preserve ListInput(Count)
95
+ ListInput(Count).BookName = dir(Target)
96
+ ListInput(Count).FilePath = Target
97
+ 'カウンタ加算
98
+ Count = Count + 1
99
+ ’リスト追加フラグオン
100
+ isAddList = True
101
+ End If
102
+ End If
103
+ Next Target
104
+ Else
105
+ 'キャンセル時
106
+ isCansel = True
107
+ Exit Sub
108
+ End If
109
+ '新規追加時のみリスト登録処理
110
+ If isAddList Then SetListInput()
111
+ End Sub
112
+ 'リストに登録
113
+ Private Sub SetListInput()
114
+ Dim i As Long
115
+ 'リストボックスクリア
116
+ MainForm.BookInput.Clear
117
+ '登録
118
+ For i = 0 To UBound(ListInput)
119
+ MainForm.BookInput.AddItem ListInput(i).BookName
120
+ Next i
121
+ End Sub
122
+
123
+ ```
124
+ よろしくお願いいたします。

1

2018/07/01 23:39

投稿

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