2017年5月10日水曜日

FileMaker、Excelと連携。プラグイン無し!

FileMaker、Excelと連携。プラグイン無し!
プラグインは使いません。
Windows 7以降で標準搭載のPowerShellを使用します。
前準備:特に無し。

動作検証
Windows 10
FileMaker 11以降
Excel 2007, 2016

ファイル:Book1.xlsx を開き、セル:A1、A2 を書き換え、別名保存します。

スクリプト:
変数を設定 [$script; 値:
Let([
script="
$file='{filePath}';
$SavePath='{SavePath}';
$excel = New-Object -ComObject Excel.Application;
$excel.Visible =1;
$book = $excel.Workbooks.Open($file);
$sheet = $book.ActiveSheet;
$sheet.Range('A1')='{A1}';
$sheet.Range('A2')='{A2}';
$book.SaveAs($SavePath);
$book.FullName;
$excel.Quit();
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) ;
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($book) ;
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($sheet) ;
"];
Substitute ( script ;
["{filePath}" ; "C:\Users\PCUSER\Desktop\!Temp\Book1.xlsx"]
; ["{SavePath}" ; "C:\Users\PCUSER\Desktop\!Temp\Book1a.xlsx"]
; ["{A1}" ; Example::f1]
; ["{A2}" ; Example::f2]
)
)
]
Event を送信 [「aevt」; 「odoc」; "powershell -windowstyle hidden -Command " & Quote ( $script )]


「$sheet.Range('A1')='{A1}';」の部分を追加・変更すれば、他のセルへも文字列の設定ができます。

もっと複雑な操作が必要な場合は、プラグイン:ScriptMakerPSを使用する、「Operate Excel」が便利です。

0 件のコメント:

コメントを投稿