Googleスプレッドシートを使ったTwitter抽選ツールの作り方』の【Part.5】です。[...]目次1.事前準備2.処理の流れを先に考える3.実装―応募した人の一覧を取得する4.実装―応募した人の一覧から、ランダムな値を使って指定された人数分の当選者を抽出する5.実装―結果表示6.コードまとめ+α7.おわりにスポンサードリンク前回は、いよいよコードの実装に入ったところでした。(コードの中身だけ見たい方は6.コードまとめ+αに飛んで下さい)1.事前準備まずは、前回動作確認用に書いたコードは削除しましょう。コードの先頭に「//」をつけて、コメントにしても良いでしょう。World");2.処理の流れを先に考えるすぐにコードを書き始めるのではなく、先に処理の流れを整理しておきましょう。書きながら考えれる人もいると思うんですが、最初のうちは先に大まかでも処理の流れを考えて書き始めると、戻り(修正)が少なくなると私は思います。応募した人の中から、指定した人数をランダムで抽選するを実装したいので、(1)応募した人の一覧を取得する(2)応募した人の一覧から、(ランダムな値を使って)指定された人数分の当選者を抽出する(3)結果表示この辺が必要になってきそうですね。以下の説明もこの単位で行っていきます。3.実装―応募した人の一覧を取得するでは実装に入ります。※ここで出てくるコードは、すべて前回作った「myFunction」のカッコ内に書いてください。応募した人の一覧を取得します。スプレッドシートのセルの値を取得するには、以下のように書きます。1」という名前のシートを取得します。1」を見てもらえばわかる通り、2行目から回答追加されていってるので「2」ですよね。終了(To)は・・?正解はnで、応募数によって変わります。抽選する際にどこまでデータが入っているかを判断しないといけないのです。「地道に2行目から数えていって、空白セルが出てきたら終了」でもいいんですが、今回は「getLastRow」を使います。getLastRowは、シートの中のデータが入っている最終行を返すメソッドです。応募者の最終行この最終行を使って、応募者のリストを配列で取得します。応募者リストこれで応募した人の一覧を取得することが出来ました。1」シートのB列のデータを取得しています。この例でいうとTwitterIDにあたる部分ですね。1)この部分の左から2番目の数値を変更します。Cなら3、Dなら4で、左から数えて何番目かをセットします。ここまでのコードをまとめると、myFunction()はこのようになっています。応募者リスト4.実装―応募した人の一覧から、ランダムな値を使って指定された人数分の当選者を抽出する次はランダムに当選者を抽出します。ランダムというのがポイントですね。);これで、hitIdxに、aptList配列のランダムなインデックス(添字)が入ります。この書き方で、配列のインデックスをランダムに取得出来るのか...。それは、タカハシノリアキさんのコチラの記事を読んでみて下さい。Scriptの書籍で学習して、このツールを作成しました。Suiteの最新プログラミングガイド~乱数についてもう少し補足した記事です。よければこちらも見てみてください。乱数とは何か?サンプルコード有り。プログラミングでよくある活用方法も紹介プログラミングをやっていると、「乱数」という用語を目にすると思います。サンプルコードや活用方法も紹介するので、今後のプログラミングの幅が広がりますよ。[...]後は、これを当たりの人数分繰り返せば良さそうですね。繰り返しなので、じゃあforで回せば・・・といきたいところですが、人数分回すだけだとある問題を解決できません。それは『当たりの重複』です。ランダムで同じ値が返ってくることもあるので、同じ人が抽出された場合は再抽選しないといけません。このような形にでいきます。重複の無い当たりが当選者数分出るまで回すという処理になっています。これで応募した人の一覧から、ランダムな値を使って指定された人数分の当選者を抽出することができました。当選者はwinListに保持されています。ここまでのコードをまとめると、このようになります。当選者がwinListに入ってますので、これをシートに展開すればOKです。結果表示前には、結果表示領域のクリア処理もしておきます。2).setValue(winList[i]);}winListの件数分をforループで回しながら、結果をシートに展開しています。これで必要なコードが揃いました。最後に、今回書いたmyFunctionのコードのまとめです。+α」と書いた部分は、あっても無くても抽選機能は動くのでどちらでも構いません。}}ここまで済んだら保存して、スプレッドシートの抽選シートから、「抽選」ボタンを押してみましょう。当選者ラベル(B3)の下に、応募した人の名前が表示されればOK。完成です!!7.おわりにこの作ったツールを実際に使ってもらうには、googleフォームのページから[送信]というボタンを押して、メールで送ったりクリップボードにコピーして共有します。抽選機能の実装2(当記事)参考書籍この抽選ツールを作るのにコチラの書籍で学習しました。Suiteの最新プログラミングガイド~GoogleAppsScript(GAS)を使うことで、様々なGoogleサービスを自動化し、そして連携をすることができるようになります。スプレッドシートで表や帳票を作る...Amazonで探す楽天で探す高橋宣成さんという有名なブロガーの方の書籍です。【ITリテラシーまとめ】ITスキルを高めて情報化社会を生き抜く方法ITリテラシーとはどういうものか、あるとどうなるのか、どうやったら高められるのか、ITスキルの活用などなどをまとめています。プログラミングや、ITリテラシーを高めるのにオススメの本、エンジニア転職なども含めて紹介します。ITリテラシーについて発信しているブログです。ITをもっと知りたい、活用したい方に向けて、ITの便利さや面白さを伝えたいです!SIer10年→SIerフリーランス→Laravelを修得してWeb系フリーランスに。me!ITリテラシーについて発信しているブログです。ITをもっと知りたい、活用したい方に向けて、ITの便利さや面白さを伝えたいです!SIer10年→SIerフリーランス→Laravelを修得してWeb系フリーランスに。