プロが教える店舗&オフィスのセキュリティ対策術

皆さん、こんにちは

SQL Serverからの抽出プログラムをExcelで作りこんで実行しているのですが、Excel 2013へアップグレードしてから1回目は問題なく実行できるのですが2回目は必ずエラーが発生します。

何方か下記のどの文がExcel 2013で使用できなくなったかアドバイスしていただけませんでしょうか?ちなみにExcel 2010では何度で実行しても問題は発生しません。

With ActiveSheet.ListObjects.Add(SourceType:=0, Source:="ODBC;DSN=SQL_Server;Database=DATABASE;UID=xxxx;PWD=xxxxx" _
, Destination:=Range("$A$1")).QueryTable
.CommandText = (wSQLquery)
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Extract_Data"
.Refresh BackgroundQuery:=False
End With

よろしくお願いします。

A 回答 (1件)

こんばんは。



今は、試していませんが、

>2010では何度で実行しても問題は発生しません

ざっとみると、どのExcelでも、1回めはできても、2回めはうまくないような気がしますけれども。

今は、Excel 2013はインストールしていないので、正確には申し上げられないけれども、

ActiveSheet.ListObjects.Add

は、一つのシートでは繰り返しができないことも多いかと思います。

With ActiveSheet.ListObjects(1)

最後のコードで、ListObject を削除していないのですから、当然、ListObjects(1)とかが、ActiveSheet上に残っているはずですから、それを再利用すればよいはずです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

このコードの前で当該シートのコンテンツをクリアーしているのでAddでないと以前のバージョンでは動かなかったんです。
でも確かにDisplayNameとか何かが残っているかもしれませんね。確かめてみます

お礼日時:2015/12/17 20:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!