見出し画像

【生成AI×GAS】作成したGASを連携して複雑な組み合わせのリストを作る

オレンジピーチのトシです。
『GASで複雑な組み合わせのリストを作る』の最終回になります。
こくまで作成してきた3つのパートのGAS(Google Apps Script)を組み合わせて、複雑な組み合わせリストを完成させていきます。
(全体構想の記事はこちら)


3つのGASを連続して動かす

今回の完成イメージ:やりたいこと

これまでに作成したGASを、「全組み合わせのリストを作る」→「部分組み合わせのリストを作る」→「行ごとの組み合わせを作る」の3つのパートを一連の流れで動くように統合するスクリプトを考えます。

完成に向けて、いつものように、やりたいことの解像度を上げていきます。
最終的な入出力を含むので、使いやすさにも踏み込み、やること・やらないことを明確にしていきます。

(プログラムを作成する際には、この工程が最も重要なのですが、「うまく分解できない。」「どのように言語化すれば良いか分からない。」といった相談を受けることが多いです。
実は、このような構想から要件を見つける作業にも、生成AIが力を発揮します。この内容は別の記事にまとめたいと思いますが、まずは部分の思うところを、生成AIに投げかけてみるのも良いと思います。)

  • 全組み合わせ、部分組み合わせの条件のリストや、出力としての一覧表などは、1つのスプレッドシートにまとめたい。

  • このGASを利用する人は、ある程度GASが使える人なので、UIにはこだわらない。(エディタを起動して「実行」ボタンを押す方法で運用できる)

  • GASを実行すると、最終の一覧表まで自動的に作成して欲しい。
    作成が完了したら知らせて欲しい。

元情報のインプット(スプレッドシート)

それぞれの要素と水準は、スプレッドシートのシートにマスタとして入力することにします。
GASはこのスプレッドシートにコンテナバインドした状態で作成します。

「部分組み合わせ」「全組み合わせ」の元になるマスタ

GASの作成

久々に、生成AIを使わない形でGASを作成します。
理由は生成AIを使うまでもないような簡単なコードだからです。

下記のように、関数の呼び出しを用いて、これまで作成したGASを順に呼び出すことで、最終の一覧表を作成することが出来ます。
(※下記のコードで、「元のコードをそのまま使用」と書いてある部分には、過去の記事で作成したスクリプトをそのまま転記してください)

function createCombinedSheet() {
  generateCombinations();
  generatePartialCombinations();
  combineSheets();

  // ダイアログを表示
  Browser.msgBox('一覧表の作成が完了しました');
}

// 全組み合わせを生成する関数
function generateCombinations() {
  // ... (元のコードをそのまま使用)
}

// 部分組み合わせを生成する関数
function generatePartialCombinations() {
  // ... (元のコードをそのまま使用)
}

// 2つのシートのデータを結合する関数\
function combineSheets() {
  // ... (元のコードをほぼそのまま使用)

※関数の呼び出しについて、詳しく知りたい方は、こちらの記事もご覧ください。

GASを実行する

GASを実行すると各関数が連続的に稼働して、一覧表の作成が終わるとダイアログが表示されます。
(はじめてGASを実行する際には、アクセス権限の承認を求められます。
 詳しく知りたい方は、別に説明した記事のリンクをご覧ください。)

一覧表の作成完了を示すダイアログ

作成された一覧表は「統合組み合わせ結果」シートにあり、組み合わせも正しく作成出来ているようです。
5つの要素の組み合わせですが、126通りの組み合わせがありました。
これだけのリストを手作業で作成するのは手間ですし、間違いのリスクも高いです。(特に、部分組み合わせと全組み合わせが掛け合わさるので難しい)

GASで作成することで、簡単に作成が出来るようになるだけでなく、間違いを防ぐことも出来るようになります。

自動作成された一覧表(一部)

まとめ

これまで5回に渡り、「組み合わせの一覧表」をGASを用いて作成する方法をご紹介して来ました。
複雑な組み合わせ表も、必要な機能を分解して考えていくと、GASで自動的に一覧表にすることが出来ます。

実際の業務は、もっと複雑な場合も多くあると思います。
今回ご紹介した内容を応用するとともに、生成AIとの対話で、業務課題をクリアすることに挑戦してみたいと思って頂けるとHappyです。

最後まで読んで頂き、ありがとうございました。
記事の内容が参考になった方は、「スキ」して頂けると励みになります。


この記事が少しでもお役に立てたのなら、サポートいただけると嬉しいです。頂いたご支援は、今後の活動費やコンテンツの質向上に使わせていただきます。