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.
方法¶
Python関数を作成し、Excelにインポートします( ユーザー定義関数 (UDFs) を参照)。
Alt-F11
を押し、VBAエディターを開きます。そしてxlwings_udfs
VBAモジュールを右クリックし、ファイルのエクスポート...
を選択します。xlwings_udfs.bas
ファイルを適当な場所に保存します。他のOfficeアプリ(e.g. Microsoft Access)に切り替え、
Alt-F11
を押してVBAエディターを開きます。VBA Projectで右クリックし、ファイルのインポート...
から先ほどエクスポートしたファイルを選択します。インポート後に、1行目のアプリの名前を今開いているアプリの名前に変更します、 i.e.Microsoft Access
またはMicrosoft Outlook
等。1行目は次のようになります:#Const App = "Microsoft Access"
次に、スタンドアローンの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 をご覧ください。