Excel2016で手動でデータ抽出してみる

f:id:inspiron6400:20170928222428j:plain

 ↓ Microsoft Query から OracleDDD を選ぶ

f:id:inspiron6400:20170928222536j:plain

 ↓ サービス名 Oracle_DB ユーザー名 scott パスワード tiger

 f:id:inspiron6400:20170928222644j:plain

 ↓

f:id:inspiron6400:20170928223127j:plain

 ↓ 

 で、必要に応じて抽出条件とか並べ替え(出力順)を指定し

 ↓

f:id:inspiron6400:20170928223322j:plain

 

これをマクロで記録して、ソースを表示させると

 

Sub Macro1()

'' Macro1 Macro

'    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _

        "ODBC;DSN=Oracle_DB;UID=scott;;DBQ=ORACLEDDD;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BNF=F;BAM=IfAllSuc" _

        ), Array( _

        "cessful;NUM=NLS;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=64000;TLO=O;MLD=0;ODA=F;STE=F;TSZ=8192;AST=FLOAT;" _

        )), Destination:=Range("$A$1")).QueryTable

        .CommandType = 0

        .CommandText = Array( _

        "SELECT DANCHI_SEGS.DANCHI_KIGO  FROM DANCHI_SEGS ORDER BY DANCHI_SEGS.DANCHI_KIGO")

        .RowNumbers = False

        .FillAdjacentFormulas = False

        .PreserveFormatting = True

        .RefreshOnFileOpen = False

        .BackgroundQuery = True

        .RefreshStyle = xlInsertDeleteCells

        .SavePassword = False

        .SaveData = True

        .AdjustColumnWidth = True

        .RefreshPeriod = 0

        .PreserveColumnInfo = True

        .ListObject.DisplayName = "テーブル_Oracle_DB_からのクエリ"

        .Refresh BackgroundQuery:=False

    End With

End Sub