質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
xlwings

xlwingsは、ExcelをPythonで操作するためのオープンソースライブラリです。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

2回答

4748閲覧

RunPythonがVBAで走りません

sjcapferrat

総合スコア1

xlwings

xlwingsは、ExcelをPythonで操作するためのオープンソースライブラリです。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

1クリップ

投稿2020/05/25 12:10

インストール済みのRunPythonをVBAで動かしたいのですが、コンパイルエラー(SubまたはFunctionが定義されていません)が出ます。
VBAの標準モジュールに書いたコードは以下で、
https://celaeno42.hatenablog.com/entry/2018/12/03/191854
の方が作られたテスト例を実行しようとした際に出たエラーです。

Option Explicit
Public Sub copyText()
Call RunPython("import copy_text; copy_text.copyAddText()")
End Sub

上記のエラーメッセージとあわせて、コード内のRunPythonがハイライトされます。

RunPythonがインストールされていることはターミナル上で確認済みで、またexcelのアドインには正しいバージョンのxlwingsアドインもインストールされていますので、RunPythonが認識されないというわけではないように思います。

システム環境は以下です。
MacOS Catalina (10.15)
Python 3.7
xlwings 0.17.1(Anaconda経由でインストール済)

VBAコードはミスタイプではないと思うのですが、他に何か足りない点がありますでしょうか。RunPythonに対応したpythonファイル自体もエラーなく動くことはエディターで確認できていますので、手がかりがどうしてもつかめません。
アドバイスのほど、どうかよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sjcapferrat

2020/05/25 13:48

ご指摘のサイトにあるcondaコマンドを使った0.17最新版へのアップグレードと、xlwings runpython installはどちらも対応済みです。
guest

回答2

0

(エラーメッセージは質問文のものであっていますか?)

copy_text.pyに問題があるのではないでしょうか。

python

1import xlwings as xw 2 3 4def copyAddText(): 5 txt = xw.Range('A1').value 6 txt += ', I am the Doctor.' # ★★ 7 xw.Range('B3').value = txt

xw.Range('A1').value、つまりシートのA1セルが文字列でない場合は、上の★★の部分で型エラーが出ます。

投稿2020/06/02 07:37

kirara0048

総合スコア1399

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sjcapferrat

2020/06/02 12:32

ありがとうございます。開発元にこれまでの状況を問い合わせたところ、xlwingsのインストール方法にわたしのほうで問題があったらしく、今後類似のエラーが起きないよう修正していきたいとの回答をもらいました。ご指摘いただいた点については、次にインストールが完了した時点で確認してみたいと思います。
guest

0

下の2つは実施されてますか?

xlwingsのアドインをインストールすれば、 Run main ボタン、 RunPython および UDF を使えるようになります。

xlwings アドイン

次に、ワークブックで RunPython や UDF を使用するために、VBAエディタの参照設定に xlwings を追加します。

xlwings インストール

投稿2020/05/26 04:09

jeanbiego

総合スコア3966

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sjcapferrat

2020/05/26 05:49

アドバイスありがとうございます! 念のため最初から設定をやり直し、xlwingsアドインと参照設定を行ってみました(同じファイルであるxlwings.xlamを参照、0.17.1に対応したものとしてダウンロードしたもの)が、あらめてVBAエディタで当初のマクロを実行したところ「実行時エラー62 ファイルにこれ以上データがありません」のエラー表示がVBAで出て止まってしまいます。 デバッグするとVBAに格納されたxlwings.xlamのモジュール(Config)がハイライトされます。コンパイルエラーでなくなったので、一歩前進?なのでしょうか。
jeanbiego

2020/05/26 06:00

うーん、すみませんがVBAは詳しくないのでわからないですね。 新しく質問立ててもらったほうが良さそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問