エクセルのバージョンに依存しないimport

  • デル株式会社
  • エクセルのCOMのインポートは一般的にはこんな感じ。

    
    #import "C:\Program Files\Common Files\Microsoft Shared\Office11\MSO.DLL" \
    rename("RGB","MSRGB") rename("DocumentProperties","MSDocumentProperties")
    
    // VBE6EXT.OLBのインポート
    #import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"
    
    // Excelタイプライブラリのインポート
    #define _MSEXCEL_PATH "C:\Program Files\Microsoft Office\Office11\excel.exe"
    #import _MSEXCEL_PATH auto_search auto_rename no_auto_exclude dual_interfaces
    
    

    ↑これだと、バージョンによって造り変える必要があるので、
    エクセルのバージョンがいくつもあるような環境には対応できないので×。

    で、

    
    #import "progid:Excel.Sheet" auto_search auto_rename rename_search_namespace("Office") \
    rename( "RGB", "__RGB" ) \
    rename( "SearchPath", "__SearchPath") \
    rename( "DialogBox", "__DialogBox") \
    rename( "CopyFile", "__CopyFile") \
    rename( "ReplaceText", "__ReplaceText") \
    exclude( "IFont","IPicture")
    
    

    これでエクセルのバージョンによらないインポートが可能。

    関連記事

    ページ上部へ戻る