036 ExcelからPythonスクリプトを実行する(その2)

2022/04/12

環境構築/Python

t f B! P L

前の投稿 035 ExcelからPythonスクリプトを実行するで,xlwingsパッケージを使う環境を設定しました.
今回は,動作検証用のPythonスクリプト(最後に紹介)を作成し,Excelのボタンを押下してPythonスクリプトを実行できるようにします.

動作検証用のPythonスクリプトは,下記に示すように,Python実行ボタンを押下すると,B2B11のセルの数値(角度)を読み込み,C2C11のセルに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")

このブログを検索

アーカイブ

自己紹介

C++やC#を使って数値解析プログラムの開発を長年行ってきました.
今は,Pythonを使った自動処理システムの開発をメインに行っています.

QooQ