xlwingsと他のOfficeアプリ#

Excel以外のOfficeアプリ(OutlookやAccess等)のVBAから、xlwingsでPythonの関数を呼び出すことができます。

注釈

This is an experimental feature and may be removed in the future. Currently, this functionality is only available on Windows for UDFs. The RunPython functionality is currently not supported.

方法#

  1. Python関数を作成し、Excelにインポートします( ユーザー定義関数 (UDFs) を参照)。

  2. Alt-F11 を押し、VBAエディターを開きます。そして xlwings_udfs VBAモジュールを右クリックし、 ファイルのエクスポート... を選択します。xlwings_udfs.bas ファイルを適当な場所に保存します。

  3. 他のOfficeアプリ(e.g. Microsoft Access)に切り替え、 Alt-F11 を押してVBAエディターを開きます。VBA Projectで右クリックし、 ファイルのインポート... から先ほどエクスポートしたファイルを選択します。インポート後に、1行目のアプリの名前を今開いているアプリの名前に変更します、 i.e. Microsoft Access または Microsoft Outlook 等。1行目は次のようになります: #Const App = "Microsoft Access"

  4. 次に、スタンドアローンのxlwings VBAモジュール (xlwings.bas)をインポートします。このファイルはxlwingsのインストール先フォルダーにあります。インストール先は次のようにすればわかます:

    >>> import xlwings as xw
    >>> xlwings.__path__
    

    最後に、ステップ3と同様にxlwings VBAモジュールの1行目にあるアプリの名前を変更します。これでVBAからPython関数を呼び出せるようになりました。

設定#

他のOfficeアプリは、Excelのリボン アドインで設定したグローバル設定に従います。また、ディレクトリー設定ファイルも使えます(e.g. ディレクトリー設定ファイルを使用しているAccessまたはWordファイルと同じフォルダーに置きます)。あるいは、設定ファイルへのパスをスタンドアローンVBAモジュールの中(e.g. GetDirectoryConfigFilePath 関数等)にハードコードすることもできます(e.g. Outlookのファイルの概念は他のOfficeアプリとは異なっているため、この方法を推奨します)。注意: ファイル概念の無いOfficeアプリに対しては、 PYTHONPATH にPythonのソース ファイルがあるフォルダーを設定する必要があります。その他の設定についての詳細は、 Config をご覧ください。