xml:space="preserve">
注文書 9 申し込み書 プラン A 番号 登録 A0001 名称 コピー用紙 ブルー

キー送信による自動入力

概要

Excel文書をCSVファイルに出力し、CSVファイルを読み込んで、該当のデータを取り出し、Webアプリケーションの入力画面にキー送信を行います。

この設定はeDocArrangement2のメイン画面から実行する想定で作成しています。

この設定はeDocArrangement Version2.0.1以降で動作します。

この設定は入力ファイルの内容と、送信先のアプリケーションの入力項目を確認して、キー送信が問題なく動作するように調整する必要があります。

ユーザー様に提案される場合は、ユーザー様で利用されているシステムの画面や、入力ファイルのデータ解析などの工程が必要になり、現地で調査を行えるスキルを備えた人員が必要になります。

実行すると以下の様に動作します。

10_入力
保守サービス事前申込書.xlsx
コマンド実行
変換
90_System\10_Temp
保守サービス事前申込書.csv
90_System\10_Temp
保守サービス事前申込書.csv
キー送信
システム画面

設定の前準備

C:\Homeの下に、以下のような構成でフォルダを作り、準備します。

フォルダ構成のダウンロード

キー送信による自動入力_フォルダ構成.zip

Cドライブのルートに解凍してください。

フォルダ構成は以下の通りです。

  • C:\Home\eDocArrangement2\Demo\キー送信による自動入力
    • 10_入力
      • 保守サービス事前申込書.xlsx
        テスト用のExcel文書。
    • 90_System
      • 10_Temp
        • script.vbs
          CSV出力用のVBSファイル。
      • 90_Log
        ログの出力先。

設定ファイル

以下のリンクから完成した設定をダウンロードしていただくことができます。

設定ファイルのダウンロード

キー送信による自動入力_設定.zip

以下のフォルダに解凍すると設定が適用されます。

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アプリケーションの画面にキー送信を行う。

共通ログ設定の内容でログを出力する。

ファイルの繰り返し1

Loop File

メイン画面のファイルリストを対象に繰り返し処理を行う。

ループ毎にユーザーデータをクリアする。

テキスト書き込みオープン1

Open Text File For Writing

以下のファイルを書き込みオープンします。

{%GET_G(TopFolder)}\90_System\10_Temp\script.vbs
文字コード SJIS
改行コード なし

出力先に既にファイルがある場合は、上書きする。

テキスト書き込み1

Write Text

以下のテキストをテキスト書き込みオープン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

Close Text File For Writing

テキスト書き込みオープン1でオープンされたファイルをクローズする。

コマンド1

Command Execute

以下のコマンドを実行する。

コマンド

C:\Windows\System32\wscript.exe

パラメータ

{%GET_G(TopFolder)}\90_System\10_Temp\script.vbs /b

ファイル検索1

Search Files

以下の検索を行う。

フォルダ名
ファイル名
下位フォルダ検索
{%GET_G(TopFolder)}\90_System\10_Temp
*.csv
しない

ファイルの繰り返し2

Loop File

ファイル検索1を対象に繰り返し処理を行う。

ループ毎にユーザーデータをクリアする。

前面化

Macro Execute

以下のマクロは、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)}

テキスト読み込み1

Read Text

以下のファイルをテキスト読み込みします。

{%GET(FullPathFileName)}
ファイル形式 CSVファイル
文字コード SJIS
ヘッダ行 0
データ開始行 11
””の処理 完全

テキスト行の繰り返し1

Loop Text

「テキスト読み込み1」でオープンされたテキスト行の繰り返し処理を行う。

キー送信

Macro Execute

以下のマクロは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)}
,)}

ファイル削除1

Delete File

以下のファイルを削除します。

{%GET(FullPathFileName)}

動作確認

以下の動画をご覧ください。