GoogleフォームのURLの不思議
本日も、GASをいじっていきましょう(^^)/
Google Apps Script(GAS)とは、Googleが開発・提供しているプログラミング言語です。プログラミング言語のJavaScriptと非常に似てる(似せている)構造になっています。JavaScript自体が非常にポピュラーな言語なので、少し調べると使い方が出ていますし、その気になれば独学も可能であると思います。
昨今、薬局ではIT化が遅れていると言われていますが、それを解決するために莫大な費用をかける必要はありません。このGASを使用すると、まったく業務が変わってしまうでしょう。
こういった、ツールをメーカーから購入するだけでなく、世の中にある低価(無料)のツールを組み合わせるなどして薬局業務の革新をすることをファムテック(PharmTech)と呼びます。
皆さんも、是非ファムテックを学び、薬局業務を楽しく革新していきましょう(^^)/
GASの始め方を知りたい方は、こちらの記事をご覧ください。
フォームのIDが、送信用と編集用で異なる
GASでコードを書いていると、たまにアレッ?って時があります。
今回は、Googleフォームに関わるGASを書いていて気が付いた話。
気が付いたきっかけは、GASでフォームを編集したり、回答の締め切りを期限で自動で行えるように設定していた時のこと。
よく、スプレッドシートにURLを貼り付け(更新)して管理を見えるかした方法をとっています。このフォームの運営も例外でなく、URLをスプレッドシートから取得して、また更新してスプレッドシートにURLを返すなどの方法をしています。表面的に、更新されたこともわかりますし、半自動化しかできていない場合は手動で編集する箇所が見えやすくて便利です。(てか、すべて自動化できればこんなことする必要もないし、母国語のようにコードが読めればいいだけかもしれませんが。。。)
と、そんな状態で、スプレッドシートに書出したフォームのURLを呼び出してGASで操作を加えようとしたときです。対象のフォームが見つからないとエラーが出ます。
FormApp.openByUrl(formUrl);
GoogleFormを呼び出すのに、formUrlがだめらしい。。。
最初にネタを明かすと、送信用のURL と 編集用のURL のIDが同じだと思い込んでいたため、しばらく困惑してしまっていたのです。てか、IDが違うなんて何のメリットがあるんですか?笑
とういうことで、一見 最後に送信用URLは#viewform 、編集用URLは #editの違いだけだと思いきやそうではありません。
とういうことで、何かしらフォームに対して操作を加えるコードを書く場合は、編集用のURLで対応するようにしましょう。
先ほどの、formUrlには編集用のURLを入れてあげることで、操作できるフォームを呼び出すことができました。
const viewFormUrl = myForm.getPublishedUrl();//送信用のURL
const editFormUrl = myForm.getEditUrl();//編集用のURL
以上が、それぞれのURLを取得するコードになりますので、皆様お気を付けくださいね!
おわりに
いかがでしょうか?ちょっとしたことで、意外と手が止まってしまうことがあります。Googleさん、クセ強かもしれません。笑
でも、使いこなせればやれることがたくさん!やっぱりGoogleってすごい。
それでは、また!!