このブログを検索

2012年11月13日火曜日

チェックボックス(随時)の改良版

■ありがたやありがたや

   先日公開しました、以下のスクリプト。

     チェックボックスを選択すると、選択したチェック項目名を下段に表示する。

   このスクリプトを、いつもいつもコメントやアドバイスを下さる”I様”が改良して
   くださいました~~~ヽ(*´ω`)ノ゙ ワッチョーィ♪
   
   冗長で無駄に長かった私のスクリプトが、驚くほどシンプルになっています!
   今後役に立ちそうな構文?も盛り込まれていて、応用学習できそうです~。

   わたくし、リアルnon-ITなもので、GASどころかjavascriptの基本から怪しいので、
   たいそ~~うありがたや~~~です。
   
   さて、前置きはここまでにして、今日はその改良版のスクリプトをご紹介します。


■改良版スクリプト

   このように改良して下さいました。


                        (コピペ元 : https://gist.github.com/4049724


   先日のスクリプトは70行だったのが、42行になってすっきり♪


■紐解いてみる

   このスクリプトの主な改良箇所を、non-IT女子レベルで紐解いてみました。

     ☆ 1~7行目 ☆ 

        






   


       チェックボックスの項目名を配列の形式にして、変数checkBoxArrayに格納。
       [a,b,c,・・・]で配列になるのですね、ふむふむ。       


      (補足 : globalとは?)
          ”function ***(){ ・・・}”の外側で定義する変数のことだそうです。
          複数の”function”で共通して利用できるようになるそうです。
          
          反対に、”function ***(){・・・}”の内側で定義する変数のことを、
          localというそうです。そのfunctionの中でしか利用できないとのこと。


     ☆ 17~21行目 ☆ 
  
        
 
       以下の処理を、変数checkBoxArrayの長さ分(=6回)繰り返す。
         ・チェックボックス作成
         ・チェックボックスの表示を変数checkBoxArrayのi番目にする
         ・チェックボックスの名前を”age+i”にする
         ・チェックボックスに”handler”を紐付ける
         ・checkboxContainerに上記のチェックボックスを追加する

         ・ラベルを作成(チェックボックス選択時の表示用)
         ・ラベルの表示を変数checkBoxArrayのi番目にする
         ・ラベルのIDを”age+i”にする
         ・ラベルを非表示にする
         ・infoboxに上記のラベル追加する




   ☆ 35~38行目 ☆

      

      以下の処理を、変数checkBoxArrayの長さ分(=6回)繰り返す。
         ・”age+i”のチェックボックスが”true”(=選択されている)場合、
          ”info+i”のラベルを表示する

      === 'true' という書き方は面白いですね~~。
      次の二つの構文をひとまとめにしているのでしょうか。因数分解みたいですね。

              ① (e.parameter["age"+i] == 'true') 
              ② .setVisible = 'true'


ふぃ~、今日はここまで♪


■実際に試してみたい方へ

   改良版のスクリプトも、以下のサイトに公開していま~す。
   https://sites.google.com/a/mypleis.com/gas_mypleis/GAS_ALL/13_checkbox_realtime_v2


■予告編

   次回も、I様からのコメント・アドバイスのご紹介と、それをベースにチェックボックスを
   改造してみようと思います~♪