xml:space="preserve">
注文書 9 申し込み書 プラン A

Excel文書をCSVに変換(スクリプト実行)

概要

監視フォルダに格納されたExcel文書を読み込み、CSVファイルに保存するスクリプト(VBS)を出力して、出力したスクリプトをコマンド実行で実行します。

事前にスクリプト(VBS)作成してテストを行います。作成したスクリプトをeDocArrangement2のテキスト書き込みに入力して設定を作成します。

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

eDocArrangement
テキスト書き込み
\90_System\10_Temp
script.vbs

出力したvbsファイルをコマンド実行で実行します。

eDocArrangement
コマンド実行
script.vbs
10_CSV変換
商品マスタ.xlsx
矢印右
20_処理済み
商品マスタ.xlsx
商品マスタ.csv

設定の前準備

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

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

Excel文書をCSVに変換_フォルダ構成.zip

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

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

  • C:\Home\eDocArrangement2\Demo\Excel文書をCSVに変換
    • 10_CSV変換
      監視フォルダ。
      • _商品マスタ.zip
    • 20_処理済み
      入力のExcelファイルとCSVファイルの出力先。
    • 90_System
      • 10_Temp
        • script.vbs
          実行時に出力されるスクルプトファイル。マクロが展開されたファイルをここで確認できます。
      • 90_Log
        ログの出力先。

設定ファイル

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

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

Excel文書をCSVに変換_設定.zip

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

C:\Users\ユーザー名\AppData\Roaming\TechnoStyle\eDocArrangement2

グローバルデータ

グローバルデータとログの設定(共通設定)

グローバルデータの内容は以下の通りです。トップフォルダを変更する場合は、以下の定義を変更してください。グローバルデータは、「共通設定」から変更できます。

名前
TopFolder C:\Home\eDocArrangement2\Demo\Excel文書をCSVに変換

詳しい設定方法は、 設定例(共通)グローバルデータとログの設定 を参照して下さい。

ログ設定

実行ログファイル名 {%GET_G(TopFolder)}\90_System\90_Log\Log.txt
エラーログファイル名 {%GET_G(TopFolder)}\90_System\90_Log\ErrorLog.txt
文字コード SJIS
方式 追加書き込み (日単位)

バッチ設定

Excel文書をCSVに変換

Excel文書をCSV形式で保存するスクリプト(VBS)を実行する。

ファイルの繰り返し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)}\20_処理済み\{%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

Move File

文書を以下の通り移動する。

移動元 {%GET(FullPathFileName)}
移動先 {%GET_G(TopFolder)}\20_処理済み

移動先に同名の文書がある場合は、ファイル名に連番を付与する。

監視設定(eDocArrangement 2 Schedulerの設定)

No.
設定名
実行対象
監視フォルダ
拡張子
下位フォルダ
スケジュール
常時ログ出力
オープンチェック
サイズチェック
実行条件
1
Excel文書をCSVに変換
{%GET_G(TopFolder)}\10_CSV変換
*.xlsx
対象にしない
一定間隔
00:00:10
しない
オープンチェックする。(3秒)
しない

動作確認

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