Googleスプレッドシートでパラメーター付きURL組み合わせ生成シートを作成

Googleスプレッドシートでパラメーター付きURL組み合わせ生成シートを作成

パラメーター付きURL組み合わせ生成

Webサイトをチェックする際にパラメーターを組み合わせてURLをチェックしたいことがある。

例えばa=1, b=2, c=3の3つのパラメーターがある場合は重複を除くと7通りになる。

パラメーターが3つであればまだ良いが4つだと15通り、5つだと31通りになるため手動で作成およびチェックをするのは大変なのでGoogleスプレッドシートでパラメーター付きURL組み合わせ生成シートを作成しておくと簡単にパラメーター付きURLを生成できる。

パラメーター付きURL生成シート

まずパラメーターなしのURLを入れるセル、パラメーターを入力するセル、パラメーターを出力セルをこのように用意する。

用意ができたらApps Scriptをツール => スクリプトエディタから作成して保存し、挿入 => 図形描画でスクリプトを実行するためのボタンを作成して、そのボタンにスクリプトを割り当てて押したときに実行できるようにすればよい。
パラメーターなしのURLを入れるセル、パラメーターを入力するセル、パラメーターを出力セルこのように用意する

パラメーター付きURL生成するスクリプトは下記の通り。

/**
 * @author iwbjp
 * @version 1.0.0
 * @description Googleスプレッドシートでパラメーター付きURL生成シートを作成
 * https://iwb.jp/google-spreadsheet-url-parameter-apps-script/
 */
function getParamUrl() {
  function e(a) {
    if (1 === a.length) return [a, []];
    var c = a.pop(),
        b = e(a);
        a = b.concat(JSON.parse(JSON.stringify(b)));
    for (b = b.length; b < a.length; b++) a[b].push(c);
    return a;
  }
  var c = SpreadsheetApp.getActiveSheet(),
      f = c.getRange("B1").getValue(),
      d = c.getRange("A4:A100").getValues().filter(String).length,
      d = c.getRange(4, 1, d).getValues(),
      d = e(d).filter(function(a) {
      return a.length;
    }).map(function(a) {
      return a.join("&");
    }).sort();
  c.getRange("B4:B1000").clear();
  d.forEach(function(a, d) {
    c.getRange(4 + d, 2).setValue(f + a);
  });
};

パラメーター付きURL生成シートサンプル