LANG SELRCT

コードを書く場所についてはこちら

CONTENTS

Google Cloud Functions

How To

Google Cloud Functionsを使ってみる

Google Drive

共有設定

ファイルの共有設定を変更する

ファイルを作って保存する

スプレッドシートからtext/plainファイルを作ってGoogleドライブに保存する
スプレッドシートからCSVファイルを作ってGoogleドライブに保存する
スプレッドシートからJSONを作ってGoogleドライブに保存する(keyはA列)
スプレッドシートからJSONを作ってGoogleドライブに保存する(keyは1行目)
スプレッドシートからJSONファイルを作ってGoogleドライブに保存する(keyは1行目)(外部スクリプトファイル)

CSVデータを作ってGoogleドライブに保存する
JSONデータを作ってGoogleドライブに保存する

スプレッドシートを作成して指定のフォルダに入れたい

外部ファイルを取得して保存する

Web上のファイルをGoogleドライブに保存する

ファイルを取得する

Googleドライブ内のJSONファイルを取得する
指定したフォルダ内のファイル数を取得する

画像ファイルをimgタグで表示

Google Drive内の画像ファイルをHTMLのimgタグで表示したい
フォルダ内の複数画像を取得してHtmlServiceで表示したい

ローカルにダウンロードする

テキストファイルをローカルにダウンロードする

ファイルをコピーする

スプレッドシートをマイドライブにコピーする
ファイルをコピーして指定フォルダに入れる
スクリプトファイルをコピーして指定したフォルダに入れる
HTMLServiceのテンプレートファイルをワンクリックで作成したい

ファイルを上書きする

Googleドライブ内のテキストファイルを更新する

ファイルを追加する

ファイルを指定したフォルダに追加する(コピーはしない)

ファイルを削除する

フォルダ内の同名ファイルをremoveする

ファイルを移動する

特定のフォルダ内のファイルを別のフォルダに移動する

ファイルをアップロードする

Googleドライブの指定したフォルダにファイルをアップロードする
Googleドライブの指定したフォルダにファイルをアップロードする(formのsubmitボタンを使わない)
Google Driveに複数ファイルをアップロードしたい
Google Driveに複数ファイルをアップロードしたい(submitボタン使わない)

ファイル一覧を取得する

Googleドライブの特定のフォルダ内のファイル一覧とプレビューのリンクをシートに書き出す
Googleドライブで指定したフォルダ内にあるファイルidを取得したい
Googleドライブ内の特定のフォルダ内でファイルを探したい(スクリプトで)
Googleドライブ内のファイルをファイル名で並べ替えて取得したい

フォルダを作成する

Googleドライブの特定のフォルダに新規フォルダを作成したい

フォルダを取得する

GoogleドライブのファイルIDから親フォルダを取得する
Googleドライブの指定したフォルダ内のフォルダの一覧をシートに書き出す
Googleドライブ内のフォルダをフォルダ名で並べ替えて取得したい

フォルダIDとは

GoogleドライブのフォルダID

スクリプトIDを取得する

スクリプト内でスクリプトIDを取得する

Drive API

Google Drive web APIを有効にする


Google Spreadsheet

How To

スプレッドシートにメッセージボックスを表示する

スクリプトの実行方法

スプレッドシートにメニューを追加する雛形
スプレッドシートにサイドバーを表示する雛形
シートに配置した図形をクリックしてスクリプトを実行する
自作関数を作成する
トリガー
マクロの記録

入力ツールを作る 

スプレッドシートに入力ツールを表示する
入力ツールからシートに値を入力する(ボタン)
入力ツールからシートに値を入力する(改行2つ)
サイドバー上でデータを入出力するUIを作る

シートを挿入する

複数のシートをスクリプトで挿入したい

データを取得する

