■再挑戦
先週躓いた「フォーム自作・SS保存」するスクリプト。
やっぱり悔しいというか気持ち悪いので、方法を変えて再挑戦してみます。
今度は、"FormPanel"を使わない方法でできないか試してみます。
("FormPanel"を使ってしまうと、日本語に対応していないですし、使えな~~い。)
前回は、初めから完成イメージのフォームをすべて作ろうとしてしまい、手間もかかった
上に報われなかったので、今回はSmall Startでいきます。
まずは、 一つのボタンを押下で、「TextBox」と「TextArea」の二つの入力項目に
入力されたデータをスプレッドシートに保存することができるか、からです。
■手順・スクリプト
今回も、以前作成した「【GAS】テキストボックス入力・SS保存」というスクリプトを
コピペして作ります。
スクリプトを開いて、「ファイル」→「コピー作成」。
保存用スプレッドシートの1行目を作成予定のフォームに合わせて修正します。
今回は、「タイトル」「本文」の2項目のみで作ってみます。
「ツール」→「スクリプトエディタ」でスクリプトエディタを開きます。
どちらでも構わないのですが、今回は先にGUIを作りますので、GUIビルダーを開きます。
まずはシンプルに、以下の部品のみを使ったフォームにしてみます。
①Scroll Panel : 画面スクロール用
②Vertical Panel : 部品を配置するためのメインパネル
③Label ×2 : 「タイトル」「本文」などの表示用
④TextBox : テキスト入力用
⑤TextArea : 長文テキスト入力用
⑥ Button : 入力内容をSS保存する等の処理を動かすトリガー用
【ID】と【名前】、【テキスト】を任意のものに修正します。
⑥Buttonのプロパティから「イベント」→「マウスクリック時」に”myClickHandler”を選択。
これで、GUIはOK。
保存して、スクリプトエディタに戻ります。
さて。スクリプト。
先に前置きしますと、以下のスクリプトはかなりイケテナイと思います。
イケテナイ点は下記の2つ。
①if文の中にif文を入れ子にする書き方では、入力項目が2つより多くなった時に
ものすごく冗長な書き方になってしまう。
例)「入力項目1=’(空欄)’」且つ「入力項目2=’(空欄)’」且つ
「入力項目3=’あああ’」の場合の処理を書きたい時など
②elseの処理が書けていないため、TextBoxおよびTextAreaが未入力の場合、
スクリプトがきちんと動かない。
上記を踏まえた上で、以下のスクリプトをご覧ください。。。
これで、「保存」・「バージョン管理」・「ウェブアプリケーションとして公開」すれば、
それとな~~~く、フォームっぽくなります。
■動作テスト
URLにアクセスすると、下記のような画面が出ます。
「タイトル」と「本文」に入力し、「登録」ボタンを押下。
保存用のスプレッドシートに戻ってみると、入力した値が保存されてまーす。
試しに、「タイトル」と「本文」を未入力のまま「登録」ボタンを押下すると・・・
保存用のスプレッドシートには、”undefiend”と出ちゃいますーーー。
ちなみに、if&else文を色々変えて試してみているのですが、やっぱりelse文の
箇所がうまく動かないようです。
Google Apps Scriptがどうのという依然に、私がif文の書き方が分かっていない
ことが原因かと・・・・・・
これは、こっそりJavaScript?のテキスト読んで勉強しま~す。
■実際に試してみたい方へ
こんな中途半端な状態ではありますが、一応皆様ご自由に使えるように、
下記のページにURLを載せていますので、お試しくださいませ。
https://sites.google.com/a/mypleis.com/gas_mypleis/GAS_ALL/12_form_no_formpanel
■予告編
明日は、「if文のところを修正します!」と言いたいところですが、
それは一旦置いておいて、「登録」ボタン押下時に、ダイアログボックスを表示する
ようにしたいと思います。
0 件のコメント:
コメントを投稿