回答編集履歴

9

ミス

2019/04/15 01:14

投稿

komugi3333
komugi3333

スコア94

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
- ※こちらテストxlsにも、xlsmに対しても、覗きにいくこができました。 (ダメだったらすみません!)
71
+ また、リレーションが使えるので、えば
74
-
75
-
76
-
72
+
77
- リレーションが使えるので、たとえば「顧客マスタと売上明細を、”顧客ID”の値で紐付けて、その横結合結果(購入履歴)を表示」とか、「顧客IDごとに商品カテゴリごとにグループ化して売り上げ集計」とか、「いつからいつまでのどの地域のお客様の売上集計」とか、いろんなリストアップや集計ができます。
73
+ 「顧客マスタと売上明細を、”顧客ID”の値で紐付けて、その横結合結果(購入履歴)を表示」とか、
74
+
75
+ ・「顧客IDごとに商品カテゴリごとにグループ化して売り上げ集計」とか、
76
+
77
+ ・「いつからいつまでのどの地域のお客様の売上集計」とか、
78
+
79
+ いろんなリストアップや集計ができます。
78
80
 
79
81
 
80
82
 

8

ミス

2019/04/15 01:14

投稿

komugi3333
komugi3333

スコア94

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

ミス修正

2019/04/13 00:38

投稿

komugi3333
komugi3333

スコア94

test CHANGED
@@ -224,10 +224,12 @@
224
224
 
225
225
 
226
226
 
227
- '今回のこの例でのSQL文では、Sheet2に対して、
227
+ '今回のこの例では、今開いているブックの「Sheet2」シートに対して、
228
228
 
229
229
  '「B2」セルを起点としてMicrosoftQueryの結果の表を作成します。
230
230
 
231
+
232
+
231
233
  'この時点では、オブジェクトしては作成されているのですが、
232
234
 
233
235
  'まだ条件設定とかしてないので、Sheet2には何も表示されません。

6

ミス

2019/04/13 00:31

投稿

komugi3333
komugi3333

スコア94

test CHANGED
@@ -262,7 +262,7 @@
262
262
 
263
263
  'QueryTablesオブジェクトのSQLを書き換え。
264
264
 
265
- '(このサンプルのこの分岐では、毎回、空っぽの状態にSQL文が入ります。)
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

ミス修正

2019/04/12 14:31

投稿

komugi3333
komugi3333

スコア94

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

ミス修正

2019/04/12 14:25

投稿

komugi3333
komugi3333

スコア94

test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  ・・・などを使えば、好きなExcelファイルに「外部ファイル」のシート内容を取り込めるのではないでしょうか?
12
12
 
13
- (そういうことをしたいわけではなかったでしたらごめんなさい!また、もうすでにお試しだったら本当にごめんなさい!)
13
+ (そういうことをしたいわけではなかったり、顧客のデータベース化よりも「セル参照」のほうが重要でしたらごめんなさい!また、もうすでにお試しだったら本当にごめんなさい!)
14
14
 
15
15
 
16
16
 

3

ミス修正

2019/04/12 14:09

投稿

komugi3333
komugi3333

スコア94

test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  ・・・などを使えば、好きなExcelファイルに「外部ファイル」のシート内容を取り込めるのではないでしょうか?
12
12
 
13
- (そういうことをしたいわけではなかったんでしたらごめんなさい!)
13
+ (そういうことをしたいわけではなかったんでしたらごめんなさい!また、もうすでにお試しだったら本当にごめんなさい!
14
14
 
15
15
 
16
16
 

2

ミス修正

2019/04/12 14:07

投稿

komugi3333
komugi3333

スコア94

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

ミス修正

2019/04/12 14:05

投稿

komugi3333
komugi3333

スコア94

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
- 例えば以下のサンプルコードは「同じフォルダ」にある「test01.xls」というファイルの「Sheet1」の表を覗きに行って、取り込みたいExcelファイルのSheet2に表示させます。
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」の「方言(?作法?)」で書くと、「MicrosoftQuery」の画面からも操作できます。そして、抽出結果をいろいろいじれます。
81
+ ※SQLの内容を、「MicrosoftQuery」の「方言(作法?)」で書くと、「MicrosoftQuery」の画面からも操作できます。そして、抽出結果をいろいろいじれます。
82
82
 
83
83
  その際のSQLの主な方言(?作法?)は、
84
84