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 をご覧ください。