Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Python Excel】ExcelからのPython実行ファイル(アプリケーションファイル)起動方法


ExcelPythonプログラムの連携を行う場合、ExcelからPythonのEXEファイルを起動するような処理が必要になってくる場合があります。

 

そのような場合にはWshShellを使用します。

 

 

 

目次

 

1.Excel VBEの「参照設定」にてライブラリ追加

 

WshShellを使用する場合には、ExcelのVBE(Visual Basic Editor)側でライブラリを追加しなければなりません。

 

以下のように、VBEの「ツール」タブにて、「参照設定」を選択します。

 

Excel VBE 「参照設定」選択

Excel VBE 「参照設定」選択

 

続いて、「参照設定」選択にて開いた以下の選択ウインドウにて「Windows Script Host Object Model」にチェックを入れて「OK」をクリックします。

 

Excel VBE 「参照設定」 にて「Windows Script Host Object Model」選択

Excel VBE 「参照設定」 にて「Windows Script Host Object Model」選択

 

これで、「WshShell」オブジェクトが使用可能になりました。

 

2.アプリケーション起動コード指定

 

WshShellを使用する場合には、ExcelVBA側で以下のようなコード指定にてアプリケーションファイルを起動することができます。

 

    Set ws = CreateObject("Wscript.Shell")
    ws.CurrentDirectory = ThisWorkbook.Path
    ws.Run """abc.exe""", 1, True         'コンソールが開く        
    Set ws = Nothing

 

上記は、Excelファイルと同じフォルダに、PythonのEXEファイル(上記ではabc.exe)をを置いておいてそのファイルを起動する場合の例になります。

 

まずはじめに、1行目でCreateObjectにて「WindowsScriptHost」オブジェクトを生成しています。

次に、2行目では、そのカレントディレクトリにExcelファイル自身のパスを設定しています。

 

3行目で、Runメソッドを使用して「abc.exe」を起動しています。

 

 

3.Runメソッドの引数の説明

 

Runメソッドでは3つの引数指定ができます。

 

第1引数:起動するファイルを指定

上記ではカレントディレクトリにexeファイルを入れておいてそれを指定するだけですが、パス指定するような場合に、その中にスペースが含まれているような場合にはさらに""で囲まなければならないということになります。

""の中に""を入れる場合には、""2つで囲むということなので結果として左右に3つずつのダブルコーテーションになるということです。

逆に、上記の例のような場合にはファイル指定内にスペースがないため、単に「"abc.exe"」だけでも動作します。

 

第2引数:実行するアプリケーションのウインドウスタイル指定

 

第2引数の数値 ウインドウスタイル アクティブウインドウ
0 非表示 変わらない
1 通常サイズ 起動アプリケーション
2 最小化 同上
3 最大化 同上
4 通常サイズ 変わらない
5 そのまま 起動アプリケーション
7 最小化 変わらない

(引数省略時:1指定)

 

参照URL:https://atmarkit.itmedia.co.jp/ait/articles/0709/12/news125.html

 

指定により上記のようにウインドウスタイルとアクティブウインドウが変更されるということです。

引数を省略したり、1指定した場合には起動にあわせてコンソールウインドウが表示されますが、表示したくないような場合には、0指定とすれば表示されなくなります。

 

第3引数:起動アプリケーションの終了を待つか待たないか

(TrueまたはFalse指定)

省略した場合にはFalse指定のため、終了を待たずに次の行に進みます。Trueにした場合には、アプリケーションの終了待ちになります。

 

 

 

 

また、PythonSeleniumの活用に必要となりそうな内容を一覧として以下にまとめましたのでよかったらご参照ください。

 

kuku81kuku81.hatenablog.com

 

 

以下は、その中にも載っていますが、Pythonのダウンロード、インストールから簡単なExcelファイルの読み書きまでの一通りの手順を記載した記事になります。

 

 

kuku81kuku81.hatenablog.com

 

また、現在使用しているエディタですが無料にも関わらず機能が豊富なVisualStudioCodeのインストール方法などは過去記事に記載していますのでよかったらご参照ください。

 

 

kuku81kuku81.hatenablog.com

 

 

 

 

 

関連記事:

【Python】キーボード、キー入力判定方法 - Django Girls and Boys 備忘録

 

【Python】keyboardライブラリでのキー入力検出に使用可能なキーの種類 - Django Girls and Boys 備忘録

 

【PythonからWeb操作】seleniumのインストール手順 - Django Girls and Boys 備忘録

 

【PythonによるExcelファイルの読み書き】PythonのダウンロードからExcelファイルの読み書きまでの一通りすべての方法 - Django Girls and Boys 備忘録

 

【PythonでのExcelファイル読み書き方法】ファイルオープンしているファイル(アクティブファイル)への書込方法 - Django Girls and Boys 備忘録

 

【Python Selenium】ブラウザ用ドライバーのダウンロードとインストール - Django Girls and Boys 備忘録

 

【PythonからWeb操作】selenium、各ブラウザ用ドライバーの最新バージョン確認、ダウンロード場所 - Django Girls and Boys 備忘録

 

【Python Selenium】新規ウインドウ追加時のウインドウ切替方法 - Django Girls and Boys 備忘録

 

【Python Selenium】ウインドウ表示時などでのWaitの方法、待機方法 - Django Girls and Boys 備忘録

 

【Python Selenium】新規ウインドウ(新規タブ)追加時のウインドウ切替方法(追加ハンドルをハンドル差異比較にて取得) - Django Girls and Boys 備忘録

 

【python】実行時に表示されるコンソールウインドウを非表示にする方法 - Django Girls and Boys 備忘録

 

【Python Selenium】Webサイトのソースコードをファイル保存する方法 - Django Girls and Boys 備忘録

 

【Python】キー入力によるプログラム終了処理、ループを抜けて次の処理へ移行する処理 - Django Girls and Boys 備忘録

 

【Python Excel】ExcelからのPython実行ファイル(アプリケーションファイル)起動方法 - Django Girls and Boys 備忘録

 

【Python Seleuium】ブラウザの拡大率の設定変更 - Django Girls and Boys 備忘録

 

【Python Selenium】EdgeのI.E.モードのドライバー設定での拡大率、保護モード設定チェックを無視する方法 - Django Girls and Boys 備忘録

 

【Python】ログイン中のユーザ名を取得する方法 - Django Girls and Boys 備忘録

 

【python】実行ファイル(EXEファイル)作成手順 - Django Girls and Boys 備忘録