システム開発ブログ

Access2007+Excel2007で、VBAから互換性チェックを行わないように設定する

松本

松本 (2011年9月27日 17:00)
ソフトウエア開発部 / Access / Excel / VBA

Access2007のVBAからExcelファイルをExcel2007を使って操作したり、
作成する機会も多いと思います。

その場合に、対象のファイルがExcel2003以前の形式だと、
互換性チェックの確認ダイアログが出ることがあります。

gokan.pngこのダイアログを表示する(互換性チェックをする)必要が無く、
ダイアログを出さずにExcelファイルを保存したい場合は、
以下のソースを書けば、ダイアログが表示されなくなります。


Workbook.CheckCompatibility = False


Access2007+Excel2007の環境では、
このコードだけで問題なく設定できたのですが、
Access2007Runtime+Excel2003の環境では、エラーになってしまいました。
(2003以前のバージョンかどうか確認するプロパティですからね...)

そこで、使用するExcelのバージョンを確認してから、上記のソースを実行することにしました。

各バージョンは、Excel2003 = 11.0、Excel2007 = 12.0 ですので、
「11.0」より大きい場合だけ、互換性チェックを行わないようにし、
ファイル保存後に、互換性チェックをするように再設定しました。

具体的なソースは、下記を参考にしてください。

Dim moAppXls As Object
Dim moWBook As Object

'Excel起動
Set moAppXls = CreateObject("Excel.Application")

'Excelファイルを開く
Set moWBook = moAppXls.Workbooks.Open([Excelファイルのパス])

'---- 値を設定するなど処理を記述 ----

'Excelのバージョンが2003より後の場合
If moAppXls.Application.Version > "11.0" Then
   moWBook.CheckCompatibility = False
End If

'保存
moWBook.Save

'互換性チェックの設定を戻しておく
If moAppXls.Application.Version > "11.0" Then
   moWBook.CheckCompatibility = True
End If

'---- 各オブジェクトの開放処理など ----
システムのトラブル解決を承ります。すぐにシステムリフォームを体験できますシステム診断・システムリフォームのお申し込みはこちらから。

システム開発ブログ

Twitterでilovex_officialをフォローしてください

最近の記事

カテゴリー

部署

月別アーカイブ

以前の部署別ブログ

ページのトップ