Google Apps Script個人的メモ

<h2>Script Editor</h2>
`/** @OnlyCurrentDoc */`・・現在のSpreadsheetへのアクセスと更新を許可
※この記述がないと、そのユーザーが持つ全てのSpreadsheetへのアクセスと更新を許可されてしまう。

<h2>よく使うメソッド：Spreadsheet Service</h2>
<h3>SpreadsheetAppクラス</h3>
- getActive()・・現在のactive spreadsheetを返す
- getActiveSheet()・・spreadsheetでactiveなsheetを返す
- flush()・・全ての未決定のspreadsheetの変化を適応させる

<h3>Spreadsheetクラス</h3>
- addMenu(name, subMenus)・・Spreadsheet UIで新しいメニューを作成
- getLast~()：返り値Integer・・コンテンツを含む最後のcolumn positionやrow positionを返す
 - getLastColumn()
 - getLastRow()
- getDataRange()：返り値Range・・データが存在するrangeを返す


<h3>Sheetクラス</h3>
- activate()：返り値Sheet・・あるsheetをactivate sheetに設定
- insertSheet：返り値Sheet
 - insertSheet()
 - insertSheet(sheetIndex)
 - insertSheet(sheetIndex, options)
 - insertSheet(options)
 - insertSheet(sheetName)
 - insertSheet(sheetName, sheetIndex)
 - insertSheet(sheetName, sheetIndex, options)
 - insertSheet(sheetName, options)
- setName(name)・・sheet nameを設定する
- getRange
 - getRange(row column) ※row, columnは1〜からスタート↔︎配列の場合0〜からスタート
 - getRange(row, column, numRows)
 - getRange(row, column, numRows, numColumns)
 - getRange(a1Notation)
 - getRangeList(a1Notations)
-getDataRange()：返り値Range・・データが存在するrangeを返す
- getLast~()：返り値Integer・・コンテンツを含む最後のcolumn positionやrow positionを返す
 - getLastColumn()
 - getLastRow()
- setFrozen~()：返り値void
 - setFrozenRows(rows)・・与えられたrowsのindexを固定
 - setFrozenColumns(columns)・・与えられたcolumnsのindexを固定
- autoResize〜()：返り値Sheet・・コンテンツに合わせてcolumnやrowのサイズを設定
 - autoResizeColumn(columnPosition)
 - autoResizeColumns(startColumn, numColumns)
 - autoResizeRows(startRow, numRows)
- getSheetByName(name)：返り値Sheet・・与えられた名前のsheetを返す
- offset：返り値Range
 - offset(rowOffset, columnOffset)
 - offset(rowOffset, columnOffset, numRows)
 - offset(rowOffset, columnOffset, numRows, numColumns)
※rowOffset・・その範囲のtop-left cellからどれぐらい下に行くのかを表す数
　columnOffset・・その範囲のtop-left cellからどれぐらい右に行くのかを表す数
- clear()：返り値Sheet・・sheetのコンテンツを削除


<h3>Rangeクラス</h3>
- activate()：返り値Range・・あるrangeをacitivate rangeとして設定
- getLast~()：返り値Integer・・最後のcolumn positionやrow positionを返す
 - getLastColumn()
 - getLastRow()
- getValue()：返り値Object・・あるrangeのtop-left cellのvalueを返す
- getValues()：返り値Object[行のindex][列のindex]・・あるrangeのrectangular gridのvaluesを返す
※行のindex、列のindexは配列ゆえ0〜からスタート
- getDataRange()：返り値Range・・データが存在するrangeを返す
- setValue(value)：返り値Range・・rangeのvalueを設定
- setValues(value)：返り値Range
- setFont~()：返り値Range・・rangeのcolor、fontSize、fontWeightなどを設定


<h2>よく使うメソッド：Calendar Service</h2>
<h3>CalendarAppクラス</h3>
- createCalendar：返り値Calendar
 - createCalendar(name)
 - createCalendar(name, option)

<h3>Calendarクラス</h3>
- createEvent：返り値createEvent
 - createEvent(title, startTime, endTime)
 - createEvent(title, startTime, endTime, options)
