Office Scripts

[Office Scripts]日付印を作成する方法

下記記事「Office スクリプトとPower Automateで作る見積書発行ワークフロー」をご覧になった方から、「日付印の日付部分を変更するにはどうすれば良いか?」とのご質問をいただきました。

上記記事では事前に印鑑の画像を準備しておき(日付印ではなく氏名印)、Power AutomateとOffice スクリプトによってExcelシート上に作成した画像を挿入する処理を行っています。

日付印の場合だと「クリックスタンパー」等のツールやサービスで画像を作成した時点で日付が固定化されてしまうわけですが、これを処理日に合わせて変更したい、というわけですね。

対応策としてはいくつか考えられます。

  1. 何らかの方法で動的に印鑑画像を作成する。
  2. 日付部分以外の印鑑画像を作成しておき、動的に作成したテキストボックスを画像に重ね合わせる。
  3. 印鑑を画像では無く、Excelの図形機能を使って表現する。

使い勝手の良いAPIがあれば1.の方法が簡単ですが、Office スクリプトのみで処理することを考えると3.の方法が現実的だと思います。
Office スクリプトには図形をシートに挿入するための(Worksheet).addGeometricShapeメソッドが用意されており、技術的には難しくなさそうだったので早速試してみました。

日付印を作成するOffice スクリプト

作成したスクリプトが下記になります。
やっていることは非常にシンプルで、(Worksheet).addGeometricShapeメソッドや(Worksheet).addLineメソッドで円や線、矩形といった図形を追加し、大きさや色、フォント等を調整しているだけです。

実行画面

今回紹介したコードでは単に図形をシートに追加しているだけですが、下記のように(Shape).getImageAsBase64メソッドで画像化&Base64エンコードした文字列を取得することもできるので、Power Automateと組み合わせれば、動的に作成した透過PNGを使用した処理を行ったり、幅広く応用できそうです。

const b64 = shpStamp.getImageAsBase64(ExcelScript.PictureFormat.png);
console.log(b64);

また、印鑑用図形の作成にあたっては、NOMBO氏が開発された「Excel電子印鑑」で作成した図形を参考にさせていただきました。この場を借りてお礼申し上げます。

関連記事

[Power Automate for desktop]曜日に応じて処理を実行する方法前のページ

[Power Automate for desktop]VSTOアドイン内のコードを実行する方法次のページ

関連記事

  1. Office Scripts

    Office Scriptsの要件と制限

    いまさらですが、Office Scriptsのシステム要件や制限事項に…

  2. Office Scripts

    [Office Scripts]ワークシート関数を実行しようとして失敗した話

    下記記事でも紹介していますが、Office アドインではワークシート関…

  3. Office Scripts

    [Office Scripts]画像を追加する方法

    Office Scriptsでは、下記コードの通り(Worksheet…

  4. Office アドイン

    [Office Scripts]押さえておきたい基本的なポイント

    Office Scriptsでコードを書くにあたり、ハマりそうなポイン…

  5. Office Scripts

    [Office Scripts]Power AutomateでOneDriveにファイルがアップされ…

    下記記事でも書いている通り、Power AutomateにはOffic…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

Translate

Chinese (Simplified)Chinese (Traditional)EnglishFrenchGermanJapaneseKoreanRussianSpanish

最近の記事

アーカイブ

PAGE TOP