0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

rex0220 計算式プラグイン テーブルをExcel にコピー&ペースト

Last updated at Posted at 2025-07-10

計算式プラグインで、テーブルをクリップボード経由でExcel にコピー&ペーストします。

概要

財務関数の実行結果とExcelの結果を比較検証するために、テーブルをクリップボード経由でExcel にコピー&ペーストします。
また、Excel の値を文字列複数行経由でテーブルに取得します。

実際の検証は Excel でテストデータを作成して、アプリのテーブルに取得して検証する手順でした。

※ クリップボードにコピーする CLIPBORD_WRITE 関数は、計算式プラグイン Ver.91 以降で利用できます。

テーブルをクリップボード経由でExcel にコピー&ペースト

ボタンクリックでテーブルをクリップボードにコピーし、Excel にペーストします。
Excel でも財務関数を設定して、計算式プラグインの計算結果と差分をとり比較します。

2025-07-10_09h58_48.png

Excel の値を文字列複数行経由でテーブルに取得

Excel の値をコピー後、文字列複数行にペーストして、ボタンクリックでテーブルに反映します。

2025-07-10_10h38_43.png

操作例

  • テーブルをクリップボード経由でExcel にコピー&ペースト

2025-07-10_10h44_45.gif

  • Excel の値を文字列複数行経由でテーブルに取得

2025-07-10_10h47_59.gif

アプリ設定

今回は、小数点以下の比較を行うため、全体の桁数30、小数部の桁数10にしています。

2025-07-10_10h53_45.png

計算式プラグイン設定

クリップボードにコピーするボタンは、作成例としてダイアログ表示と直接クリップボードにコピーするものと2種類用意しています。
CLIPBORD_WRITE 関数で、文字列をクリップボードにコピーできます。

  • OTCSV のオプションでタブ区切りを指定すると、Excelにそのまま張り付けできます
    • TPOPT("TSV","Y")
  • TPOUT で、出力項目を指定できます
    • TPOUT(rate,nper,pmt,pv,fv,type,string,result)

非同期計算をチェックすることで、テーブルへの反映処理の時間を短縮できます。
 ※ Ver.91 以降、非同期計算処理中は、値変更イベント処理を抑止して、計算処理回数を削減

2025-07-10_10h58_00.png

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 詳細画面で文字列複数行を縦スクロール表示」で、文字列複数行の縦サイズを固定します。

2025-07-10_11h16_45.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?