シート内でデータが入っている範囲を取得する
getRange()の範囲を取得してA1Notationで表示したい
getValue() と getDisplayValue() がある
HTML ServiceでgetValuesではnullになるのでgetDisplayValuesを使った
選択した列のデータを配列にして取得する
列内で特定の値に一致する行番号を取得する
シートの特定の列を対象にデータの出現回数を取得する
データが入力されている最終行を取得する
データが入力されている最終列を取得する
シートの1行目(ヘッダ行)の値を取得する
スプレッドシートでA列をkeyにしたオブジェクトを作る
スプレッドシートで1行目をkeyにしたオブジェクトを作る
シートのデータから配列とオブジェクトを作りたい
アクティブセルの行・列番号、A1表記を取得する
特定の列の最大値と最小値を取得する
特定の列で指定した日時よりも新しい日時の行を取得する
ノート(メモ)を取得する
シートの列ごとに配列を作りたい
シートの特定の列で値が入っていない範囲の最終行を見つけたい

データを入力する


データをクリア・削除する

シートのデータをクリアする
シートの行を削除する
シートの列を削除する
シート内の空白の行と列を削除する
特定の列に特定の値が入っている行を削除する

カーソル移動・ソート

指定したセルをアクティブにする(カーソルを移動する)
データが入力されている最終行の次の行へカーソルを移動する
シートのデータを昇順・降順でソートする
フィルタをかけたときに表示されている最終行を取得したい

表示・書式設定

行・列を非表示にする
折り返しを設定するrange.setWrap(true)
特定の文字が入力された行の背景色を変える
数値の表示形式をスクリプトで変える
数値を指定した表示形式のテキストにする関数 text()
スプレッドシートでセルの値のみ貼り付ける
スクリプトで行と列を固定する
セルの文字色を取得する
スプレッドシートの折れ線グラフで点を線でつなげたい(null 値を表示)

関数を入力する

シートにHyperlink関数を入力する
シートにHyperlink関数を入力する2(複数のテキストにリンクを作成する)
setValuesでセルに関数を入力したい

関数のTIPS

スプレッドシートのUNIQUE関数を横に向けたい
シートの列内の重複データを見つける関数

QUERY関数

QUERY関数でシートを結合する

ファイル名、シート名取得・変更

スプレッドシートのファイル名を変更する
スプレッドシートのファイル名を取得する
シート名を変更する
シート名を取得する
シートのURLとシート名を取得する
シート名とインデックスを取得したい

ファイルID、シートID

スプレッドシートのファイルIDとは
スプレッドシートのシートIDとは
スプレッドシートのURLを指定してデータを入力する
スプレッドシートのファイルIDを指定してデータを入力する
シート名を指定してデータを入力する
シートIDを指定してデータ入力する
シートIDを渡してシートを取得する
URLをsplit()してスプレッドシートのIDを抽出する
スプレッドシートURLから対象のシートを取得する
スプレッドシートのURLからスプレッドシートIDとシートIDを取り出したい

共有権限取得

スプレッドシートの編集者、閲覧者、オーナーを取得する
スプレッドシートの共有範囲と権限を取得する

制限時間を越える処理の対策

スクリプトの処理を途中で止めて、再実行時に続きから実行できるようにする
A,B列の値を5行ずつ処理してC列に入れる


Arrange

対象の行で先頭のセル値と末尾のセル値を取得してつなげたい

HTML/CSS Material iconsを利用する
Google Fonts APIを使ってみる
displayとvisibilityの設定
文字を囲むような枠を作る
box-shadowで影をつける
flexboxでブロック要素を横に並べる
flexboxでインライン要素を縦に並べる
flexboxとposition:fixedを使ったときにぶつかった壁
文字列を折り返し表示させない white-space: nowrap
overflow-wrapで英字を折り返す
コピペして文字を大きくするテキストエリアを作る
placeholderの色を変更する
placeholder内で改行する
divの中でスクロールさせる
CSSで枠線の表示・非表示
カードのヘッダを作りたい
ラジオボタンを均等に配置したい float, table, flexbox
div要素の中でセンタリングしたい(垂直水平方向の配置)
formのsubmitをfalseにする
formの入力欄を必須にするrequired
テキストエリアの枠を消したい
stickyで画面スクロースしてもついてくる要素を作る
テキストボックスに削除ボタンを付ける
スタイルを複数設定するときの備忘録
classListでスタイルをadd, remove, toggle, containsする
opacityで要素を透明にする
cursor: pointerでカーソルを手のアイコンに変える
iframe内の拡大縮小を無効化したい pointer-events: none;
imgタグで配置した画像のコントラストを変えたい
要素の中身を編集可能にしたい contenteditable=true
テキストエリア内の行の高さを指定する
テキストエリアの表示行数を指定したい(rows=行数)
クリックしたdiv要素に枠線を付けたい
フォーカス時の青い枠を消したい

