質問編集履歴

2

手順4~6と12の見直しを行いました。

2020/03/25 04:33

投稿

aminothan
aminothan

スコア7

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- Book1には、個別ID・測定日時・身長・体重・血圧が保存されている。
9
+ Book1のSheet0には、個別ID・測定日時・身長・体重・血圧が保存されている。
10
10
 
11
11
  また、同一のIDで複数の測定データが保存され、それらはフィルタを用いて体重順に並んでいる。
12
12
 
@@ -78,6 +78,10 @@
78
78
 
79
79
  Set wb = ex.Workbooks.Open(Filename:=Path, UpdateLinks:=0, ReadOnly:=True, IgnoreReadOnlyRecommended:=True)
80
80
 
81
+
82
+
83
+ Windows("Book1.xlsm").Activate
84
+
81
85
  ```
82
86
 
83
87
 
@@ -88,7 +92,45 @@
88
92
 
89
93
  6.測定日時順に並び替える。
90
94
 
95
+ **⇒ ("$A$1:$E$12632")や("$B$1:$B$12632")で最終行まで指定していると思いますが、随時データが追加されていくため行数は可変となります。この場合どうすれば良いでしょうか。**
96
+
97
+ ```ExcelVBA
98
+
99
+ ActiveSheet.Range("$A$1:$E$12632").AutoFilter Field:=1, Criteria1:="個別ID"
100
+
101
+
102
+
103
+ ActiveSheet.Range("$A$1:$E$12632").AutoFilter Field:=4, Criteria1:=">=80", _
104
+
105
+
106
+
107
+ ActiveWorkbook.Worksheets("Sheet0").AutoFilter.Sort.SortFields.Clear
108
+
109
+ ActiveWorkbook.Worksheets("Sheet0").AutoFilter.Sort.SortFields.Add _
110
+
111
+ Key:=Range("$B$1:$B$12632"), _
112
+
113
+ SortOn:=xlSortOnValues, _
114
+
115
+ Order:=xlAscending, _
116
+
117
+ DataOption:=xlSortNormal
118
+
119
+ With ActiveWorkbook.Worksheets("Sheet0").AutoFilter.Sort
120
+
121
+ .Header = xlYes
122
+
123
+ .MatchCase = False
124
+
91
- 3.で開いたファイルにこの動作をする方法が分かりません。
125
+ .Orientation = xlTopToBottom
126
+
127
+ .SortMethod = xlPinYin
128
+
129
+ .Apply
130
+
131
+ End With
132
+
133
+ ```
92
134
 
93
135
 
94
136
 
@@ -96,7 +138,21 @@
96
138
 
97
139
  8.Book2のSheet2へ貼り付ける。
98
140
 
141
+
142
+
143
+ ```ExcelVBA
144
+
99
- Sheets("Data").Range("C3").CurrentRegion.Copy
145
+ ActiveSheet.Range("A2").CurrentRegion.Copy
146
+
147
+
148
+
149
+ Windows("Book2.xlsm").Activate
150
+
151
+ Sheets("Sheet2").Select
152
+
153
+ ActiveSheet.Paste
154
+
155
+ ```
100
156
 
101
157
 
102
158
 
@@ -104,25 +160,35 @@
104
160
 
105
161
  10.Sheet1のフォーマット内に貼り付ける。
106
162
 
107
- ⇒ Range("A1") = Sheets("Sheet2").Range("A1")
108
-
109
-
110
-
111
163
  11.Sheet1を印刷する。
112
164
 
165
+ ```ExcelVBA
166
+
113
- ⇒ Worksheets("Sheet1").PrintOut
167
+ Sheets("Sheet1").Select
168
+
169
+ Range("A1") = Sheets("Sheet2").Range("C3")
170
+
171
+
172
+
173
+ ActiveSheet.PrintOut
174
+
175
+ ```
114
176
 
115
177
 
116
178
 
117
179
  12.Sheet2の2行目をコピーする。(以降、最終行まで繰り返し)
118
180
 
119
- ⇒ 最終行までを判断して繰り返す方法が分かりません。
181
+ **⇒ 最終行までを判断して繰り返す方法が分かりません。**
120
182
 
121
183
 
122
184
 
123
185
  13.メッセージボックスで「印刷完了」と表示する。
124
186
 
187
+ ```ExcelVBA
188
+
125
- MsgBox "印刷完了"
189
+ MsgBox "印刷完了"
190
+
191
+ ```
126
192
 
127
193
 
128
194
 
@@ -144,6 +210,14 @@
144
210
 
145
211
 
146
212
 
213
+ [3/25追記]
214
+
215
+ 皆様のおかげで少しずつ理解してきました。ありがとうございます。
216
+
217
+ 手順4~6と12につきましてご教示の程、宜しくお願い致します。
218
+
219
+
220
+
147
221
  ### 補足情報
148
222
 
149
223
 

1

"試したこと"を追加しました。

2020/03/25 04:32

投稿

aminothan
aminothan

スコア7

test CHANGED
File without changes
test CHANGED
@@ -54,6 +54,78 @@
54
54
 
55
55
 
56
56
 
57
+ ### 試したこと
58
+
59
+
60
+
61
+ 2.[作業者] Sheet1の実行ボタンをクリックする。
62
+
63
+ ⇒ テキストボックスにマクロを登録
64
+
65
+
66
+
67
+ 3.Book1を読み取り専用で開く。
68
+
69
+ ```ExcelVBA
70
+
71
+ Dim ex As New Excel.Application '処理用Excel
72
+
73
+ Dim wb As Workbook 'ワークブック
74
+
75
+ Dim Path As String 'ブックファイルパス
76
+
77
+
78
+
79
+ Set wb = ex.Workbooks.Open(Filename:=Path, UpdateLinks:=0, ReadOnly:=True, IgnoreReadOnlyRecommended:=True)
80
+
81
+ ```
82
+
83
+
84
+
85
+ 4.入力された個別IDで絞り込む。
86
+
87
+ 5.体重80kg以上(仮)で絞り込む。
88
+
89
+ 6.測定日時順に並び替える。
90
+
91
+ ⇒ 3.で開いたファイルにこの動作をする方法が分かりません。
92
+
93
+
94
+
95
+ 7.データをコピーする。
96
+
97
+ 8.Book2のSheet2へ貼り付ける。
98
+
99
+ ⇒ Sheets("Data").Range("C3").CurrentRegion.Copy
100
+
101
+
102
+
103
+ 9.Sheet2の1行目をコピーする。
104
+
105
+ 10.Sheet1のフォーマット内に貼り付ける。
106
+
107
+ ⇒ Range("A1") = Sheets("Sheet2").Range("A1")
108
+
109
+
110
+
111
+ 11.Sheet1を印刷する。
112
+
113
+ ⇒ Worksheets("Sheet1").PrintOut
114
+
115
+
116
+
117
+ 12.Sheet2の2行目をコピーする。(以降、最終行まで繰り返し)
118
+
119
+ ⇒ 最終行までを判断して繰り返す方法が分かりません。
120
+
121
+
122
+
123
+ 13.メッセージボックスで「印刷完了」と表示する。
124
+
125
+ ⇒ MsgBox "印刷完了"
126
+
127
+
128
+
57
129
  ### 解決したいこと
58
130
 
59
131
 
@@ -62,11 +134,11 @@
62
134
 
63
135
  これらを組み合わせて実行することが出来ません。
64
136
 
65
- んな命令を、どの様な手順で活用すれば良いでしょうか。
137
+ 命令を、どの様な手順で活用すれば良いでしょうか。
66
138
 
67
139
 
68
140
 
69
- 質問内容が読みづらく申し訳ありません。
141
+ 初投稿であり、質問内容が漠然としており申し訳ありません。
70
142
 
71
143
  何卒、宜しくお願い致します。
72
144