前の投稿 035 ExcelからPythonスクリプトを実行するで,xlwingsパッケージを使う環境を設定しました.
今回は,動作検証用のPythonスクリプト(最後に紹介)を作成し,Excelのボタンを押下してPythonスクリプトを実行できるようにします.
動作検証用のPythonスクリプトは,下記に示すように,Python実行ボタンを押下すると,B2~B11のセルの数値(角度)を読み込み,C2~C11のセルにsinの値を書込みます.

xlwingsパッケージを使って,Excelから実行するPythonスクリプトを作成したら,下記の手順で,ボタンを押せばPythonスクリプトを実行できるようにします(ここだけはExcelのマクロ機能を使います).
1. 「開発」タブから「Visual Basic」を選択します
2. 「挿入」タブから「標準モジュール」を選択します
3. 下記のPythonスクリプトを実行する関数CallPythonをマクロで記述して保存します
Option Explicit
Sub CallPython()
RunPython ("import calsin;calsin.main()")
End Sub
但し,RunPythonの引数は,calsin.pyというファイル名のPythonスクリプトの,main関数を実行する場合です.作成したPythonスクリプトのファイル名と,実行する関数名によって,RunPythonの引数の文字列を変更して下さい.
4. 「開発」タブから「挿入」を選択し,「ボタン(フォームコントロール)」を選んで所望の場所に配置します(配置場所は後から移動できます)
5. 「マクロの登録」という画面が表示されるので,先程作成した「CallPython」マクロを選択します
6. 必要に応じて,ボタンを右クリックしてボタン名を変更します
以上の手順を行うことで,作成したPythonスクリプトを,Excelのボタンを押下することで実行することができるようになります.
最後に,動作検証用に作成したPythonスクリプト(calsin.py)を紹介します.
wxwingsパッケージを使ってExcelのセルの値を読み書きするのは,ここを参照して下さい.
PyVISAパッケージを使って測定機器にコマンドを送受信するPythonスクリプトを作成すれば,Excelから測定機器をコントロールすることができるようになります.
#!/usr/bin/env python
import os
import numpy as np
import xlwings as xw
#-------------------------------------------------------------------------------
def calsin(wb, sheetname):
ws = wb.sheets(sheetname)
for j in range(2, 11+1):
theta = ws.range('B' + str(j)).value/180*np.pi
val = np.sin(theta)
ws.range('C' + str(j)).value = str(val)
#-------------------------------------------------------------------------------
def main():
wb = xw.Book.caller()
calsin(wb, "Sheet1")
0 件のコメント:
コメントを投稿