- setGuestsCan〜：返り値：CalendarEvent
 - setGuestsCanInviteOthers(true or false)
 - setGuestsCanModify(true or false)
 - setGuestsCanSeeGuests(true or false)
 - getEventSeriesById(iCalId)：返り値CalendarEventSeries

<h3>CalendarEventクラス</h3>
- addGuest(email)：返り値CalendarEvent・・eventにguestを追加


<h2>よく使うメソッドorプロパティ：Forms Service</h2>
<h3>FormAppクラス</h3>
- create(title)：返り値Form・・新しいformを作って返す
- DestinationType・・レスポンスの場所タイプ一覧

<h3>Formクラス</h3>
- setDestination(type, id)：返り値Form・・レスポンスが保存される場所を設定
- addTextItem()：返り値TextItem・・応答者がa single line of textに入るのを許可する新しいquestionを追加
- addSectionHeaderItem()：返り値SectionHeaderItem
- addMultipleChoiceItem()：返り値MultipleChoiceItem

<h3>TextItemクラス</h3>
- setTitle(title)：返り値TextItem
- setRequired(true or false)：返り値TextItem・・応答者がquestionに答えるかどうか設定

<h3>MultipleChoiceItemクラス</h3>
- setChoiceValues(values)：返り値MultipleChoiceItem・・配列からitemの選択を設定

<h3>DestinationTypeプロパティ</h3>
- SPREADSHEET・・レスポンスの場所としてのgoogle sheets spreadsheet


<h2>よく使うメソッド：Script Service</h2>
<h3>ScriptAppクラス</h3>
- newTrigger(functionName)：返り値：TriggerBuilder・・installable triggerの作成過程を始める

<h3>TriggerBuilderクラス</h3>
- forSpreadsheet(sheet)：返り値：SpreadsheetTriggerBuilder・・与えられたSpreadsheetに対応するSpreadsheetTriggerBuilderを作成し返す

<h3>SpreadsheetTriggerBuilderクラス</h3>
- onFormSubmit()：返り値：SpreadsheetTriggerBuilder・・そのspreadsheetに投稿するformがあるとき稼働するtriggerを特定
- create()：返り値：Trigger・・triggerを作り返す

<h2>よく使うメソッド：Document Service</h2>
<h3>DocumentAppクラス</h3>
- create(name)：返り値Document
<h3>Documentクラス</h3>
- addEditor：返り値Document・・与えられたユーザー（たち）をDocumentのeditorリストに追加
 - addEditor(emailAddress)
 - addEditor(user)
 - addEditors(emailAddresses)
- getBody()：返り値Body・・activeなdocument's bodyを取り戻す
- insertParagraph(childIndex, paragraph)：返り値Paragraph
- insertParagraph(childIndex, text)：返り値Paragraph
※childIndex・・the index at which to insert

<h2>Gmail Service</h2>
<h3>MailAppクラス</h3>
- sendEmail(recipient, subject, body)：返り値GmailApp
- sendEmail(recipient, subject, body, options)：返り値GmailApp
<h3>GmailAttachment</h3>
- getAs(contentType)：返り値Blob・・特定のcontent typeに変化したものとしてデータを返す
<h2>よく使うメソッド：Properties Service</h2>
Properties Serviceを使えばkey-valueペアで単純なデータを保存できる
<h3>Script Properties<h3>
<h3>User Properties</h3>
<h3>Document Properties</h3>

- getProperty(key)・・valueを呼ぶ
- setProperty(key, value)・・valueを保存
<h2>よく使うメソッド：javascript</h2>
- Number()・・文字列やその他の値をNumber型に変換
- isNaN()・・値が非数かどうかをチェック
- toLocaleDateString()・・日時を言語に沿った表現にして文字列を返す
- toLocaleTimeString()・・Dateオブジェクトの「時刻」部を表す言語に依存した文字列を返す

<h2>よく使う構文：javascript</h2>
<h3>for var 変数　in オブジェクト</h3>
<h3>for 変数　of 配列</h3>