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

Excel VBA で、dbaseファイルに接続しています。
Excel2000では、正常に動作していました。
Excel2016では、以下のように表示され、Excel自体が停止してしまいます。
「Excelは動作を停止しました」
「問題が発生したため、プログラムが正しく動作しなくなりました。プログラムは閉じられ、解決策がある場合はWindowsから通知されます」

VBAの中身は、下記のようになっています。


CommandTextTmp = "SELECT " + QueryNameTmp + ".*" & Chr(13) & "" & Chr(10) & "FROM `" + FileDirTmp + "`\" + DbFileTmp + ".dbf " + QueryNameTmp
Sheets(QueryNameTmp).Range("A1:Z200").ClearContents
With Sheets(QueryNameTmp).QueryTables.Add(Connection:= _
"ODBC;DSN=dBASE Files;DriverId=533;MaxBufferSize=2048;PageTimeout=5;", Destination:=Sheets(QueryNameTmp).Range("a1"))
.CommandText = Array(CommandTextTmp)
.Name = QueryNameTmp
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
.Parent.Names(.Name).Delete
.Delete
End With

試しに、「.Refresh BackgroundQuery:=False」 を削除するとエラーは発生しますが、EXCEL自体が終了することはなくなります。

解決策がわかる方、ご教示いただきたく、宜しくお願いします。

A 回答 (1件)

答えは、どうやら、Excelでは解決しないようです。


以前のバージョンでは出来たけれども、Excel 2007以上ではうまくできなくなったという話です。

ただ、
http://koutochas.seesaa.net/article/242381981.html
ここに出てくる、フリーのツールを手に入れて行なうしかなさそうです。
    • good
    • 0
この回答へのお礼

ご教示いただきまして、ありがとうございました。Excelの仕様変更なら仕方ないです。
Visual dBase 側のソフト変更を検討します。

お礼日時:2017/01/26 00:07

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