前の投稿 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 件のコメント:
コメントを投稿