| 
    
     |  | ▼レッサーパンダ さん: こんばんは。
 
 >Jカーターさん、ichinoseさん
 >
 >返事が遅くなりました。m(_ _)m
 >ありがとうございます。
 >
 >やはり、DAOやADOは避けて通れないんですね。
 >同じEXCEL内のことだから、もっと単純に出来るのかと思ってました。
 他にも、Querytableを使う方法もあります。
 正直、私もほとんど(いや、まったく)使った事がないんですが、
 シートレイアウトが最初のとおりだとして、Sheet1をアクティブにした状態で
 '=====================================================================
 Sub Macro1()
 With ActiveSheet.QueryTables.Add(Connection:="ODBC;DSN=Excel Files;DBQ=D:\My Documents\TESTエリア\doatest.xls;" _
 & "DriverId=790;MaxBufferSize=2048;PageTimeout=5;", Destination:=Range("a4"))
 .CommandText = "SELECT count(*) as aaa,sum(所持金) as bbb FROM [Sheet2$] where [Sheet2$].年齢 = " & Sheet1.Range("a2").Value _
 & " and [Sheet2$].性別 = '" & Sheet1.Range("b2").Value & "';"
 .Name = "query1"
 .FieldNames = False
 .AdjustColumnWidth = False
 .RefreshStyle = xlOverwriteCells
 .Refresh BackgroundQuery:=False
 End With
 End Sub
 
 なんて方法でも可能みたいです(Sqlの組み立てはしていませんが)。
 それにこれは、マクロの記録でコードが記述されますので、
 それを訂正する事ができます(掲載コードは、マクロの記録で生成された
 コードを訂正しただけです)。
 
 |  |