Excel文書をCSVファイルに出力し、CSVファイルを読み込んで、該当のデータを取り出し、Webアプリケーションの入力画面にキー送信を行います。
この設定はeDocArrangement2のメイン画面から実行する想定で作成しています。
この設定はeDocArrangement Version2.0.1以降で動作します。
この設定は入力ファイルの内容と、送信先のアプリケーションの入力項目を確認して、キー送信が問題なく動作するように調整する必要があります。
ユーザー様に提案される場合は、ユーザー様で利用されているシステムの画面や、入力ファイルのデータ解析などの工程が必要になり、現地で調査を行えるスキルを備えた人員が必要になります。
実行すると以下の様に動作します。
C:\Homeの下に、以下のような構成でフォルダを作り、準備します。
フォルダ構成は以下の通りです。
以下のフォルダに解凍すると設定が適用されます。
C:\Users\ユーザー名\AppData\Roaming\TechnoStyle\eDocArrangement2
グローバルデータの内容は以下の通りです。トップフォルダを変更する場合は、以下の定義を変更してください。グローバルデータは、「共通設定」から変更できます。
名前 | 値 |
---|---|
TopFolder | C:\Home\eDocArrangement2\Demo\キー送信による自動入力 |
詳しい設定方法は、 設定例(共通)グローバルデータとログの設定 を参照して下さい。
実行ログファイル名 | {%GET_G(TopFolder)}\90_System\90_Log\Log.txt |
---|---|
エラーログファイル名 | {%GET_G(TopFolder)}\90_System\90_Log\ErrorLog.txt |
文字コード | SJIS |
方式 | 追加書き込み (日単位) |
Excel文書をCSV形式で保存。
CSVファイルを読み込み、Webアプリケーションの画面にキー送信を行う。
共通ログ設定の内容でログを出力する。
メイン画面のファイルリストを対象に繰り返し処理を行う。
ループ毎にユーザーデータをクリアする。
以下のファイルを書き込みオープンします。
{%GET_G(TopFolder)}\90_System\10_Temp\script.vbs
文字コード | SJIS |
---|---|
改行コード | なし |
出力先に既にファイルがある場合は、上書きする。
以下のテキストをテキスト書き込みオープン1でオープンされたファイルに出力する。
'------------------------------------------------------------------------- 'ExcelToCSV.vbs ' 'Excel文書をCSVファイルに変換します。 '------------------------------------------------------------------------- Option Explicit dim objExcel dim INPUT_FILE dim OUTPUT_FILE INPUT_FILE = "{%GET(FullPathFileName)}" OUTPUT_FILE = "{%GET_SEQUENCE_FILENAME({%GET_G(TopFolder)}\90_System\10_Temp\{%GET(FileNameWithoutExtension)}.csv)}" 'CSV形式で保存 SaveCSV(INPUT_FILE) if IsObject(objExcel) then 'エクセルを終了します objExcel.Quit end if sub SaveCSV(inputFileName) dim xlCSV xlCSV = 6 '.xlsx,.xls以外のファイルは処理しない if lcase(right(inputFileName,4)) <> "xlsx" and _ lcase(right(inputFileName,3)) <> "xls" then exit sub end if 'Excelオブジェクトがない場合 if IsObject(objExcel) = false then 'エクセルオブジェクトを作成 set objExcel = CreateObject("Excel.Application") 'エクセル画面を非表示 objExcel.Visible = False end if 'ワークブックを開く objExcel.Workbooks.Open inputFileName '各種の確認ダイアログを非表示 objExcel.DisplayAlerts = False 'アクティブシートをCSV形式で保存 objExcel.ActiveSheet.SaveAs OUTPUT_FILE, xlCSV 'ワークブックを閉じる objExcel.Workbooks(1).Close end sub
テキスト書き込みオープン1でオープンされたファイルをクローズする。
以下のコマンドを実行する。
C:\Windows\System32\wscript.exe
{%GET_G(TopFolder)}\90_System\10_Temp\script.vbs /b
以下の検索を行う。
ファイル検索1を対象に繰り返し処理を行う。
ループ毎にユーザーデータをクリアする。
以下のマクロは、Webアプリケーションのタイトルバーに表示されているタイトルを指定することで、ブラウザーを前面表示するためのマクロです。以下の例は、Worker2というWebアプリケーションをFirefoxで表示した場合の例です。
Webアプリケーションのタイトルバーの文字はブラウザーやWebサイトによって異なります。
SET_FOREGROUND_WINDOWマクロの引数に指定するウインドウタイトルは、完全に一致した文字列を指定する必要があります。
タイトルバーに表示されているタイトルを確認するには、eDocArrangementのプロセス検索で該当のブラウザーを検索して、プロセス情報取得(MainWindowTitle)マクロ({%GET_PROCESS_INFO(プロセス検索1,MainWindowTitle)})で取得できます。
Firefoxのウインドウタイトルに表示される「Worker2 — Mozilla Firefox」のハイフンは通常のハイフンではなく、UTF-8の文字コードになっていますので、注意が必要です。
以下のマクロを実行する。
{%SET_FOREGROUND_WINDOW(Worker2 — Mozilla Firefox)} {%SLEEP(1000)}
以下のファイルをテキスト読み込みします。
{%GET(FullPathFileName)}
ファイル形式 | CSVファイル |
---|---|
文字コード | SJIS |
ヘッダ行 | 0 |
データ開始行 | 11 |
””の処理 | 完全 |
「テキスト読み込み1」でオープンされたテキスト行の繰り返し処理を行う。
以下のマクロはCSVファイルの該当行のテキストを正規表現で取得して、キー送信を行っています。
入力ファイルの内容と、送信先のアプリケーションの入力項目を確認してキー送信が問題なく動作するように調整する必要があります。
以下のマクロを実行する。
{%IF({%GET(TextLoopCount)}<19, {%SET_USER_DATA(wk,item,{%REGEX_REPLACE({%GET_FIELD_VALUE(テキスト読み込み1,2)},(?: |\s)+, )})} {%SEND_KEYS({%GET_USER_DATA(wk,item)})} {%IF({%GET(TextLoopCount)}=13, {%SEND_KEYS({TAB})} ,)} {%SEND_KEYS({TAB})} {%SLEEP(500)} ,)}
以下のファイルを削除します。
{%GET(FullPathFileName)}
以下の動画をご覧ください。