計算式プラグインで、テーブルをクリップボード経由でExcel にコピー&ペーストします。
概要
財務関数の実行結果とExcelの結果を比較検証するために、テーブルをクリップボード経由でExcel にコピー&ペーストします。
また、Excel の値を文字列複数行経由でテーブルに取得します。
実際の検証は Excel でテストデータを作成して、アプリのテーブルに取得して検証する手順でした。
※ クリップボードにコピーする CLIPBORD_WRITE 関数は、計算式プラグイン Ver.91 以降で利用できます。
テーブルをクリップボード経由でExcel にコピー&ペースト
ボタンクリックでテーブルをクリップボードにコピーし、Excel にペーストします。
Excel でも財務関数を設定して、計算式プラグインの計算結果と差分をとり比較します。
Excel の値を文字列複数行経由でテーブルに取得
Excel の値をコピー後、文字列複数行にペーストして、ボタンクリックでテーブルに反映します。
操作例
- テーブルをクリップボード経由でExcel にコピー&ペースト
- Excel の値を文字列複数行経由でテーブルに取得
アプリ設定
今回は、小数点以下の比較を行うため、全体の桁数30、小数部の桁数10にしています。
計算式プラグイン設定
クリップボードにコピーするボタンは、作成例としてダイアログ表示と直接クリップボードにコピーするものと2種類用意しています。
CLIPBORD_WRITE 関数で、文字列をクリップボードにコピーできます。
- OTCSV のオプションでタブ区切りを指定すると、Excelにそのまま張り付けできます
- TPOPT("TSV","Y")
- TPOUT で、出力項目を指定できます
- TPOUT(rate,nper,pmt,pv,fv,type,string,result)
非同期計算をチェックすることで、テーブルへの反映処理の時間を短縮できます。
※ Ver.91 以降、非同期計算処理中は、値変更イベント処理を抑止して、計算処理回数を削減
APP: 財務関数PV (3618)
NOTE:
OPTION: 非同期計算
// header1:($HEADER1) HEADER
DIALOG(
BOPT("TITLE","テーブル -> クリップボード",
"HTML","テーブルをクリップボードにコピーします",
"DETAIL","Y"
),
CLIPBORD_WRITE(
OTCSV(テーブル,TPOPT("TSV","Y"))
)
)
// header2:($HEADER2) HEADER
BUTTON(
BOPT("TITLE","テーブル -> クリップボード2",
"DETAIL","Y"
),
CLIPBORD_WRITE(
OTCSV(テーブル,TPOPT("TSV","Y"),
TPOUT(rate,nper,pmt,pv,fv,type,string,result)
)
)
)
// header3:($HEADER3) HEADER
BUTTON(
BOPT("TITLE","csv -> テーブル置換",
"HTML","excel_csv をテーブルに反映します"
),
FSET(テーブル,
CSV_TVAL(excel_csv,
TPOPT("TITLE","label")
)
)
)
// テーブル.#:seq NUMBER
ROWNO(テーブル)+1
// テーブル.string SINGLE_LINE_TEXT
SWITCH(sel_func,
"R_PV", R_PV(rate,nper,pmt,fv,type),
"R_FV", R_FV(rate,nper,pmt,pv,type),
"R_RATE", R_RATE(nper,pmt,pv,fv,type),
"R_NPER", R_NPER(rate,pmt,pv,fv,type),
"R_NOMINAL", R_NOMINAL(rate,nper),
"R_EFFECT", R_EFFECT(rate,nper),
""
)
// テーブル.result NUMBER
ROUND(string,10)
// テーブル.difference SINGLE_LINE_TEXT
result - excel
ちょっと便利なプラグイン設定
「F27 詳細画面で文字列複数行を縦スクロール表示」で、文字列複数行の縦サイズを固定します。