HTML Service

How To

HTMLでページを作る

CSSとJavaScriptを別のファイルに書く場合

Scriptletsを使う

viewportを使う

HtmlServiceでviewportを使いたい

ファビコンを使う

HtmlServiceでファビコンを設定したい

外部ページのiframeに読み込む

setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL)

HTML要素を作る

テキスト
日付
時間
日時
複数行のテキスト
入力欄にメッセージを表示
入力欄に入力候補を表示する datalist
ボタン
マテリアルアイコン
ラジオボタン
チェックボックス
セレクトボックス
セレクトボックス(選択肢を表示)
セレクトボックス(グループラベル)
ハイパーリンク
画像を表示する
モーダルを作る
モーダルに閉じるボタンをつける
ウェブサイト翻訳ツール

クリックされた時に反応する機能を作る
ボタンをクリックしたら新規ページを開く
テキストが入力された時に反応する機能を作る
改行が入力された時に反応する機能を作る

選択されているラジオボタンの値を取得する
選択されているラジオボタンのidを取得する
選択されているチェックボックスの値を取得する
選択されているセレクトボックスの値を取得する

ラジオボタンを選択状態にする
ラジオボタンを未選択状態にする
チェックボックスを選択状態にする
セレクトボックスのオプションを選択状態にする
セレクトボックスの値が変わったら反応する

HTML要素を削除する

セレクトボックスの中身を削除したい

.htmlと.gsでのデータのやり取り

HTML Serviceの.html側から.gsのコードを実行して結果を受け取る
google.script.runの.withUserObject()で第2引数を渡してみる

スプレッドシートの読み書き

Webアプリを作ってシートに値を入力する
Webアプリを作ってシートの値を読み込む
シートから1行目と2行目以降のデータを分けて読み込みたい

ドキュメントの読み書き

GoogleドキュメントのテキストをHtmlServiceのテキストエリアに読み込みたい
HtmlServiceのテキストエリアからGoogleドキュメントに書き込みたい

iframeでファイルを読み込む

Webアプリのiframeの中にGoogle Driveのファイルを表示する
Webアプリのiframeの中にGoogle Driveのファイルを表示する(編集可能)

HTML要素をJavaScriptで作る

HTML要素を動的に作りたい(テキストエリア)
HTML要素を動的に作りたい(ラジオボタン)
HTML要素を動的に作りたい(チェックボックス)
HTML要素を動的に作りたい(ボタン)
HTML要素を動的に作りたい(テキストボックス)
HTML要素を動的に作りたい(セレクトボックス)
HTML要素を動的に作りたい(データリスト)
HTML要素を動的に作りたい(ハイパーリンク)
HTML要素を動的に作りたい(画像)
HTML要素を動的に作りたい(div)
HTML要素を動的に作りたい(div)と子要素
HTML要素を動的に作りたい(テーブル)
ヘッダ付きのカードを動的に作る

Arrange

HTML Serviceで作ったWebアプリの上部に表示されるバナーについて
指定したサイト内で検索するボタンを作りたい
指定したサイト内で検索するボタンを作りたい(複数ボタン)
現在日時を取得して入力欄に入れる
オブジェクトの値を取得してHTML要素の属性値に入れたい
HTML Serviceで作ったコードをライブラリ化したい
入力された文章を指定した文字で置換する
改行⇔カンマに置換する
画面遷移前にアラートを出す
テキストエリア内を範囲選択・先頭・末尾にキャレット移動をする
セレクトボックスの選択肢に応じて指定した要素をスクロールさせたい
Google Drawingsでアイコンを作ってみる
選択したテキストを取得するボタンを表示したい
imgの元画像の幅(width)と高さ(height)を取得したい
Googleドライブ内の画像をbase64にencodeしたデータを表示したい

