今日は、Googleサイトに新しくページを追加する際に必要なページ名を
自動的に生成できるようなスクリプトにしてみようと思います。
※ページ名とは、”http://~~/***”の***の部分
このページ名、「ユニーク」であり且つ「英数字」のみでなければいけません。
今までは、スクリプト内に直接ページ名を指定していたのですが、これだと、
毎回スクリプトを書き換えなければならず、とても手間です。
そこで、英数字を使ってランダム且つユニークなページ名を生成し、それを
ページ名として指定するようにします。
■参考元及びスクリプト
今回、参考になったのは、下記の書籍に記載されていた次のスクリプト例。
☆Google Script:Enterprise Application Essentials
James Ferreira著 O'REILLY
amazon URL →Google Script: Enterprise Application Essentials
(P.49 抜粋)
ここに記載されているスクリプトは、予めスプレッドシートにデータが入力されていることが
前提で、次のような動きをするスクリプトのようです。
・データが入力されている最終行を取得
・その行数回繰り返して以下のランダムIDを生成
-アルファベットA~Z、a~zの組み合わせ
-10文字
・上記で生成したランダムIDを配列に格納
・スプレッドシートの特定列に、配列に格納したランダムIDを順次入力
私は、フォームから受領時にその都度一つだけランダムのページ名を生成したいのと、
完全にユニークなページ名にしたいため、次のようなスクリプトにアレンジしました。
☆簡単コード解説☆
1~16行目 : 割愛 (※過去の記事をご参照ください)
18行目 : ランダムで組み合わせたい文字を変数charsに格納
-A~Z,a~zを指定
19行目 : ランダムで組み合わせたい文字の長さを指定
-5桁を指定
20行目 : ランダムで組み合わせた文字列を格納するための変数
22~24行目 : 18行目の文字から1字をランダムで抽出するという処理を、
19行目で指定した文字列の長さの回数分繰り返す
-A~Z,a~zから一文字抽出し、それを5回繰り返す
27行目 : スプレッドシートのデータが入力されている最終行の行数を
変数に格納
-結果的に、最新のフォーム回答を受理した行数になる
28行目 : 27行目の最終行数と、24行目までで生成した5桁のアルファベット
とをくっつける。
32行目 : 上記で生成した[行数名+5桁英字]をページ名に指定
■動作テスト
いつも通り、フォームから入力・送信し、Googleサイトを更新すると、ちゃんとアップされて
いました。
このページのURLを拡大してみると、
ちゃんと【行数 + 5桁のアルファベット】になっています。
念のため、もう一回テスト。
ちゃんと、以下のようになっていますね~~~。
今日はここまで。
■予告編
明日は、フォームの回答内容をサイトに表示する際、スペースや改行が反映されるように
してみようと思います☆
0 件のコメント:
コメントを投稿