IT最前線

と言いつつ、IT以外も。。。

googleのサービスを使う(1)

アンケートを取ったり、注文の予約を受けたり。コンテンツ管理者への連絡を行ったりする際、google apps script が使えるのでご紹介しておきます。

 

googleの検索以外のサービスを利用するにはgoogleのアカウント登録がまず必要となります。その後、上記の「googleフォーム」で検索するとフォームの設定を行うサイトにたどり着きます。

下記は簡単なテストで作ったものですが、フォーム登録からgoogleカレンダーへ登録する機能を有したものとなります。

f:id:imain0128:20170723113010j:plain

 

googleフォーム自体は登録された内容をスプレッドシートというExcelに蓄積されたり、下記のように回答内容をグラフ化できます。

f:id:imain0128:20170723114954p:plain

 

カレンダーへの登録を行う場合はスクリプトを作成する必要があります。

スクリプト自体はjavascriptを用いて、VBAのような機能を使う事が可能となります。

下記は例として挙げておきます。(****@gmail.comは自身のアカウントのg-mailをご指定ください

function submitForm(e){
//初期設定
var itemResponses = e.response.getItemResponses();
var cTitle = '';
var cSDate = '';
var cEDate = '';
var cMessage = '';
var cLocation = '';
var cName = '';

// 入力項目の解析
for (var i = 0; i < itemResponses.length; i++) {
var itemResponse = itemResponses[i];
var question = itemResponse.getItem().getTitle();
var answer = itemResponse.getResponse();

if ( question=="イベントタイトル" ) {
cTitle = answer;
} else if ( question=="日付" ) {
cSDate = answer.replace(/-/g,'/');
cEDate = answer.replace(/-/g,'/');
} else if ( question=="開始時間" ) {
cSDate = cSDate + " " + answer;
} else if ( question=="終了時間" ) {
cEDate = cEDate + " " + answer;
} else if ( question=="内容" ) {
cMessage = answer;
} else if ( question=="場所" ) {
cLocation = answer;
} else if ( question=="カテゴリー" ) {
cName = answer;
}
}
// googleカレンダーへの追加
var objCalender = CalendarApp.getCalendarById('****@gmail.com').setName(cName);
var objEvent = objCalender.createEvent(cTitle,
new Date(cSDate),
new Date(cEDate),
{description:cMessage,
location:cLocation}
).setGuestsCanSeeGuests(false);
}

 

以上です。ちなみに登録されたカレンダーと登録されたデータは下記の通りとなります。

f:id:imain0128:20170723124820p:plain

f:id:imain0128:20170723124936p:plain

 

スプレッドシート、ドキュメントについてはMicrosoftOfficeの代用として使えるし、VBAを用いる事も可能です。g-mailなんかも使えるし、便利だと思いますよ。