初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2019-08-21 15:57:27

タクヤ
Guest

FileMakerエクスポート時

いつもお世話になっております。
FileMakerからデータをエクスポートした際、(Excelにて。拡張子はxlsx)
個人情報等があるので、クライアントからパスワードを掛けてほしいと言われました。
(サーバーのスケジュールでエクスポートしたデータをメールにて送付しております。)
基本的には、無理だと思うのですが、何か方法があればお知恵をお貸しください。

#2 2019-08-22 10:59:36

qb_dp
Member

Re: FileMakerエクスポート時

ZIPファイルにしてパスワードを設定ならコマンドラインで動作する以下のようなアプリーケーションを使い、FileMaker Serverのスケジュールに組み込めば可能でしょう。

コマンドでZIPや7zにパスワードを付ける | 7-Zip
https://sevenzip.osdn.jp/howto/dos-comm … sword.html

ちなみに、クライアント(FileMaker Pro)からならPowerShellを使い、Excelファイル自体にパスワードの設定が可能です。
PowerShellの例

$FilePath="C:\Users\xxxxx\AppData\Local\Temp\S10.1\file.xlsx";
$Password="0000";
$excel = New-Object -ComObject Excel.Application;
$excel.Visible = $true;
$books = $excel.Workbooks;
$book = $books.Open($FilePath);
$book.Password=$Password;
$book.Save();
$book.Close();
$excel.Quit();
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)>$null ;
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($book)>$null  ;

検証
Windows 10
Excel 2016
※FileMaker からエクスポート→パスワード設定 を行うには「Eventを送信」を使用し上記PowerShellをFileMakerのスクリプトに組み込む必要があります。

Offline

#3 2019-08-22 13:49:38

タクヤ
Guest

Re: FileMakerエクスポート時

qb_dp 様
ありがとうございます。
PowerShellで動作の確認が取れました。誠にありがとうございます。
ただ非常に申し訳ないのですが、お恥ずかしながらEventを送信スクリプトを使用したことがなく、どうすればEventを送信でPowerShellが動作するのか分かっておりません。
TEST.ps1というファイルを作ったのですが、テキストが開くのみで...
ご教授いただければ幸いです。
何卒宜しくお願い申し上げます。

#4 2019-08-22 14:02:52

タクヤ
Guest

Re: FileMakerエクスポート時

タクヤ wrote:

qb_dp 様
ありがとうございます。
PowerShellで動作の確認が取れました。誠にありがとうございます。
ただ非常に申し訳ないのですが、お恥ずかしながらEventを送信スクリプトを使用したことがなく、どうすればEventを送信でPowerShellが動作するのか分かっておりません。
TEST.ps1というファイルを作ったのですが、テキストが開くのみで...
ご教授いただければ幸いです。
何卒宜しくお願い申し上げます。

自己解決しました。
PowerShell等初めて使うので、分からない事だらけでした。
ありがとうございました。

#5 2019-08-22 17:51:46

qb_dp
Member

Re: FileMakerエクスポート時

参考まで。
「レコードのエクスポート でExcelファイルをエクスポートし、パスワードを設定する」スクリプトの例:

変数を設定 [$Password; 値: "0000"]
変数を設定 [$FileName; 値: "file.xlsx"]
変数を設定 [$Temporary_pass; 値: Get ( テンポラリパス )]
変数を設定 [$FilePath; 値: $Temporary_pass & $FileName]
レコードのエクスポート [ダイアログあり:オフ; ディレクトリの作成:オフ; 「$FilePath」; Unicode (UTF-16)]
変数を設定 [$FilePath_win; 値: Substitute ( Replace ( $FilePath ; 1 ; 1 ; "" ) ; "/" ; "\\" )]
変数を設定 [$PS; 値:
Let([
¢PS=
"
$FilePath='{FIlePath}';
$Password='{Password}';
$excel = New-Object -ComObject Excel.Application;
$excel.Visible = $true;
$books = $excel.Workbooks;
$book = $books.Open($FilePath);
$book.Password=$Password;
$book.Save();
$book.Close();
$excel.Quit();
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)>$null ;
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($book)>$null  ;
"
];
Substitute ( ¢PS
    ; ["{FIlePath}" ; $FIlePath_win]
    ; ["{Password}" ; $Password]
)
)
]
変数を設定 [$Command; 値: Quote ( $PS )]
Event を送信 [「aevt」; 「odoc」; "powershell -WindowStyle Hidden -Command " & $Command]

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 509.58 KiB (Peak: 515.55 KiB) ]