JavaScript localStorageを使ってみる
テキストを数字に変換する
データの型を取得する
全角ひらがな⇔全角カタカナ⇔半角カタカナ変換
ボタンのdisabledを操作したい
innerHTMLやtextContentの中身が変更された時に検知したい
指定した要素の親要素を取得する
body内でクリックした要素の情報を取得する
入力エリアで特定のキーが押された時に処理を実行する
ブラウザ上で押されたキーに応じた処理を実行する
フォーカスされている要素を取得したい
オブジェクトのvalueに関数を入れて呼び出したい
JavaScriptで前後の要素を取得する
Node.insertBefore()で要素を追加する
ParentNode.childrenで指定した要素の子要素を取得する
要素の表示判定でoffsetTopを試してみる
Mathオブジェクトの備忘録
RawGitでgithubに置いた.jsを読み込む
テキストエリアの値をローカルにダウンロードする
document.getElementByIdを短くための関数を用意してみる
選択した文字列をクリップボードに保存したい
選択したテキストをアラートに出す
キャレットの位置を取得したい
クリップボードにコピーする
キーを押して放したことを検知したい
キーを押して放したことを検知したい(シンプル版)
アロー関数 () => は function()
JavaScript関数の定義についてメモ
開いているページのURLを取得したい(location.href)
テキストエリアで一番下までスクロールしたことをキャッチしたい
マウスの座標をリアルタイムで取得したい(e.pageX, e.pageY)
idを指定して要素を削除したい .remove()
子要素をTagNameで絞って取得したい
指定した要素の左上からの位置を取得したい(getBoundingClientRect)

指定した値が配列の何番目にあるか知りたい
2次元配列で指定した値が何番目の配列にあるか知りたい
配列内の数値をソートしたい
2次元配列をソートしたい(数値)
配列内の文字列をソートしたい
2次元配列をソートしたい(文字列)
配列内の最大値・最小値を取得したい
配列の先頭の要素を削除する
配列の末尾の要素を削除する
配列の指定した要素を削除する
配列の要素を追加・置換する
配列の先頭に要素を追加する
配列の末尾に要素を追加したい
var result = array.push("value");はresultに要素数が入る
Array.concatで配列を結合する
Array.prototype.push.applyで配列を結合する(2次元配列を1次元配列にしたい)
一次元配列を二次元配列にしたい
配列をコピーする
配列の要素をつなげる
文字列から配列を作る
配列をカンマで改行する
配列の中で特定の値がいくつ存在するか件数を取得したい
配列内の要素をfilterでユニークにしたい
配列の中から条件に一致する要素を抜き出す(filter)
配列内で重複する値の発生数を取得する
配列内で重複する値の発生数を取得してオブジェクトで返す
配列内で重複する値の発生数を取得してオブジェクトを配列に入れて返す
配列内で重複する値の発生数を取得してオブジェクトを配列に入れて返す(発生件数の降順)
配列内の要素の組み合わせを列挙する(ペアのパターン)
配列の文字列をユニークにして重複を抽出したい
2つの配列で共通するものと新しく追加されるものを抽出する
配列をシャッフルする(先頭の要素とランダム位置の要素を入れ替える)
配列内の順番を逆にしたい

配列内のオブジェクトをvalueでソートしたい
配列内のオブジェクトで特定のvalueのみの配列を作りたい
2つの配列からオブジェクトを作成する
2次元配列からオブジェクトを作る
配列の中にオブジェクトを作りたい
オブジェクトから値を取得する
オブジェクトからすべての値を取得する
オブジェクトのkeyを取得したい
複数のオブジェクトをObject.assignでマージする
オブジェクトにプロパティを追加したい
オブジェクトのプロパティを削除したい
オブジェクトの中から条件に一致する要素を抜き出す(filter)
オブジェクトの中から条件に一致する要素を抜き出す(filter)(正規表現を使う)
オブジェクトの中から一致するキーを見つけて新しいオブジェクトを作る
JSON.stringify()で見やすいログを出したい

オブジェクトを二次元配列にして返す
改行で区切った文字列からJSON形式の文字列を作成する

文字列を配列にする
文字列の先頭・末尾を取得する
先頭と末尾の文字列を削除する
末尾の文字が特定の文字だったら削除したい
指定した文字列の前後に特定の文字列を追加したい
.replace()で文字列を置換する
文字列から特定の文字列を抜き出したい substr

