関数・メソッド

互換モードで開いているか確認する【Excel8CompatibilityModeプロパティ】【ExcelVBA】

構文

Object.Excel8CompatibilityMode = expression

expression・・・True = 互換モードで開いている/False = 互換モードで開いていない

Excel8CompatibilityModeプロパティでExcelを互換モードで開いているかどうか判別可能です。
互換モードとは現在のExcelのVerと今開いたExcelのVerが違う場合、正常にファイルを開けないことがある為、互換モードして開いている場合があります。

2021年になりますが「xls形式」のファイルで使用しているユーザー様もまだまだいる認識です。

Excel8CompatibilityModeのサンプルコード

Public Sub sample()
    Dim wb As Workbook
    Workbooks.Open ("C:\user\sample.xls")
    Set wb = ActiveWorkbook
    
    '■WorkBookオブジェクトを指定してチェックする
    Debug.Print wb.Excel8CompatibilityMode  'True
    Debug.Print ActiveWorkbook.Excel8CompatibilityMode  'True
    
End Sub

注意点

  • HasVBProjectプロパティは実際に標準モジュールやクラスモジュール、ユーザーフォームがあるかどうかでマクロの有無を判定します。
  • 上記理由により、.xlsmの拡張子でコードがない場合は「False」が返ります。
  • Excel2003(.xls)形式の場合はHasVBProjectプロパティで有無の確認ができますが、本機能はExcel2007以降で使えるプロパティです。Excel2003で本プロパティは使用できません。

関連記事

コメント

タイトルとURLをコピーしました