初心者向け解説!GASでUUIDを生成する方法と活用例

あの…GASを使ってUUIDを生成する方法はあるでしょうか?
猫男
猫男
catman
catman
GASでUUIDを生成するのは簡単さ。catmanが手取り足取り教えてやるよ。

GASでUUIDを生成する基本

GASでUUIDを生成するには、少し手を動かす必要がある。

だが心配はいらない、ステップごとに解説するぞ。

UUIDとは何か?

まずはUUIDについて説明しよう。

UUIDとは、

Universally Unique Identifier

のこと。つまり「世界でユニークな識別子」の略だ。

その名の通り、各データに一意のIDを付加することでデータ管理がしやすくなるのさ。

GASでのUUID生成方法

GASでUUIDを生成するには、ランダムな数値と文字列を組み合わせる方法が基本だ。

以下のスクリプトを見てほしい。

function generateUUID() {
  const template = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';
  return template.replace(/[xy]/g, function(c) {
    const r = Math.random() * 16 | 0,
          v = c === 'x' ? r : (r & 0x3 | 0x8);
    return v.toString(16);
  });
}

const newUUID = generateUUID();
Logger.log(newUUID);

このスクリプトでは、UUIDの規定フォーマットに従った文字列を生成し、ランダムな値に置き換えることでUUIDを生成している。この方法なら毎回異なる値が生成できる。

この通りにやれば、GASでも簡単にUUIDが作れるようになるんですね!安心しました。
猫男
猫男

UUIDの活用例

生成したUUIDは様々な場面で活用できる。例えばプロジェクト管理やデータベースでのユニークな識別子として使用するのが一般的だ。

データベースでの使用

データベースのレコードにUUIDを使えば、各レコードを一意に識別可能になる。

これにより、データの検索や更新がスムーズに行えるのだ。

プロジェクト管理ツールでの利用

プロジェクト管理ツールでタスクごとにUUIDを付与すれば、タスク管理が容易になり、特に多人数での作業で混乱を防げる。

これが、GASを使って自動化できれば一石二鳥、いや、両手じゃ数え切れねえな。

catman
catman
UUIDの活用は無限大さ。必要なところで活用してみてくれ。

練習問題:UUID生成の理解を深める

問題1: 上記のスクリプトで生成されたUUIDが一意であることを試すにはどうしたら良いか、考えてみよう。

解答と解説

function testUUIDUniqueness() {
  const uuidSet = new Set();
  for(let i = 0; i < 1000; i++) {
    const uuid = generateUUID();
    if (uuidSet.has(uuid)) {
      Logger.log("Duplicate UUID found: " + uuid);
      return;
    }
    uuidSet.add(uuid);
  }
  Logger.log("All generated UUIDs are unique.");
}

function generateUUID() {
  const template = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';
  return template.replace(/[xy]/g, function(c) {
    const r = Math.random() * 16 | 0,
          v = c === 'x' ? r : (r & 0x3 | 0x8);
    return v.toString(16);
  });
}

testUUIDUniqueness();

ここでは新たにtestUUIDUniqueness関数を定義し、1000回UUIDを生成してセット(Set)に格納している。

セットは重複を許さないため、一意でないUUIDが生成された場合はそれを検知する仕組みだ。

これにより、UUIDの一意性を簡単に検証できる。