現在日時を取得する new Date()とUtilities.formatDate
今日の年月日と曜日を取得したい
今の年月日と曜日と時刻をリアルタイムで取得したい
特定の日時を指定する
明日の日付けを取得したい
2つの日時の時間差を出したい
日付間の日数と週数を出す
指定した日付けの週初と週末を取得する
指定した日付けからその月末と曜日を取得する
今月末の日を取得する
指定した西暦の年末の曜日を取得する
今日は今月の何週目の何曜日かを求める
今日は今年の何日目で何週目かを知りたい
TimeZoneの時差を取得したい
スクリプトの実行時間(秒)を取得したい
setTimeoutで1秒ごとにコンソールにメッセージを出してみる
指定した秒数だけメッセージを表示したい
一定時間経過後に実行したい
ストップウォッチを作る実験(分と秒)
ストップウォッチを作る実験(時と分と秒とミリ秒)
ストップウォッチを作る実験(別のタブを見ている間も計測する)
ストップウォッチを作る実験(start→stop→resume)
明日までの残り時間をリアルタイムで更新する
小数点以下の桁数を指定したいtoFixed()

.onclick と .addEventListener('click', ...
DOMContentLoadedとload
innerHTMLとtextContent
getComputedStyleでスタイルを取得する
.classNameと.style.propertyでスタイルを変える
displayの値を変える(element.className)
displayの値を変える(element.style.display)
visibilityの値を変える(element.className)
visibilityの値を変える(element.style.visibility)
disabledとreadOnly
HTML要素の属性を削除する(removeAttribute)

現在実行中の関数名を取得したい
Media Typeの一覧を知りたい
== 等価演算子と === 厳密等価演算子を使う
if, switch, indexOf, Objectで試したコード
evalを使ってみる

文字列の中に特定の文字が存在するか知りたい test()
match, exec, test, searchの違いを知りたい

setTimeoutに引数を渡したい
画面上で一定秒数操作がなかったらアラートを出す
コールバック関数の理解を試みた

累乗の計算をする
階乗の計算をする
順列の数を計算する
組み合わせの数の計算をする

10進数から2進数に変換する .toString(2)
10進数から16進数に変換する .toString(16)
文字列をUTF-16に変換する
文字列⇔UTF16⇔16進数の相互変換をする(サロゲートペア非対応)
文字列⇔UTF16⇔16進数の相互変換をする(サロゲートペア対応)
文字列→UTF16→16進数→文字列に変換する
文字をUTF16と16進数の数値に変換する

オブジェクトのプロパティディスクリプタを取得したい

繰り返し処理

for文
for文 continue
for文 break
forEach文
for in文
for of文
while文を使う
map文を使う

条件分岐の処理

if文を使う
三項演算子を使う
switch文を使う
オブジェクトのプロパティ名から値を取得する

Promise

JavaScriptの非同期処理の理解を試みた備忘録
コールバック関数の理解を試みた
JavaScriptでPromiseを使ってみる
JavaScriptでPromiseを使ってみる2
JavaScriptでasync/awaitを使ってみる

LINE BOT

How To

LINE BOTの作り方

Channel側の設定

LINE BOTで「リッチメニュー」を表示してみる
LINE BOTで「キーワード応答メッセージ」を使う
LINE BOTでデフォルトのメニュー表示を消す

Reply Message

LINE BOTで「LINEの絵文字」を使う
LINE BOTで「画像」を表示する
LINE BOTで「スタンプ」を表示する
LINE BOTで「imagemap」を表示する
LINE BOTで「Flex Message」を使ってみる
LINE BOTの「Flex Message」でpostbackを使ってみる
LINE BOTのFlex Messageのtextで文章を省略せずに表示したい
LINE BOTで「LIFF」を使う
LINE BOTで「クイックリプライ」を使う
LINE BOTでprofileを取得してみる

Template Message

LINE BOTで「画像カルーセル」テンプレートを表示する
LINE BOTで「カルーセル」テンプレートメッセージを表示する
LINE BOTで「確認」テンプレートメッセージを表示する
LINE BOTで「ボタン」テンプレートメッセージを表示する
LINE BOTで「ボタン」テンプレートメッセージをPUSHしてみる

Push Message

LINE BOTでメッセージを送る(push message)
LINE BOTでメッセージを送る(push message)決まった時間に自動的に

Arrange

LINE BOTでメッセージに応じてデータを返す
LINE BOTでGoogle検索のリンクを返す
LINE BOTでGoogle翻訳する
LINE BOTで特定の場所の位置情報を表示する
LINE BOTでuserId, groupId, roomIdを取得したい
LINE BOTのリッチメニューをAPIで作ってみる

Tips

LINEの友達やグループをスマホのホーム画面から開きたい
新規作成したLINE BOTが反応しないときに「Webhookの送信」をチェックし直す
LINE BOTを開発中にスマホのLINEに通知が来なくなった時にやったこと
LINEで絵文字を出す方法



正規表現
先頭の文字を置換する
数字を消す
数字以外を消す
正規表現を書いてmatchで抽出する
正規表現でOR(または)を使いたい

ひらがなを抜き出す /[ぁ-ゟー]+/g
カタカナを抜き出す /[゠-ヿ]+/g
半角カタカナを抜き出す /[ヲ-゚]+/g

半角英字(小文字)を抜き出す /[a-z]+/g
半角英字(大文字)を抜き出す /[A-Z]+/g
全角記号を抜き出す /[!-/:-@[-`{-~]+/g
全角英数字と記号を抜き出す /[!-~]+/g

漢字を抜き出す /[々〆〇〻㐂-頻]+/g

常用漢字だけを抜き出す
ひらがなとカタカナを抜き出す
漢字、ひらがな、カタカナ、英数字を正規表現で区切る
テキストを漢字、ひらがな、カタカナ、半角カタカナ、半角英数、全角英数に分割したい
漢字、ひらがな、カタカナ、英数字で区切ってユニークにしたそれぞれの件数を取得したい

全角英数を半角英数にして大文字を小文字にする

正規表現で<p>hello</p>の中からhelloに一致させる
テキストエリア内の空行を削除したい
英数以外のテキストの間にある半角スペースを削除したい

new RegExp()を使ってパターンを作る

その他Apps Scriptのダッシュボードを開くGoogle Apps Scriptのプロジェクトを削除したいGoogle Apps Scriptのファイル(プロジェクト)を書く場所Standalone Scriptsを作成する方法Google Apps Scriptで実行中の処理を強制的に停止したいGoogle Apps ScriptのスクリプトIDの取得方法
Google Apps ScriptのJavaScriptのバージョン
アプリへのアクセス許可を削除する
Google APIのスコープ一覧を知りたい
GoogleDriveの新規ファイルを.newで作る
Googleスライドでカギ型コネクタに矢印をつける
macOS High Sierraで隠しファイルを表示する
コマンドラインで使うコマンドの備忘録
「iCloudに保存するために十分な空き領域がありません。」が表示されないようにしたい
V8
bloggerにads.txt ファイルを設置する
常用漢字とJIS第1水準〜第4水準漢字一覧をそれぞれ一行で表す
入力した漢字の情報を表示する(JIS漢字水準、常用漢字、UTF16、16進数)
Macでスクリーンショットを撮ってクリップボードに保存する
Chromeでページ全体のスクリーンショットを撮りたい
sublime textでインデントを設定したい(HTML-CSS-JS Prettify)
Sourcetreeとgithubでsshキーの設定をしたときの備忘録
Sourcetreeのアンインストール→インストール→Bitbucket連携
Windowsでスリープからの復帰時にパスワードが聞かれないときに確認したこと
AndroidデバイスマネージャーでAndroidスマホを探す
Wi-Fiのハードウェア(MAC)アドレスを知りたい
ScanSnap Homeでスキャン設定したい(iX500)
macOS MojaveにしたらChromeで音声入力できなくなった(解決済)

個人的に使っている環境設定やアプリなど

GarageBandでスコアに音符を入力したい


別の言語の話
-bash: rspec: command not foundをgem install rspecで解決

clasp pushでスクリプトエディタのコードが更新されない