回答編集履歴
9
ミス
test
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
|
25
25
|
「1シートにつき1つの表」、が前提ですけど・・・。
|
26
26
|
|
27
|
-
(※コメントがやたら長いので、不要なら全部消して見てみてください。コード自体はかなり少ないです。 あと、「xlsmやxlsx」を読みに行くときは、"DriverId=790;"を"DriverId=1046;"に書き変えたほうがいいかもしれません。)
|
27
|
+
(※コメントがやたら長いので、不要なら全部消して見てみてください。コード自体はかなり少ないです。 あと、「xlsmやxlsx」を読みに行くときは、"DriverId=790;"を"DriverId=1046;"に書き変えたほうがいいかもしれません。)※こちらのテストでは、xlsにも、xlsmに対しても、覗きにいくことができました。 (ダメだったらすみません!)
|
28
28
|
|
29
29
|
|
30
30
|
|
@@ -68,13 +68,15 @@
|
|
68
68
|
|
69
69
|
SQLを使う場合、複数の条件であっても、1つ1つが複雑でないとか、リレーション(VlookUp関数のような紐つけ)も同時に使いながらとか、でしたら、通常のVBAでデータ抽出(取り込み)するよりははるかにラクだとは思います。
|
70
70
|
|
71
|
-
|
72
|
-
|
73
|
-
|
71
|
+
また、リレーションが使えるので、たとえば
|
74
|
-
|
75
|
-
|
76
|
-
|
72
|
+
|
77
|
-
|
73
|
+
・「顧客マスタと売上明細を、”顧客ID”の値で紐付けて、その横結合結果(購入履歴)を表示」とか、
|
74
|
+
|
75
|
+
・「顧客IDごとに商品カテゴリごとにグループ化して売り上げ集計」とか、
|
76
|
+
|
77
|
+
・「いつからいつまでのどの地域のお客様の売上集計」とか、
|
78
|
+
|
79
|
+
いろんなリストアップや集計ができます。
|
78
80
|
|
79
81
|
|
80
82
|
|
8
ミス
test
CHANGED
@@ -224,15 +224,15 @@
|
|
224
224
|
|
225
225
|
|
226
226
|
|
227
|
-
'今回のこの例では、今開いているブックの「Sheet2」シートに対して、
|
227
|
+
'今回のこの例(上記コード)では、今開いているブックの「Sheet2」シートに対して、
|
228
228
|
|
229
229
|
'「B2」セルを起点としてMicrosoftQueryの結果の表を作成します。
|
230
230
|
|
231
231
|
|
232
232
|
|
233
|
-
'この時点では、オブジェクトしては作成されているのですが、
|
233
|
+
'この時点では、QueryTableオブジェクトとしては作成されているのですが、
|
234
|
-
|
234
|
+
|
235
|
-
'まだ条件設定とかしてないので、Sheet2には何も表示されません。
|
235
|
+
'まだSQL文での条件設定とかをしてないので、Sheet2には何も表示されません。
|
236
236
|
|
237
237
|
|
238
238
|
|
7
ミス修正
test
CHANGED
@@ -224,10 +224,12 @@
|
|
224
224
|
|
225
225
|
|
226
226
|
|
227
|
-
'今回のこの例で
|
227
|
+
'今回のこの例では、今開いているブックの「Sheet2」シートに対して、
|
228
228
|
|
229
229
|
'「B2」セルを起点としてMicrosoftQueryの結果の表を作成します。
|
230
230
|
|
231
|
+
|
232
|
+
|
231
233
|
'この時点では、オブジェクトしては作成されているのですが、
|
232
234
|
|
233
235
|
'まだ条件設定とかしてないので、Sheet2には何も表示されません。
|
6
ミス
test
CHANGED
@@ -262,7 +262,7 @@
|
|
262
262
|
|
263
263
|
'QueryTablesオブジェクトのSQLを書き換え。
|
264
264
|
|
265
|
-
'(
|
265
|
+
'(毎回、空っぽの状態のQueryTablesオブジェクトにSQL文が入ります。)
|
266
266
|
|
267
267
|
|
268
268
|
|
@@ -280,9 +280,7 @@
|
|
280
280
|
|
281
281
|
'表ができあがる・・・みたいな雰囲気です。
|
282
282
|
|
283
|
-
'こ
|
283
|
+
'この段階ではじめて、表が表示されます。
|
284
|
-
|
285
|
-
'(もともと何も表示されてない場合は、表が自動的に新規作成されます。)
|
286
284
|
|
287
285
|
|
288
286
|
|
5
ミス修正
test
CHANGED
@@ -74,14 +74,16 @@
|
|
74
74
|
|
75
75
|
|
76
76
|
|
77
|
+
リレーションが使えるので、たとえば「顧客マスタと売上明細を、”顧客ID”の値で紐付けて、その横結合結果(購入履歴)を表示」とか、「顧客IDごとに商品カテゴリごとにグループ化して売り上げ集計」とか、「いつからいつまでのどの地域のお客様の売上集計」とか、いろんなリストアップや集計ができます。
|
78
|
+
|
79
|
+
|
80
|
+
|
77
81
|
SQL内容を書き換えれば、いろんな抽出結果が得られると思います。
|
78
82
|
|
79
83
|
詳しくは、Webや先輩など、SQLのことがよく分かる人などに聞いてみてください。
|
80
84
|
|
81
85
|
|
82
86
|
|
83
|
-
|
84
|
-
|
85
87
|
※SQLの内容を、「MicrosoftQuery」の「方言(?作法?)」で書くと、「MicrosoftQuery」の画面からも操作できます。そして、抽出結果をいろいろいじれます。
|
86
88
|
|
87
89
|
その際のSQLの主な方言(?作法?)は、
|
4
ミス修正
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
・・・などを使えば、好きなExcelファイルに「外部ファイル」のシート内容を取り込めるのではないでしょうか?
|
12
12
|
|
13
|
-
(そういうことをしたいわけではなかった
|
13
|
+
(そういうことをしたいわけではなかったり、顧客のデータベース化よりも「セル参照」のほうが重要でしたらごめんなさい!また、もうすでにお試しだったら本当にごめんなさい!)
|
14
14
|
|
15
15
|
|
16
16
|
|
3
ミス修正
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
・・・などを使えば、好きなExcelファイルに「外部ファイル」のシート内容を取り込めるのではないでしょうか?
|
12
12
|
|
13
|
-
(そういうことをしたいわけではなかったんでしたらごめんなさい!)
|
13
|
+
(そういうことをしたいわけではなかったんでしたらごめんなさい!また、もうすでにお試しだったら本当にごめんなさい!)
|
14
14
|
|
15
15
|
|
16
16
|
|
2
ミス修正
test
CHANGED
@@ -1,12 +1,16 @@
|
|
1
|
+
「やりたいこと」が「顧客のデータベース化」で、
|
2
|
+
|
3
|
+
かつ、「セルの数式自体にはこだわらない」、
|
4
|
+
|
1
|
-
もし「外部ファイル(Excelファイル?)」が、「同じフォルダ=同じ階層 にある」というケースなら、そのフォルダ
|
5
|
+
かつ、もし「外部ファイル(Excelファイル?)」が、「同じフォルダ=同じ階層 にある」というケース限定なら、その「フォルダ」ならば移動させても・・・、
|
2
6
|
|
3
7
|
(a)QueryTableオブジェクト(SQLにて)や、
|
4
8
|
|
5
9
|
(b)ADO、DAO、(ループ処理での読み込みやSQLにて)
|
6
10
|
|
7
|
-
などを使えば、好きなExcelファイルに「外部ファイル」のシート内容を取り込めるのではないでしょうか?
|
11
|
+
・・・などを使えば、好きなExcelファイルに「外部ファイル」のシート内容を取り込めるのではないでしょうか?
|
8
|
-
|
12
|
+
|
9
|
-
(
|
13
|
+
(そういうことをしたいわけではなかったんでしたらごめんなさい!)
|
10
14
|
|
11
15
|
|
12
16
|
|
1
ミス修正
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
もし「外部ファイル(Excelファイル?)」が、「同じフォルダにある」というケースなら、そのフォルダを移動させても・・・、
|
1
|
+
もし「外部ファイル(Excelファイル?)」が、「同じフォルダ=同じ階層 にある」というケースなら、そのフォルダを移動させても・・・、
|
2
2
|
|
3
3
|
(a)QueryTableオブジェクト(SQLにて)や、
|
4
4
|
|
@@ -16,9 +16,11 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
-
例えば以
|
19
|
+
例えば以降に挙げたサンプルコードは「同じフォルダ」にある「test01.xls」というファイルの「Sheet1」の表を覗きに行って、取り込みたいExcelファイルのSheet2に表示させます。
|
20
|
+
|
20
|
-
|
21
|
+
「1シートにつき1つの表」、が前提ですけど・・・。
|
22
|
+
|
21
|
-
(※コメントがやたら長いので、不要なら全部消して見てみてください。コード自体はかなり少ないです。 )
|
23
|
+
(※コメントがやたら長いので、不要なら全部消して見てみてください。コード自体はかなり少ないです。 あと、「xlsmやxlsx」を読みに行くときは、"DriverId=790;"を"DriverId=1046;"に書き変えたほうがいいかもしれません。)
|
22
24
|
|
23
25
|
|
24
26
|
|
@@ -36,7 +38,7 @@
|
|
36
38
|
|
37
39
|
「"SELECT * FROM Sheet1$"」
|
38
40
|
|
39
|
-
のところで指定してます。
|
41
|
+
のところで指定しています。
|
40
42
|
|
41
43
|
この内容を書き換えれば、異なる抽出結果が得られます。
|
42
44
|
|
@@ -60,9 +62,7 @@
|
|
60
62
|
|
61
63
|
|
62
64
|
|
63
|
-
周囲に、AccessやSQLがわかる人が居ましたら、こちらの方法も今後便利かと思います。
|
64
|
-
|
65
|
-
複数の条件であっても、1つ1つが複雑でないとか、リレーション(VlookUp関数のような紐つけ)も同時に使いながらとか、でしたら、通常のVBAでデータ抽出(取り込み)するよりははるかにラクだとは思います。
|
65
|
+
SQLを使う場合、複数の条件であっても、1つ1つが複雑でないとか、リレーション(VlookUp関数のような紐つけ)も同時に使いながらとか、でしたら、通常のVBAでデータ抽出(取り込み)するよりははるかにラクだとは思います。
|
66
66
|
|
67
67
|
|
68
68
|
|
@@ -78,7 +78,7 @@
|
|
78
78
|
|
79
79
|
|
80
80
|
|
81
|
-
※SQLの内容を、「MicrosoftQuery」の「方言(
|
81
|
+
※SQLの内容を、「MicrosoftQuery」の「方言(?作法?)」で書くと、「MicrosoftQuery」の画面からも操作できます。そして、抽出結果をいろいろいじれます。
|
82
82
|
|
83
83
|
その際のSQLの主な方言(?作法?)は、
|
84
84
|
|