|
▼レッサーパンダ さん:
こんばんは。
>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の組み立てはしていませんが)。
それにこれは、マクロの記録でコードが記述されますので、
それを訂正する事ができます(掲載コードは、マクロの記録で生成された
コードを訂正しただけです)。
|
|