初めてのGoogle Drive

この記事では、これからGmailを学ぶ方向けに、役立つ動画の紹介を致します。

チャンネル: G神(cooker8 by 明治クッカー 牛乳屋さん社長)
講師:にっしー(西原 亮)

チャンネル: ビジネス教育系ユーチューバーYouseful(ユースフル)
Yousefulの講師の方

の講義が、初めての私でも分かりやすかったです。

動画自体も沢山あるので、どれから視聴したら良いのか、と迷われた方は目安にして頂けましたら嬉しいです。

※ 私は動画を紹介しているだけのただの一視聴者であり、投稿者の方とは面識がございません。


● 【実演解説】パソコン版Googleドライブの使い方(2023年最新)(時間:12:31)



パソコン版Googleドライブを使うことで、クラウドとローカルの同期が可能になります。
動画ではWindowsの手順でしたが、私はMacを使用しているため、Macでの手順及び私の環境で掲載します。
Chromeのアドレスバーの所で、「パソコン版Googleドライブ」で検索
2番目の「ダウンロードGoogleドライブ」をクリックする。
(私の環境では1番上になっていました。)
Macのファインダーの所の場所の下に、Google Driveが追加されました。

ダウンロード先の設定は、Chromeの3ポチ→設定→ダウンロード
ダウンロード先確認にチェックしておくと、次にダウンロードするときも、Google Drive上にダウンロードしやすくなります。


●【G神の嘆き】99%の人が知らないGoogleドライブの「本当の使い方」。仕事の生産性が高まるGoogleドライブの2つの機能を紹介(時間:10:00)


アクションアイテムという、自分がやるべきことのあるファイルとは何かということと、その検索の仕方、割り振り方を学べました。
後半の候補は私が使っているのは、無料版なので、候補リストの所を右クリックしてメニューの確認をしました。


● Googleカレンダー、ドライブ、ミートの厳選ショートカットキー (時間:11:10)


  ・Googleカレンダー(11選)0:47-4:57
  ・Googleドライブ(13選)4:58-9:26
  ・Googleミート(2選) 9:27-10:24


●まず、最初に見るべき動画です。(時間:11:13)


他のサービスとの比較や、Googleドライブの基本的な使い方の解説。
日頃Googleドライブは使っているが、プレビュー機能は使ったことが無かったので初めて知りました。
これを知ると、ファイルを開かなくても中身の確認が出来るので時短に繋がりそうです!覚えたことを早速使って見ました。


● 【文字を自動で書き起こせます】実務で使える!Googleドライブの超便利機能5つをご紹介!(時間:9:42)


予定文字認識の便利さや、PDF化、同時編集やバックアップなどが学べました。


● 【無料でサイトも作れちゃう】GoogleDriveとChromeの厳選ショートカットとセキュリティ対策を解説!(時間:13:42)


ドライブのショートカットキーに加えて、Chromeから新規ファイルを作るショートカットキーも学べました。
ポートフォリオを簡単に作成する方法は目から鱗です!!
また、フリーWi-Fiの危険性も知れました。


■ 関連記事 ■

自己紹介


コロナ禍・アフターコロナに向けてテレワーク対策(Google Workspace)に戻る

スプレッドシート

フォーム
カレンダー
Chrome
Gmail
ドキュメント
スライド
マップ
GAS

取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ


急にプレゼンすることになったから手っ取り早くパワポ教えてくれ


Wordのポイントを手っ取り早く教えてくれ



メインメニューに戻る

初めてのGmail

この記事では、これからGmailを学ぶ方向けに、役立つ動画の紹介を致します。

チャンネル: G神(cooker8 by 明治クッカー 牛乳屋さん社長)
講師:にっしー(西原 亮)

チャンネル: ビジネス教育系ユーチューバーYouseful(ユースフル)
Yousefulの講師の方

の講義が、初めての私でも分かりやすかったです。

動画自体も沢山あるので、どれから視聴したら良いのか、と迷われた方は目安にして頂けましたら嬉しいです。

※ 私は動画を紹介しているだけのただの一視聴者であり、投稿者の方とは面識がございません。


● 【初心者向け】日本一わかりやすいGmailとは。「なんか、わかりにくい」はこれで解決されます。【Google Workspace #13】(時間:6:11)


● 【初心者向け】前編:Gmailの基本の設定と使い方(2021年10月版)イチから始める方もおさらいしたい方も。【GoogleWorkspace #73】(時間:14:17)


サイドパネルの表示と最大化、クイック設定、詳細設定の重要な項目が学べました。


●【初心者向け】後編:Gmailの基本の設定と使い方(2021年10月版)メール作成から漏れないための管理方法まで。【GoogleWorkspace #74】(時間:14:17)


基本的なショートカットキーと、メールの管理でラベルに色を付けるやり方があり、早速重要な方のラベルに色を付けました。また、TODOとの連携はタスクの漏れを防ぐのでこれも抑えました。


● 【最強ショートカット】GmailとGoogle CalendarのG神が使い続けた厳選ショートカット。CARFEとJKDMWをあなたは知っているか?(時間:7:30)


メールとカレンダーの良く使うショートカットキーでG神厳選なので、覚えるのが苦手な私でも、このCARFEとJKDMWは頑張って覚えたいです。使いながら覚えて行きます。



● G神オススメのGmail設定と使い方。【Google Workspace #35】(時間:11:38)

良く使う文章をテンプレートに用意しました。
受信トレイの使い方は、「アーカイブ」か「スター」か、という考え方を学び、そのショートカットキーを覚えました。
チャットは初めて使って見ました。


●【総集編】G神と呼ばれた男のGoogle活用術その②Gmailのおすすめ設定大公開(時間:12:27)


何となくGmailを使っている私には、プロの設定はどうやっているのだろう・・・。
という疑問がありました。
この動画では、表示件数、取り消し秒数、返信時のデフォルトの設定(ここではビジネスマナーも学べました)、署名のチェックで、プロの方の設定を真似できて、Gmail頻出ショートカットキーのおさらいも出来ました。


【完全解説】GmailをiPhoneで使い倒す方法。スマホこそGmailが便利すぎた。(時間:20:32)


iPhoneでもGmail使うので、PC版との違いを知りたいと思って視聴しました。
新規ラベルはPCよりもiPhoneの方が作りやすいことを知りました。
TODOリストや情報保護モードなど初めて知ったこともありました。


<G神からの挑戦状#4> Gmail基本編10問【GoogleWorkspace #65】(時間:20:50)


G神からのテスト問題に答えて、その解説を動画で見ることによって、覚えたことが定着出来る動画です。
Gmailのこれまでの動画で、どこまで自分が理解出来たか、一旦動画を止めて、フォームでテストに回答して、その解説を動画で見れる仕組みです。
1回目点数50点。
思っていたよりも理解出来ていませんでした。
解説動画を見て、なるほど・・・と頷けました。
全部見た後にもう一度テストをやって見たら、100点でした。


● ChromeとGmailのショートカット(時間:13:35)


・Chrome(9選 0:46-4:16)
・Gmail(15選 4:20-12:39)
Chromeのタブ移動は、かなり仕事の生産性に直結しそうです。
また、Gmailの受信トレイと送信済みトレイの行ったり来たりは私自身良く行う操作なので、すぐに覚えました。


●【パソコン初心者向け】Gmailの始め方と基本の使い方入門講座!(時間:11:33)

Gmailを使うのが初めての方は勿論、私のように普段使っているけれどイマイチ使い切れていない人にも勉強になる動画です。
プレーンテキストや、そのモードにしなくても右クリックをして貼り付ける方法を初めて知りました。
テンプレートが出ない!と、途中焦りましたが、その方法も動画で説明してあって、安心しました。
このテンプレートはGmailを仕事で使っている私にとって、とても嬉しい機能です。


●【爆速ショートカット一覧付き】Gmailの生産性が上がる!便利な使い方設定7選!(時間:17:50)


メールの取消時間の設定は、万が一間違えて送信してしまった時に使えそうです。
キーボードショートカットの設定はかなり便利です!
これまでの私は、設定 → 全般で下の方をスクロールしておりましたが、この動画の方法ならかなり時短出来ます。
受信トレイの表示分割を使ってみました。
テーマも気分転換に変えてみました。


■ 関連記事 ■

自己紹介


コロナ禍・アフターコロナに向けてテレワーク対策(Google Workspace)に戻る

スプレッドシート

フォーム
カレンダー
Chrome
ドライブ
ドキュメント
スライド
マップ
GAS

取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ


急にプレゼンすることになったから手っ取り早くパワポ教えてくれ


Wordのポイントを手っ取り早く教えてくれ



メインメニューに戻る

初めてのGoogle Chrome

この記事では、これからGoogle Chromeを学ぶ方向けに、役立つ動画の紹介を致します。

チャンネル: G神(cooker8 by 明治クッカー 牛乳屋さん社長)
講師:にっしー(西原 亮)

の講義が、初めての私でも分かりやすかったです。

動画自体も沢山あるので、どれから視聴したら良いのか、と迷われた方は目安にして頂けましたら嬉しいです。

※ 私は動画を紹介しているだけのただの一視聴者であり、投稿者の方とは面識がございません。


● GoogleChromeはよく使う。よく使うから細かい設定が大事。(時間:12:06)

この動画の設定内容は、すぐに出来る内容でありながら実務での能率が上がるので、早速使ってみました。毎回フォントやタブを変えている方はこの動画を見ることで時短につながると思います。


●【G神の掟】GoogleChromeの時短術5選。基本の使い方から便利な設定までを公開。【Google Workspace#45】(時間:12:25)


タブの切り替えショートカットや素早い検索の設定方法などが実用的です。


● Chromeの便利な機能5選 (時間:10:59)


・ブックマークとリーディングリスト
・シークレットウィンドウ
・タブの簡単な検索。開いているタブと最近閉じたタブのリストは実用的!!
・タブのミュート
・QRコードをChromeだけで簡単に作成出来る!これはビックリ!!


● ChromeとGmailのショートカット(時間:13:35)


・Chrome(9選 0:46-4:16)
・Gmail(15選 4:20-12:39)


● 【猫好きはたまらない】GoogleChromeの便利+癒やされる機能を5つ紹介。Chrome拡張機能(時間:14:48)

Chromeの勉強に加え、スプレッドシートやスライドの復習にもなりました。
ちょっとした計算に便利な方法や、私のような猫好きには嬉しい拡張機能もありました。


● Chromeの2023年便利技5選 (時間:15:06)


特に、サイドバーの検索は便利で、検索の生産性が上がります!


●【最大活用】Chrome拡張機能で生産性UP!5つのオススメ拡張機能(時間:15:52)


特に、GoFullPageのウェブサイトまるまるスクショは凄い実用的!!


● Google検索のスピードが10倍になるたったひとつの神業 (時間9:51)


2023年3月時点では、Amazonや楽天の設定の「検索エンジン」→「検索エンジンのサイト内検索を管理」の所で、「有効にする」を押さないと設定出来ないことに気づきました。
その設定の上でaやrを押してスペースを押すと、高速検索が出来る。「%s」に置き換えると、Gmailやカレンダーに行かず、直接Chromeから検索出来る設定が出来て、これはかなり便利です!
ただ私にとっては、ちょっと難易度が高いので、最後の方にしました。


【総集編】G神と呼ばれた男のGoogle活用術その①Chromeのおすすめ設定大公開(時間:16:40)


これまでの総復習が、サクッと出来ます。


■ 関連記事 ■

自己紹介


コロナ禍・アフターコロナに向けてテレワーク対策(Google Workspace)に戻る

スプレッドシート

フォーム
カレンダー
Gmail
Drive
ドキュメント
スライド
マップ
GAS

取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ


急にプレゼンすることになったから手っ取り早くパワポ教えてくれ


Wordのポイントを手っ取り早く教えてくれ



メインメニューに戻る

初めてのGoogleカレンダー

この記事では、これからGoogleカレンダーを学ぶ方向けに、役立つ動画の紹介を致します。

チャンネル: G神(cooker8 by 明治クッカー 牛乳屋さん社長)
講師:にっしー(西原 亮)

の講義が、初めての私でも分かりやすかったです。

動画自体も沢山あるので、どれから視聴したら良いのか、と迷われた方は目安にして頂けましたら嬉しいです。

※ 私は動画を紹介しているだけのただの一視聴者であり、投稿者の方とは面識がございません。


●【初心者向け】2021年保存版Googleカレンダーの全て(時間:41:14)

この動画ではGoogleカレンダーについて1から学べる上に、便利で実用的なショートカットキーも紹介されています。
動画自体が長いので、私は4回に分けて視聴しました。
過去の予定が薄くなるの設定も予定の管理がしやすくなりますので、早速設定致しました。
日・週・月・年だけでなく、「2週」の設定もできて、その場合のショートカットキーもメニューに表示されていました。


●【G神流】Googleカレンダー徹底活用術(時間:20:40)


● GoogleカレンダーのG神厳選ショートカット2023年版。よく使う人は必見。【Google Workspace】(時間:10:58)

この動画では、Googleカレンダーの中でも特に使用頻度の高い13個のショートカットキーが勉強出来ました。

見え方のショートカット:
日、週、月、年単位の表示と翌週/前週に移動するショートカットと今日に戻るショートカット

・更新:
カレンダーがなかなか更新されないな・・・という時に、便利な更新のショートカット

・設定画面:
逆に、設定画面からいつもの週単位などの画面に戻るにはどうするんだろうと思って取り敢えず[esc]を押してみたら、これが当たりでした!

・予定作成:
このショートカットキーは、直近ではなく、先の予定を入れる時に便利。

・予定の編集:

・予定の削除:

・間違って削除してしまった時に元に戻すショートカット
使い方に注意点があります!

・保存:

ショートカットキーは使わないと忘れてしまうから、日々使うようにとにっしー社長が仰っていました。


●GoogleカレンダーでWEB会議、資料共有、Todo管理を一つに集約せよ!(時間:7:37)


●【最強ショートカット】GmailとGoogle CalendarのG神が使い続けた厳選ショートカット。CARFEとJKDMW(時間:7:30)


●【待望】Googleカレンダーの時間分析機能が神アップデート(時間:13:57)


●日程調整はもう不要。Googleカレンダーユーザー必見(時間:17:18)


● 【後編】G神厳選のショートカット集(時間:11:10)
  ・Googleカレンダー(11選)0:47-4:57
  ・Googleドライブ(13選)4:58-9:26
  ・Googleミート(2選) 9:27-10:24


■ 関連記事 ■

自己紹介


コロナ禍・アフターコロナに向けてテレワーク対策(Google Workspace)に戻る

スプレッドシート

フォーム
Chrome
Gmail
Drive
ドキュメント
スライド
マップ
GAS

取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ


急にプレゼンすることになったから手っ取り早くパワポ教えてくれ


Wordのポイントを手っ取り早く教えてくれ


メインメニューに戻る

初めてのGoogleフォーム

この記事では、これからGoogleフォームを学ぶ方向けに、役立つ動画の紹介を致します。

チャンネル: G神(cooker8 by 明治クッカー 牛乳屋さん社長)
講師:にっしー(西原 亮)

の講義が、初めての私でも分かりやすかったです。

動画自体も沢山あるので、どれから視聴したら良いのか、と迷われた方は目安にして頂けましたら嬉しいです。

※ 私は動画を紹介しているだけのただの一視聴者であり、投稿者の方とは面識がございません。

また、スプレッドシートの関数が出てくるので、忙しい方で尚且つ関数がちょっと苦手だな・・・と思われた方向けに、初心者目線動画の内容に沿って関数の解説もこの記事で行いました。


●【初心者向け】2021年保存版Googleフォームの全て。使い方をイチから教えます。仕事への活用方法の解説あり。【GoogleWorkspace #77】(時間:51:06)

少し長めの動画ですので、私は5回に分けて視聴致しました。

ラジオボタンとチェックボックスの違いは知っていましたが、ファイルをアップロードしたりマトリックス、質問のインポート、タイトルを移動、セクション、テストモードなどは初めて知りました。
設定が大事なのですね。


●従業員情報の管理+研修システムをイチからつくる。これぞGoogleフォームの真髄。【Google Workspace #59】(時間:20:06)


ファイルのアップロード数の設定、動画をフォームに入れる方法、テストモードなど、初心者向けの最初の動画を見た後に視聴すると、更に理解が深まります。


●Googleフォームはまとめて一つに。複雑にしないシンプルな運用方法。複数フォームを一つのシートで管理する方法(時間:10:34)


SUMIF関数(6:35)について、少し補足をしました。
調べれば出てきますが、本当に忙しい方は、その時間が惜しいかも知れませんので、この動画の例に沿って簡単にお伝えさせて頂きます。

SUMIF関数というのは、例えば「田中さん」の営業活動時間を求めるなど、条件(=田中さん)に合ったものだけを合計する関数です。

=SUMIF(名前の範囲 , 田中, 営業活動時間の合計)

これを実際の式にすると、

=SUMIF(‘フォームの回答 1′!$B$2:$B$17,A2,’フォームの回答 1’!$C$2:$C$17)

となります。
名前の範囲営業活動時間合計数絶対参照になります。
絶対参照とは、数式のコピーなどでセルを移動しても、必ず固定して見る不動の参照の仕方です。
絶対参照は[F4]キーを押します。

同じように、

=SUMIF(名前の範囲,田中,新卒採用実績の合計)

=SUMIF(‘フォームの回答 2′!$B$2:$B$17,A2,’フォームの回答 2’!$C$2:$C$17)

です。

私は行数を17行目までにしましたが、動画ではもっと多く取っていました。


●在庫管理をスマホで実現!Google活用で5分で作れ!さらばエクセル!【Google Workspace #5】(時間:12:05)


SUMIFS関数(7:05)について「忙しい方向けに」、「この動画の例に沿って」補足しました。

SUMIFS関数は、SUMIF関数と似ているのですが、最後にSが付いているので、複数の条件に合ったものを合計する関数です。

例えば、「シャツ」と「入荷」という条件に合致した数を合計します。
引数の順番がSUMIF関数と異なるので、そこだけ注意です。
具体的には、合計する数が最初の引数になります。

=SUMIFS(合計範囲 , 商品名の範囲 , シャツ , 入荷出庫の状態の範囲 , 入荷)

となるので、ここに実際に式を当てはめると、

=SUMIFS(’フォームの回答 1′!$E$2:$E$20,’フォームの回答 1′!$C$2:$C$20,$A2,’フォームの回答 1′!$D$2:$D$20,B$1)

と指定します。

絶対参照と複合参照がちょっとたでややこしいのですが、

絶対参照:合計範囲、商品名の範囲、入荷出庫の状態の範囲
複合参照(列固定):商品名
複合参照(行固定):入荷と出庫の状態名

になります。

まず、
絶対参照:合計範囲、商品名の範囲、入荷出庫の状態の範囲
についてですが、これは行も列も絶対固定の不動の範囲です。

次に、
複合参照(列固定):商品名
は、式をコピーする際、A列の商品名は動かしたくないので、列固定の複合参照です。
これは[F4]キーを3回押します。

最後に
複合参照(行固定):入荷と出庫の状態名
は、式をコピーする際、1行目の入荷と出庫の状態の行は動かしたくないので、行固定の複合参照です。
これは[F4]キーを2回押します。

こうしておけば、出庫の所にもそのまま数式をコピーするだけで済みます。


● Googleフォームの回答を複数人に一斉通知。G神オススメのプログラミング不要コピペ術。 (時間 9:26)

かなり便利なスクリプトだと思いました。
フォームで送信をすると、関係者全員にメールが届き、件名も指定できてフォーム回答の中身も見れます。

GASやプログラミングが全く分からない方でも、コピペさえ出来れば便利な使い方だと思いました。
スクリプトは動画の概要欄にあり、エディタを開いて一旦全部削除してからコピペだけです。

あと、トリガーの設定で関数の所がグルグル回って動かないという場合は、スクリプトの関数名を「sendform」から「sendform1」と名前を変えてみた所、私の場合はトリガーの設定が出来ました。

GASを勉強した経験があったのでスムーズに出来ましたが、全く初めての方でも不可能ではないと思います。


記事を書くことで自分の復習になりましたし、お忙しい方にお役立て出来れば幸いでございます。

■ 関連記事 ■

自己紹介



コロナ禍・アフターコロナに向けてテレワーク対策(Google WorkSpace)に戻る


スプレッドシート


カレンダー

Chrome

Gmail

Drive

ドキュメント

マップ

スライド

GAS



取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ



急にプレゼンすることになったから手っ取り早くパワポ教えてくれ


Wordのポイントを手っ取り早く教えてくれ



メインメニューに戻る


初めてのGoogleスプレッドシート


この記事では、これからスプレッドシートを学ぶ方向けに、役立つ動画と書籍の紹介を致します。

※ 私は動画及び書籍を紹介しているだけのただの一読者、視聴者であり、動画投稿者及び著者の方とは面識がございません。

本を買うかどうかは、これから紹介する動画をご覧になって、もし必要であれば、「この辺りの本が良いんじゃない?」という本を紹介させて頂きますので、まずは動画をご覧下さいませ。

(人によっては本まで買わなくても、動画と検索だけで十分かもしれません。
ただ、私は事情があって急きょ会社を2ヶ月休職することになってしまい、その事情に関連することで色々心配でしたので、念のために本を購入致しました。)

この記事で紹介する動画講義は、

チャンネル: G神(cooker8 by 明治クッカー 牛乳屋さん社長)
講師:にっしー(西原 亮)

チャンネル: ビジネス教育系ユーチューバーYouseful(ユースフル)
Yousefulの講師の方

の講義が、初めての私でも分かりやすかったです。

動画自体も沢山あるので、どれから視聴したら良いのか、と迷われた方は目安にして頂けましたら嬉しいです。

動画の学習をする際のサンプルのスプレッドシートの最初に、「動画」というシートを作って、そこに動画のリンクを貼って学習した所、スムーズに学習が進められました。


 最初の動画講義です。

チャンネル: G神(cooker8 by 明治クッカー 牛乳屋さん社長)
講師:にっしー(西原 亮)

● Googleスプレッドシートで作る、簡単todoリストの作り方!【Google Workspace #4】(時間:9:12)

初めてスプレッドシートに触る方にとって、実際に手を動かしながらシンプルな成果物を作成することによって、まずは「慣れる」ことが出来る内容になっています。

・表示の固定のやり方がExcelと違う
・文字列の折り返し
・プルダウンリストの作り方(直接指定・範囲指定)
・メモ、コメントのチャット機能


などが、ざっと習得できました。
シンプルですけれど、初めてスプレッドシートに触る方、Excelは自信あるけれど、スプレッドシートに不安のある私にとっては、動画を視聴ながら実際に手を動かして作ってみて、スプレッドシートに対する不安な気持ちがだいぶ払拭されました。


● タイトル:【初心者向け】エクセル、スプレッドシートの基本は関数!超簡単な基礎を教えます!【Google Workspace #6】(時間:14:42)

算数・数学が苦手で関数を使う以前に四則演算のやり方が分からない方向けの説明から、Excelでもスプレッドシートでも良く使う基本的な関数を実際に使って集計しました。

・SUM関数
・COUNTA関数
・SUMIF関数
・COUNTIF関数

について手を動かしながら理解して行きました。
COUNTA関数とCOUNT関数(こっちは動画には無かったです。)の違いが良く分かっていなかったのですが、COUNTA関数のAが付く方を使うと、文字でもカウントの対象になるんですね。

最後の10:10からの、「関数を自分でどんどん覚えるにはGoogle先生に聞こう」ということが一番大事だと、にっしー社長は仰っていました。
「本を使わずにGoogleで検索する」という方法を伺い、最初私は、
「それって頭の良い人のやり方でしょ、私みたいに頭の悪い人間は、調べる段階でパニックになったり、テンパったりしちゃうのでは・・・」と思っておりました。
しかし、せっかくにっしー社長がそう仰って下さっているのだったらと動画の視聴を進めた所、私みたいにすぐテンパる人でも実行出来る、Googleで関数の調べ方の実演をして下さったので、私もちょっと頑張って、「頭の良い方の関数学習方法」に挑戦したいと思いました。


● 【絶対に守ろう】スプレッドシートで絶対に使うべき機能3選。【Google Workspace # 12】(時間:11:01)

スプレッドシートを複数のメンバーで共同編集する際に、「他のメンバーに迷惑を掛けたくない」と思われる方は、是非おススメの動画です。

・入力規則のプルダウンリスト入力
・個人フィルタ(特にマスト!!)
・条件付き書式

私にとっては特に「個人フィルタ」が新たに知った知識でした。
自分の作業に没頭するあまりに気づく余裕が無かったのですが、他のメンバーがシートを見づらくなっちゃうことも考えないといけないな、と私も思いました。

現在(2023年5月1日)では、フィルタ設定をする時にこのような画面が出て、「自分にフィルタを適用」を選ぶと、最初から個人フィルタの設定になります。

条件付き書式では、空白セル単体の書式設定や、進捗状況が「未着手」の場合は一行丸ごと書式設定する方法が勉強出来ました。
行ごとの設定では、カスタム数式を選択して複合参照で数式を使いました。
あまりこの使い方に慣れていないので、繰り返し学習して慣れて行きたいです。


● 生産性を上げるスプレッドシート術3選。不要なコピペしてませんか?(時間:14:35)


この動画では、

・カンマと小数点を使った、数字の位の表記
・数式の一括置換
・転置して貼り付け

の学習が出来ます。

学習用のサンプルを用意する手間を少なくして、なるべく楽に用意して本来の学習に集中出来るように、書かせて頂きます。
最後の転置して貼り付けのデータはそんなに手間がかからないので、最初の2つについてのみをこの記事で掲載致します。

最初の会社実績の表を作る時、セルE5人件費合計「=E6+E7」と式を入れて、右にコピー(ショートカットキーは、[ctrl]+[R] )をして、
セルE9営業利益は、この例ですと、
「営業利益=粗利-人件費合計-その他固定費」になるので、
「=E4-E5-E8」と式を入れて右にコピーすると割と簡単に作れると思います。

数式のコピーの例では、組織図を用意するのは大変そうだと思いましたので、取り敢えずVLOOKUP関数だったらサンプルとして使えのるかも知れないと思い、この様な適当な表を用意して、VLOOKUP関数を作って数式の置換を実行してみました。
(この表は値段から何から何まで「適当に」、「私、猫★シエスタが」作ったものです。) 
数式の置換に便利なショートカットキーも動画の中で説明して下さっています。

上の表では、新たに増えた分を黄色のセルとして、数式の置換を動画を見ながら行いました。

転置して貼り付けはどこだっけ??ってなっていたので、思い出せました。


●【エクセルVSスプレッドシート】印刷しやすいのはどっちだ!?超簡単な印刷設定教えます!!【Google Workspace #23】(時間:8:21)

スプレッドシートで印刷?ってイメージが沸かなかったのですが、Excelと比べて随分シンプルで、え?これだけで印刷出来るんだ・・・って思いました。
これはスプレッドシートに軍配が上がりますね。
特に、「範囲を指定して印刷」は実際に実務で役立ちました。


●【仕事で必須】G神厳選。スプレッドシートで生産性を上げる6つの基本【Google Workspace # 24】(時間:15:50)

この動画では、

・表示の固定(行・列)
・フィルタの設定で昇順・降順・エリア「○○南」を抽出する
・入力規則の必要性とそのやり方、入力アシスト
・条件付き書式で「完了」の行ごと丸ごと黒っぽい灰色にする
・リンクを貼ってGoogleドライブに飛ぶように設定
・チームでスプレッドシートを使う際に個人フィルタを使う
・チャットボットを使ったセルのコメント連動(多分有料版??)

条件付き書式の行単位で「カスタム数式」を使って、丸ごと書式を設定するやり方は、慣れるまで私の場合はちょっと不安もあったので、この動画で復習が出来ました。
やはり、表示の固定や個人フィルタの必要性は、この動画にもありましたので、それだけ重要な使い方だということを心構えとして持った上で、スプレッドシートを今後使って行きたいです。
最後のチャットボットは私が無料版を使っているからなのか、私の環境では上手く行きませんでした。
もう少し所得が増えたらGoogleに課金しようかな・・・。


● データの入力規則が大幅進化。画面使って徹底解説‼Googleスプレッドシートの使い方(時間:13:28)

この動画では、

・データ入力規則プルダウンリストのアップデートバージョンの設定の仕方
・条件付き書式との兼ね合いのデメリット

・1行丸ごと条件付き書式を設定する、カスタム数式の複合参照を使った設定方法
・リストを前のバージョンの見栄えに近くする方法
・入力規則設定のショートカットの方法

についての実演・ご説明でした。
条件付き書式のカスタム数式を使った、行ごとの設定の仕方の復習にもなりました。
最後のプルダウンリストなどのデーター入力規則を選べるショートカットの方法はかなり便利だと思いました。


●【Googleスプレッドシート】頭の片隅に入れてほしい5つの機能。役立つ場面がきっとあります。【Google Workspace #45】(時間:11:34)

この動画では、

・転置して貼り付け
・変更履歴からの復元
・置換

・シートとセル範囲の保護
・メモ

など、今後の仕事に使えるかも知れないことの学習が出来ました。
この動画は「そう言えばこういう機能があるな・・・」と、また何回も何回も見直して活用する動画とにっしー社長が仰っていましたので、要復習ですね♪

特に、「変更履歴からの復元」は、今後動画を繰り返し見て復習する時に、「学習始めの版」と名前を付けておくと、復習がスムーズになりました。
変更履歴の右の3つのポチ、またはファイル → 変更履歴 → 最新の版に名前を付ける所から名前を付けて、変更履歴の上のボックスから「名前付きの版」を選ぶと簡単に復元出来ました。


● 【衝撃】エクセルのショートカットもスプレッドシートで使える!ショートカット大全スプレッドシート編【GoogleWorkspace #62】(時間:9:55)

この動画では、

・貼り付け系
・今日の日付
・リンク挿入
・メモ
・新しいシートの挿入
・シート間の移動

・検索と置換
・キーボードショートカットの見方
・Excelとの互換でどこまで使えるか

などの頻度の高いショートカットキーが学べました。
リンクを挿入した際、逆にリンクを削除する時にはどうするのかちょっと分からなかったので調べたり試したりしたところ、リンクを貼ったセルにマウスをホバー(特にクリックとかしないで当てるだけ)して、ポップアップされた右端からリンクを削除することが出来ました。


● 【基本技】売上数値を色で可視化!スプレッドシートでデータ活用の1歩目(時間:16:20)

この動画では、

・複合参照
・メモの挿入
・条件付き書式の設定方法
・グリッド線の非表示
・グループ化


といったことを、「この動画1本で」復習出来るので、個人的にはかなりお得な動画だと思います。

サンプルを用意するのがちょっと面倒なのですが、1回作ってしまえば、後は動画を復習で見る時にスムーズに学習を進められました。
A列からE列の、「月度」〜「人件費以外」はそのまま動画の通りに数字を入れたので、多少の手間がかかりましたが、D列・E列の、「人件費」・「人件費以外」のこの2列に関しては、同じ数値のコピーでしたので、楽でした。

F列の営業利益は、このサンプルの場合に絞って簡潔にお伝えすると、
営業利益:粗利益-人件費-人件費以外 なので、
F3の数式: =C3-D3-E3
と入力して、数式を下にフィルしました。

参考になったサイト:
営業利益とは?経常利益との違いや計算方法を解説
【中学生でも分かる】粗利とは?計算方法と粗利率の意味・重要性を説明します

その後、複合参照を使って売上(%)を求め、メインとなる条件付き書式の設定の仕方を教えて頂けました。
条件の優先順序を間違えると正しく色分けされないので、「以上の場合」でも「以下の場合」でも、共通して言えることは、

より厳しい条件が上に来る
(この例ですと、経営の面でより良い数字の条件が上に来る)

と、私は理解しました。
この辺ちょっと分かりにくい方は、ご自身で上から下に向かった数直線を書いてみると、あぁ、そういうことか・・・と納得が行くかと思います。

いざ実務でスプレッドシートを使う時にちょっと不安もありましたので、この動画をもう何回か復習で見て、もっと慣れて行きたいと思います。


●【データ活用】ピボットテーブルの使い方。関数不要のデータ分析ツール。Googleスプレッドシート活用術スキル(時間:10:25)

ピボットテーブル!?と聞くと、なんだか難しそうなイメージがありますが、この動画はとても分かりやすくてシンプルな内容にまとめて下さっていますので、文系だから〜〜〜って思わずに、気楽に見て頂いた方が楽しく勉強出来ると思います。

この動画では、

・ピボットテーブルの基本の作り方
・時間の合計が合わない時の設定の仕方
・ピボットテーブルの便利な使い方

・ピボットテーブルを作る時の注意点

について教えて頂けました。

ちょっと学習用サンプルを用意するのが大変でしたが、実際に使ったのは、A列「店舗」〜F列「総時間」です。

ピボットテーブルエディタを閉じてしまったのですが、ピボットテーブルを編集したい時には、表左下の鉛筆マークを押すと、「ピボットテーブルエディタ」が表示され、そこから色々編集出来ました。

動画にあったように、何かおかしいなと思ったら、範囲が違うことをまずは疑って見ることに致しました。


● スプレッドシートをより便利に!意外と知らない仕事で使える5つの関数【GoogleWorkspace #63】(時間:14:09)

動画で使うサンプルは、テストデータージェネレーターを使って用意をしました。

また、ランダムな点数はrand関数を使いました。

ぱっと見、0-40ぐらいの点数でしたので、
=int(rand()*40)
で、ランダムな点数を生成しました。

ただ、rand関数で生成した結果は、このままでは実行の度に点数が変わってしまうので、[Ctrl]+[Shift]+[V]で値貼りすると、スムーズに学習が進めました。

準備が整ったら、早速arrayformula関数のショートカットキーがあることを初めて知って、こんな便利な方法があるんだ!!と感激しました。

次にsplit関数、split関数とarrayformula関数との合わせ技、
left関数、right関数、year関数、month関数、day関数、

transpose関数と転値して貼り付け
この、転置して貼り付けは、私の環境では右クリックの他には「編集」メニューからになっておりました。

最後sparkline関数は、まさに意外と知らない関数でした。
ちょっと「;(セミコロン)」の所をコロンにしてしまって上手くいかなかったりと、私はもうちょっとsparkline関数の練習をした方が良さそうです。

sparkline関数で、最大値や最小値に色を付けるところで、red(赤)の他にどんな色が指定できるかやってみた所、blue,green,cyan,magentanの他にも、16進数で指定が出来ました。


●【一目でわかる】請求・入金管理シートをGoogleスプレッドシートでイチから作る。経理やフリーランスの方は必見。【GoogleWorkspace #48】(時間:20:57)

この動画では、

・プルダウンリスト
・SUMIF関数
・条件付き書式の設定
・SUMIFS関数

・複合参照(行のみ固定または列のみ固定)
・転置して貼り付け

の総復習が出来ますので、これまで動画を見て学んで来たことが、実際にはどれだけ身に付いているのかの確認になりました。

(最後のシート、「売上管理」で年月を入れる時には、以前の動画の「転置して貼り付け」を使いましたので、その復習になりました。)


●【有料級】はじめてのQuery関数。たった一文で業務効率劇的変化(where句・select句・order by 句)(時間:17:15)

動画で使うサンプルは、テストデータージェネレーターを使って用意をしました。

この動画では、Query関数の基礎の基礎を学習出来ます。

・whereを使って「内定者だけ」を抽出する
・追加で内定者が出た時に自動化の便利さを体感できる
・selectでカタカナの列だけを持ってくる
・selectを使って必要な列だけを複数持ってくる
・列の表示する順序を並び替える
・更に、selectとwhereを組み合わせて、必要な列だけで内定者のみを表示させる
・order byで昇順・降順に並べ替え

これだけで、だいぶ業務効率が上がると、にっしー社長が仰っていたので、私も頑張ってQuery関数を使いこなせるようになりたいです!!

最後のorder byで昇順にした時、空白行が出てきてしまい、これについて調べた所、空白行を取り除くには、「空白ではない行を抽出する」と指定する必要がありますので、「where A is not null」を追記して、下記のように入れます。
ここではあまり詳しく書きませんが、A is not nullとは、A列がnullではない、すなわち、A列が空白では無い行を抽出してね、という意味になります。
nullとは何もない空白のことです。

動画の通りにやっても上手く行かなかった方は、下記のように「where A is not null」を追記してみて下さい。

=query(‘採用一覧’!A:G,”select A,C,E,F where A is not null order by E asc”,1)

QUERY関数は、動画を見ただけでなく自分でもブログでアウトプットをすることで更に理解が進むと思いましたので、QUERY関数を「ドラえもん」で使ってみよう!という記事を書きました。


●【有料級】Excelでは実現できないGoogleオリジナル関数。データを簡単連携。IMPORTRANGE関数。(時間:10:46)

用意するデータは、先ほどのQuery関数のシートをコピーしたものと、自分で使っているGoogle WorkspaceやMicrosoftの学習計画表(多分、自分で自由に使っているスプレッドシートなら、何でも良いと思います。)のスプレッドシートを使いました。

この動画では、

・IMPORTRANGE関数の基本的な使い方
・つまずく方が多くいらっしゃる、グラフなども反映させる方法

が学べました。
特に、グラフを無事に反映させる方法は目から鱗です。
こういう方法があったんですね!!!

IMPORTRANGE関数も、動画を見て学んだことを自分でもブログにアウトプットしたいと思って、IMPORTRANGE関数とVLOOKUP関数の合わせ技という記事を書きました。


● 【有料級】使いこなすQuery関数。これが見たいを一文で実現(LIMIT句・OFFSET句・GROUP by 句)(時間:17:27)

動画で使うサンプルは、テストデータージェネレーターを使って用意をしました。

また、ランダムな点数はrand関数を使いました。

得点は動画では600点満点のぐらいの点数を用意するようなので、rand関数を使って、「=rand()*600」で求めました。

ただ、rand関数で生成した結果は、このままでは実行の度に点数が変わってしまうので、[Ctrl]+[Shift]+[V]で値貼りすると、スムーズに学習が進めました。


この動画では、

・order byを使って、年齢が若い順且つ得点が高い順に並び替える
・limitで10行取り出す
・limitとorder byを組み合わせて、点数のランキング1-10位まで求める
・offsetで1-10位を除いて取り出す
・offsetとorder byを使って、11番目に若い方から取り出す
・select と group byを使って、男性・女性の平均などの点数を求める

等が学べました。

query関数のorder byをascで年齢の昇順にした時、上に空白行が出来てしまって、動画の通りにならない!!ということがありましたので、少し調べた所、A列が空っぽ以外(nullではない)となるようにwhereを合わせて使った所、解消されました。

この動画の中には触れていないので、nullって何?って感じですが、簡単に書くと、nullとは何もない空白のもののことです。
何も無いので、0でもありません。

ですので、A列がnull で無いと指定したいのでしたら、where句の所に、
「A is not null」を入れれば解決です!

=query(‘データ’!A:F,”where A is not null order by E asc”,1)

こんな感じで解消しました。

offset と order byで年齢が若い順にする時にも、

=query(‘データ’!A:F,”where A is not null order by E asc offset 10″,1)

と指定しました。


最後のgroup byは私にはちょっと難しかったので、このサンプルの他に、自分の好きなことでやってみようと思って、カラオケのレパートリーのデータベースを作って、こんな感じでquery関数のgroup byの練習をしました。

カラオケレパートリーのデーターベース


group by avg
=query(DBRange!A:K,”select C,avg(D) group by C”,1)

group by count
=query(DBRange!A:K,”select C,count(K) group by C”,1)

ちょっと難しいと思われた方は、自分の趣味でgroup byを勉強してみると、ストンと理解が出来るかも知れません。


● 売上管理を自動連携して可視化せよ。Googleスプレッドシートでイチからつくるやり方全てお見せします。【Google Workspace #34】(時間:22:59)

この動画では、

・行の表示固定
・SUM関数
・IMPORTRANGE関数
・SUMIF関数(絶対参照・列固定の複合参照)
・絶対参照

・パーセントと桁数の表示
・表を見やすくする色使い
・行のグループ化
・全ての行グループを展開・折りたたむ

・中央揃え

を使って、たった2つのスプレッドシートで経費を可視化出来るやり方の勉強が出来ました。
4月の経費を作成し、ここから5月の分を用意するには、以前の動画で学んだ、数式のコピーを使いました。
5月の範囲を選択してから、Windowsの方は[ctrl]+[H]、Macの方は[command]+[Shift]+[H]置換ダイアログボックスを出して、下記のように数式を置換します。

同じ様に6月以降もシンプルに用意出来ます。


●【差がつくグラフ】Googleスプレッドシートで同期に差をつける3つのグラフを作ろう。【Google Workspace #49】(時間:18:31)

この動画では、普段あまり馴染みのない、

・組織図
・ツリーマップ
・レーダーチャート

について勉強出来ます。
レーダーチャートはそれ程難しく無かったのですが、上の2つは作り方の概念から馴染みがなかったので、値貼り付け用のシートを用意することによって、動画の学習内容に集中出来るようにしました。

私の環境では無料版だからなのか、ツールチップは表示されませんでしたが、他は無料版でも特に気になることは無く、学習できました。


● 【誰でもできる自動化】スプレッドシート「マクロの記録」でルーティン業務を効率化しよう。【GoogleWorkspace #91】(時間:10:50)

うわ〜〜〜〜〜〜〜〜、マクロ!?
私に出来るんだろうか・・・・。
と、動画を見るまで不安でしたが、やっている内容はボタンを押すと、

・フィルタから「未完了」のデータを抽出する
・日付の昇順と降順
・クリア(データを消す)

の4つのマクロを記録してボタンに登録するだけ、というシンプルな内容です。

用意するシートは、自分が自由に使えるシートであれば何でも良いと思います。
私は以前の動画で使った、カラオケのレパートリーの表を用いました。

最初のマクロのクリアでデータを消した後は、[ctrl]+[z]で、データが復帰出来ます。(マクロの記録も、ちゃんと残っています。)

スプレッドシートの図形のコピーってExcelとは手順が異なりますので、そこだけこの記事に掲載します。

・コピー元の図形の3つのポチをクリック
・編集を選ぶ
・そこで図形描画の画面が出るので、ここで[ctrl]+[c]
・「保存して終了」を押す
・挿入→図形描画をクリックして図形描画のボックスを出す
・ここで[ctrl]+[v]
・最後に文字や色を整えて、また「保存して終了」

これは普段Excelメインで使っている私にとって混乱しやすいので、備忘録としてブログに掲載致しました。


次の動画講義です。

チャンネル: ビジネス教育系ユーチューバーYouseful(ユースフル)
Yousefulの講師の方


●【Excelより便利】無料のGoogleスプレッドシートを使う5つのメリットはこれ!(時間:6:14)

・スプレッドシートの共有の際にリンクをコピーする方法
・スプレッドシートをExcel形式でダウンロード
・ダウンロードしたExcelファイルをスプレッドシートにインポート

などが勉強出来ました。
多少スプレッドシートについて学んだ経験のある者にとっても、この動画を見て初めて知ったこともありました。


● 【Google神関数】生産性が100倍上がる!スプレッドシート4つの便利関数はこれ!(時間:10:17)

この動画では、スプレッドシートオリジナルの関数の中でも厳選して4つの神関数である、

・IMPORTRANGE関数
・IMPORTXML関数
・ARRAYFORMULA関数
・QUERY関数

が学べました。

IMPORTPANGE関数の引数指定の所で、シート名を省略しても反映されました。

IMPORTXML関数は、見たことないし、Xパスって何それ美味しいの??って不安でしたが、動画の通りにやったら無事に出来ました。
途中でエラーが出た時には焦りましたが、それについての説明もして下さっていました。

ARRAYFORMULA関数では、スプレッドシートオリジナル関数の学習で多少知識はありましたが、初めて使うことも新たに知りました。

QUERY関数は、基本的な内容でした。
ポケモンって良く知らないですけれど、面白そうだと思いました。


【おすすめ4選】Googleスプレッドシートでプロジェクト管理も簡単!実務で差が出るアドオン・拡張機能4選!(時間:15:43)

この動画で紹介している「アドオン」は、Google無料版でも使用出来ました。
2023年5月現在では、スプレッドシートのアドオンメニューは、ヘルプの左側の
「拡張機能 → アドオン → アドオンを取得」にあります。


動画を視聴された後、やっぱり本も必要だと思われた方に、スプレッドシートの実務で使う技を総合的に身に付けるのにオススメの本で、最初に手に取って頂きたい本は、こちらになります。

見やすい内容の本で、要点がまとまっており、本に掲載されているQRコードから動画を視聴して、講師の方の懇切丁寧な分かりやすい説明に、学習のモチベーションが上がりました。
(QRコードだけでなく、URLも掲載されていますので、QRコード読み取りが苦手という方にとっても、お手に取りやすい本です。)

ビジネス教育系ユーチューバー、Youseful(ユースフル)の神川陽太(ようた)氏と、代表の、長内孝平(おさ)氏が、「分かりやすさ」に徹底追求して教えて下さっているので、安心して学習を進められました。

「本×動画」という新しい学び方について、昭和生まれの私が、新しい学び方なんて大丈夫だろうか・・・と最初は恐々と学習を始めましたが、この本を1冊終えた頃には、スプレッドシートが怖くなくなりましたし、苦手だった複合参照(列のみ固定、行のみ固定)も克服出来ました。

ですので、スプレッドシートを勉強したいけれど、何から始めたら良いのか分からない、とお悩みの方は、是非手に取って見て下さい。

特に、昭和生まれでPCの操作に不安のある方にほど、オススメです!

勿論、平成生まれのお若い方にとっても、昭和生まれの私でさえ安心して学習出来た教材であるという事で、ご検討頂けますと幸いです。

講師の長内氏も神川氏も私よりもだいぶ若い方ですので、私にとってはまさに中高年の学び直しという所ですね。

若い方から教わることに抵抗のある方もいらっしゃるかも知れませんが、Yousefulの講師の方は親しみやすいので大丈夫です!

(私たちのロスジェネ世代はいずれ若い方から色々教わることが多くなって来ると思いますので、YouTubeなどを通して今のうちに若い方から教わることを慣れて置いた方が良いと私は思います。)

個人的には動画最後の「See you next time! Bye Bye!!」が大好きで勉強のモチベーションが上がる教材です!!

代表の長内氏のExcelの現場の教科書も併せて学習すると、特に関数が苦手な方にとって、理解が深まります。


以上の動画や本で学んだ知識をアウトプットして、自作サンプルを作りました。

ピボットテーブル(Excel / スプレッドシート共通)

■ Excelにはないスプレッドシートの関数 ■

ARRAYFORMULA関数で連番を振る


ARRAYFORMULA関数とIF関数の組み合わせ

QUERY関数を「ドラえもんキャラ」で使ってみよう!

IMPORTRANGE関数とVLOOKUP関数の合わせ技

■ 関連記事 ■

自己紹介


コロナ禍・アフターコロナに向けてテレワーク対策(Google Workspace)に戻る


フォーム

カレンダー

Chrome

Gmail

Drive

ドキュメント

スライド

マップ

GAS



取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ


急にプレゼンすることになったから手っ取り早くパワポ教えてくれ


Wordのポイントを手っ取り早く教えてくれ



メインメニューに戻る

初めてのGoogle Workspace 〜スプレッドシートやChrome、Googleカレンダーなど〜

この連載記事では、スプレッドシートやフォーム、ChromeといったGoogle Workspaceについて、忙しい方向けにオススメの動画と本を紹介しております。

また、スプレッドシートに関しては、オリジナル関数の自作サンプルの記事も書いていて、図と文書を用いて解説しております。

ツール別に書籍や動画といった教材を掲載致しましたので、

・就活準備の学生の方

・新卒でPCスキルを付けたい方


・既に社会人として働いて、業務の生産性を向上させたい方


・中高年の学び直しや社会復帰を目標とされる方



にとって、「学びのハードルを極限まで下げるお手伝い」をしております。

■ Google Workshapce の各ツール ■

スプレッドシート

フォーム


カレンダー

Chrome

Gmail

Drive

ドキュメント

スライド

Map

GAS

■ 関連記事 ■

自己紹介




とりあえず事務職で働きたいから手っ取り早くExcel教えてくれ!

急にプレゼンすることになったから手っ取り早くパワポ教えてくれ!

Wordのポイントを手っ取り早く教えてくれ!



メインメニュー

<Gmail1>メール定型文を下書きへGo!

この記事では、GAS(Google Apps script)で会社などに送る決まった文章をスプレッドシートに入力して、ボタンを押すと押した人のGmailの下書きに追加する方法を掲載しています。

お世話になっているサイトは、いつも隣にITのお仕事さんの

GASでGmailを操作して日々の日報メールの下書きを自動で作成する

です。

得意先の方にいつも同じような文章を送る時、上司に同じような報告を送るといった場合に使えるテクニックです。

この例では、得意先の「株式会社あいうえお」の営業部長のヤマダさんに送る例で作成して行きます。

このようにスプレッドシートを配置します。

シート名はこのようにしました。

このスプレッドシートを二次元配列として取得して、createDraftメソッドを使って「Gmailの下書き」に保存します。

なぜ二次元配列なのかと申しますと、スプレッドシートはExcel、将棋やオセロのような縦横の座標になっているからです。

二次元、すなわち平面の座標を格納する配列です。

メソッドというのは、動作のことです。この例ではGmailの下書きの所に送るという動作です。

「メソッド」というとちょっと分かりづらいという方は、メソッドを数学の公式みたいなものだと捉えて頂いても大体掴めて来ると思います。

例えば3角形の公式に必要なのは「底辺」と「高さ」の値です。この底辺と高さの値が引数に当たり、底辺×高さ÷2で三角形の面積を求めて計算する動作がメソッドに当たります。

createDraftメソッドはこのスプレッドシートのボタンを押した人のGmailの下書きの所に移動させるメソッドです。

引数(メソッドを利用する際に必要となるもの)は「アドレス、タイトル、本文」です。

アドレスをto、タイトルをsubjectという定数、本文をbodyという変数に格納して、このcreateDraftメソッドを使います。

アドレスとタイトルは変わらないので定数、本文はこのプログラムでは何も無い所に「誰々さん」、「お世話になっています・・・」などと追加していくので変数です。

今回の例では、本文が最初何も無い所に「宛名の人名」+「その後の挨拶や文章」が加えられて行きます。

定数も変数もAmazonなどの段ボール箱に例えられ、箱の中に値を入れるイメージですが、定数は箱の中身を接着剤で固定して動かないようにするもの、変数は「魔法の壺」を入れたり、今日私が購入した「光目覚まし時計」を入れたりと、色々と中身を変えること(追加や変更、削除が出来る)でイメージが掴めて来るかと思います。

さて、今回使う下書きに送るcreateDraftメソッドの書式は、

createDraft(アドレス,タイトル,本文);

になります。

では、コードを詳細に見て行きます。

const values=SpreadsheetApp.getActiveSheet().getDataRange().getValues();

長ったらしいですが、最初のSpreadsheetAppがスプレッドシートの1番トップの所、次のgetActiveSheet()が現在のシート、何で()となっているのかは、三角形の面積と違って、特に使うのに必要なものが無いからです。

その次のgetDataRange()は、このスプレッドシートのデータを二次元配列として取得するメソッドです。なので、スプレッドシートに書かれている値がそのまま二次元配列として取得できます。具体的には、配列valuesの[0][1]が得意先のヤマダ部長のアドレスで、values[3][1]が本文になっています。配列は先頭が0番目で次が1番目・・・と続きます。

最後のgetValues()で値が取得されます。

3番目のgetDataRange()で金魚すくいの網を貼って、最後のgetValues()で実際に釣り上げるイメージです。

const to=values[0][1];

ここでは、二次元配列valuesの座標[0][1]のところのアドレス「yamada@aiueo.co.jp」を、定数toに格納しています。

const subject=values[1][1];

ここでは、二次元配列valuesの座標[1][1]のところの「2月度のご案内」を、定数subjectに格納しています。

let body=””;

ここでは空の状態の本文を変数bodyに格納しています。この後文章を追加していくので、一旦からの物を用意する感じです。

body+=values[2][1]+’\n’;

ここでは配列valuesの[2][1]にある「株式会社あいうえお 営業部長ヤマダ様」をbodyに追加しています。+=については、

A=A+Bを、

A+=Bと書くことが出来ます。

また、’\n’とバックスラッシュnを加えることによって改行させています。

body+=values[3][1]+’\n’;

ここで、bodyに「お世話になっております・・・」を加えます。

これで、メソッドcreateDraftを使う(アドレス、タイトル、本文)が求まったので、下記のコードでGmailの下書きに入れられます。

GmailApp.createDraft(to,subject,body);

非常にシンプルなコードですが、これで以上です。

ここまでのコードをまとめます。

function createDraft() {

  //スプレッドシートのトップから現在のアクティブシートに階層を辿ってアクセスして、データを二次元配列として取得する
  const values=SpreadsheetApp.getActiveSheet().getDataRange().getValues();

  //相手先のアドレスを定数toに格納
  const to=values[0][1];

  //題名を定数subjectに格納
  const subject=values[1][1];
  
  //本文を定数bodyに格納し、改行して追加
  let body="";
  body+=values[2][1]+'\n';
  body+=values[3][1]+'\n';

  //Gmailの下書きへGo!!
  GmailApp.createDraft(to,subject,body);
  
}

ボタンを押すと、押した人のGmail の下書きにこの様に保存されます。

このシートをコピーして社内用に使い回して株式会社あいうえおのヤマダ部長との会議を上司のサトウ課長に報告することも可能です。

シートをコピーして、名前を変えます。

スプレッドシートの画面です。ボタンを押して作れた下書きです。

お疲れ様でした。ブレイクタイムフォトは、今2月なのに季節外れですが、六本木ヒルズで撮影したハロウィンの写真です。

・関連記事
六本木ヒルズ、ハロウィンでトリックオアトリート!?

■参考文献の紹介■
初めてGASを学ぶ方向け。
スプレッドシートの基本的な使い方からGASのベースとなるJavaScriptの基礎文法、GASでの初歩的なプログラミングを学べます。

GASに少し慣れて来たら、基礎固めとリファレンスとしてこの本を通してじっくり学べます。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

プログラミングのアンケートにご協力頂ける方はこちらのフォームで勉強法など色々と教えて下さい。

<ねこフォーム実践編3>著書「就職氷河期世代&大人の発達障害」の読者アンケート

この記事では、GAS(Google Apps script)を使って、私が2012年に書いた「就職氷河期世代&大人の発達障害」の読者様を対象としたアンケートを作成したコードを公開します。

まず、「就職氷河期世代&大人の発達障害」について、内容紹介のYouTube動画と購入先、アンケートのGoogleフォームを掲載します。

● 本のプロモーションビデオ

● 購入先は自己紹介と著作本から

● 完成した読者アンケート

読者アンケートも宜しくお願いします。

アンケートは上記のフォームから投票出来ます。

GASでのプログラミングでお世話になっているサイトは、いつも隣にITのお仕事さんの

GASでGoogleフォームを一発で作成するツールを作る

です。

まず、下記のような3枚のスプレッドシートを用意します。

・シート「トップ画面」

ここには、ボタンを設置して、このボタンを押すとフォームが作れるようにします。

・シート「フォームのタイトルと説明の情報」

ここには、作成するフォームのタイトルと説明文を入れます。

・シート「項目データ」

ここには、アンケート回答者がラジオボタン、チェックボックス、リストアイテムから選択出来るようスプレッドシートに配置しています。

このデータを二次元配列として取得して、各列ごとに1次元配列に変換して、ラジオボタンなどから選択出来るようにしています。

まず、スプレッドシートのボタンを押すとフォームが作れる関数、「pushButton」を作ります。

シート「フォームのタイトルと説明の情報」を二次元配列arrayとして取得して、array[0][1]をタイトル、array[1][1]をフォームの説明文として取得しています。

function pushButton() {

  //スプレッドシートのトップから現在のスプレッドシートにアクセスする 
  const ss=SpreadsheetApp.getActiveSpreadsheet();
  

  //フォームのタイトルと説明を取得
  const array=ss.getSheetByName('フォームのタイトルと説明の情報').getDataRange().getValues();
  const formTitle=array[0][1];//タイトル
  const formDescription=array[1][1];//概要

  
  //フォームを指定のタイトルと説明の元、作成する
  const form=FormApp.create(formTitle);  
  form.setDescription(formDescription);
 }

この部分ではフォームのプレビュー画面でこの様になります。

また、フォームにニックネームのテキストアイテムを追加します。

form.addTextItem().setTitle('ニックネームまたはイニシャル\n本名以外でお願いします。').setRequired(true);

ニックネームのテキストアイテム入力のプレビュー画面です。

では、いよいよスプレッドシートのシート「項目データ」からデータを取得して、フォームを作成して行きます。

まず、シート「項目データ」を二次元配列として取得するために、下記のコードを書きました。

//項目データからフォームに追加するアイテムの内容を取得
  const dataValues=ss.getSheetByName('項目データ').getDataRange().getValues();
  dataValues.shift()

このコードでは、定数dataValuesにシートを二次元配列として取得したデータを格納して、先頭のタイトル行をshisft()で削除しています。

この二次元配列の各行をフォームのアイテムから選択出来るように一次元配列に変換して、更に空白行を取り除く関数generateArrayを作成しました。

引数に二次元配列のデータとその行を指定して関数generateArrayに送ります。

ここではmapで一次元配列に変換して、filterで空白行を取り除いています。

/**
 * シート「項目データ」全体の値を取得した二次元配列から、指定の列のデータを抜き出し一次元配列を構成する 
 * 
 * @param{Object[][]}シートのデータを二次元配列化とした配列
 * @param{number}配列の列数(0以上のインデックス)
 * @return{Object{}}指定の列(見出しを除く)のデータによる一次元配列
 */
function generateArray(values,column){
  return values.map(record=>record[column]).filter(value=>value);
}

関数呼び出し時には、下記のように指定しました。

A列「性別」は、ラジオボタンで、

generateArray(dataValues,0)

と記述し、引数に二次元配列のデータと列数を指定することで「性別」が選択出来ます。

テキストアイテムで学校名を入力します。

form.addMultipleChoiceItem()    //ラジオボタン
    .setTitle('性別')
    .setChoiceValues(generateArray(dataValues,0))
    .setRequired(true);

B列「ご年齢」の呼び出しは、リストアイテムで、

generateArray(dataValues,1)

です。

  form.addListItem()              //リストアイテム
    .setTitle('ご年齢')
    .setChoiceValues(generateArray(dataValues,1))
    .setRequired(true);

C列「お住まいの都道府県」はリストアイテムで、

generateArray(dataValues,2)

です。その他の項目も選択出来ます。

form.addListItem()              //リストアイテム
    .setTitle('お住まいの都道府県は?')
    .setChoiceValues(generateArray(dataValues,2))
    .setRequired(true);

C列「ご出身の都道府県」はリストアイテムで、

generateArray(dataValues,2)

です。

 form.addListItem()              //リストアイテム
    .setTitle('ご出身の都道府県は?')
    .setChoiceValues(generateArray(dataValues,2))
    .setRequired(true);

これはリストアイテムのタイトルを変えて2回呼び出しています。1回目の呼び出しはお住まい、2回目はご出身です。
ここまでのプレビュー画面です。

D列「あなたについて教えてください」はラジオボタンで、

generateArray(dataValues,3)

です。

これもその他を選択出来るようにしています。

 form.addMultipleChoiceItem()              //ラジオボラン
    .setTitle('あなたについて教えて下さい。')
    .setChoiceValues(generateArray(dataValues,3))
    .showOtherOption(true)//その他の選択肢
    .setRequired(true);

E列「この本を知ったきっかけを教えてください」はチェックボタンで、

generateArray(dataValues,4)

です。

これもその他を選択出来るようにしています。

form.addCheckboxItem()    //チェックボックス
    .setTitle('この本を知ったきっかけを教えて下さい')
    .setChoiceValues(generateArray(dataValues,4))
    .showOtherOption(true)//その他の選択肢
    .setRequired(true);

ここまでのプレビュー画面です。

この本を5段階評価で選択出来るようにスケールアイテムを使っています。

  //スケールアイテム
    form.addScaleItem().setTitle('この本を5段階評価で教えて下さい。\n 1:不満足 〜 5:大変良い').setRequired(true);

最後は自由に記入できるコメント入力用パラグラフテキストアイテムです。

  //長文パラグラフテキストアイテムコメント欄
    form.addParagraphTextItem().setTitle('ご意見ご感想などコメント欄');

マイドライブに保存する場合はここまででも良いのですが、指定のドライブに保存したい場合は、プロパティストアというものを使って、フォルダIDをFOLDER_IDという文字列に保存します。

フォルダIDはこちらになります。

このモザイク部分をXXXが32桁の所に実際のこちらのコードでFOLDER_IDに保存します。

//フォームを保存したいドライブのIDを指定して、1番最初に実行する。
function setScriptProperty(){
  PropertiesService.getScriptProperties().setProperty('FOLDER_ID','XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
}

その実行画面です。

この様に何も起こらないので不安になるかと思います。

そこで、FOLDER_IDに格納出来たのか確認するコードを書きました。

//プロパティストアにフォルダIDが格納されたことを確認する
function getScriptProperty(){
  const folderid=PropertiesService.getScriptProperties().getProperty('FOLDER_ID');
  console.log(folderid);
}

実行結果です。

あとはメインのpushButton関数に下記の4行のコードを追記します。

プロパティストアからFOLDER_IDを取り出して、フォームをそこに格納し、マイドライブに出来てしまったフォームの方は削除します。

 //指定のフォルダに保存する。この4行をコメントアウトするとマイドライブ(ルートディレクトリ)に保存される
  const id=PropertiesService.getScriptProperties().getProperty('FOLDER_ID');//格納するフォルダIDを取り出す
  const formFile=DriveApp.getFileById(form.getId());//作成したフォームをオブジェクトとして取得
  DriveApp.getFolderById(id).addFile(formFile);//指定のフォルダにFileオブジェクトを追加する
  DriveApp.getRootFolder().removeFile(formFile);//マイフォルダからFileオブジェクトを削除する

コメントにもある様、マイドライブ(ルードディレクトリ)に保存したい場合は、一旦コメントアウトをしておいても状況に寄っては宜しいかもしれません。

ここまでの説明で、もう少し詳しくプロパティストアについて知りたいという方は、

<ねこフォーム2>GASで作成したフォームを指定のフォルダに格納する

をご覧ください。

では、これまでのコードをまとめます。

/**
 * シート「項目データ」全体の値を取得した二次元配列から、指定の列のデータを抜き出し一次元配列を構成する 
 * 
 * @param{Object[][]}シートのデータを二次元配列化とした配列
 * @param{number}配列の列数(0以上のインデックス)
 * @return{Object{}}指定の列(見出しを除く)のデータによる一次元配列
 */
function generateArray(values,column){
  return values.map(record=>record[column]).filter(value=>value);
}


function pushButton() {

  //スプレッドシートのトップから現在のスプレッドシートにアクセスする 
  const ss=SpreadsheetApp.getActiveSpreadsheet();
  

  //フォームのタイトルと説明を取得
  const array=ss.getSheetByName('フォームのタイトルと説明の情報').getDataRange().getValues();
  const formTitle=array[0][1];//タイトル
  const formDescription=array[1][1];//概要

  
  //フォームを指定のタイトルと説明の元、作成する
  const form=FormApp.create(formTitle);  
  form.setDescription(formDescription);
 

 //項目データからフォームに追加するアイテムの内容を取得
  const dataValues=ss.getSheetByName('項目データ').getDataRange().getValues();
  dataValues.shift()

 form.addTextItem().setTitle('ニックネームまたはイニシャル\n本名以外でお願いします。').setRequired(true);


  form.addMultipleChoiceItem()    //ラジオボタン
    .setTitle('性別')
    .setChoiceValues(generateArray(dataValues,0))
    .setRequired(true);

  form.addListItem()              //リストアイテム
    .setTitle('ご年齢')
    .setChoiceValues(generateArray(dataValues,1))
    .setRequired(true);

  form.addListItem()              //リストアイテム
    .setTitle('お住まいの都道府県は?')
    .setChoiceValues(generateArray(dataValues,2))
    .setRequired(true);


  form.addListItem()              //リストアイテム
    .setTitle('ご出身の都道府県は?')
    .setChoiceValues(generateArray(dataValues,2))
    .setRequired(true);

  
  form.addMultipleChoiceItem()              //ラジオボラン
    .setTitle('あなたについて教えて下さい。')
    .setChoiceValues(generateArray(dataValues,3))
    .showOtherOption(true)//その他の選択肢
    .setRequired(true);


  form.addCheckboxItem()    //チェックボックス
    .setTitle('この本を知ったきっかけを教えて下さい')
    .setChoiceValues(generateArray(dataValues,4))
    .showOtherOption(true)//その他の選択肢
    .setRequired(true);

    //スケールアイテム
    form.addScaleItem().setTitle('この本を5段階評価で教えて下さい。\n 1:不満足 〜 5:大変良い').setRequired(true);

    //長文パラグラフテキストアイテムコメント欄
    form.addParagraphTextItem().setTitle('ご意見ご感想などコメント欄');
  

  //指定のフォルダに保存する。この4行をコメントアウトするとマイドライブ(ルートディレクトリ)に保存される
  const id=PropertiesService.getScriptProperties().getProperty('FOLDER_ID');//格納するフォルダIDを取り出す
  const formFile=DriveApp.getFileById(form.getId());//作成したフォームをオブジェクトとして取得
  DriveApp.getFolderById(id).addFile(formFile);//指定のフォルダにFileオブジェクトを追加する
  DriveApp.getRootFolder().removeFile(formFile);//マイフォルダからFileオブジェクトを削除する


}


//フォームを保存したいドライブのIDを指定して、1番最初に実行する。
function setScriptProperty(){
  PropertiesService.getScriptProperties().setProperty('FOLDER_ID','XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
}


//プロパティストアにフォルダIDが格納されたことを確認する
function getScriptProperty(){
  const folderid=PropertiesService.getScriptProperties().getProperty('FOLDER_ID');
  console.log(folderid);
}

あとはスプレッドシートのトップ画面のボタンの右上3点リーダーからスクリプトを「pushButton」に割り当てて押すと、あなたが指定したフォルダ、またはマイドライブに保存されます。

お疲れ様でした、ブレイクタイムフォトはこちらになります。

東京都葛飾区、水元公園 2018年コロナ前のゴールデンウィークにサイクリング

■参考文献の紹介■
初めてGASを学ぶ方向け。
スプレッドシートの基本的な使い方からGASのベースとなるJavaScriptの基礎文法、GASでの初歩的なプログラミングを学べます。

GASに少し慣れて来たら、基礎固めとリファレンスとしてこの本を通してじっくり学べます。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

←<ねこフォーム実践編2>プログラミングのアンケートに戻る

<ねこフォーム実践編2>プログラミング学習アンケート

この記事では、GAS(Google Apps script)を使って、プログラミング学習者向け(さっき始めたばかりの方から、何十年もやっているベテランの方まで)を対象としたアンケートを作成します。

プログラミングのアンケートにご協力頂ける方はこちらのフォームで勉強法など色々と教えて下さい。

お世話になっているサイトは、いつも隣にITのお仕事さんの

GASでGoogleフォームを一発で作成するツールを作る

です。

まず、下記のような3枚のスプレッドシートを用意します。

・シート「トップ画面」

ここには、ボタンを設置して、このボタンを押すとフォームが作れるようにします。

・シート「フォームのタイトルと説明の情報」

ここには、作成するフォームのタイトルと説明文を入れます。

・シート「項目データ」

ここには、アンケート回答者がラジオボタン、チェックボックス、リストアイテムから選択出来るようスプレッドシートに配置しています。

このデータを二次元配列として取得して、各列ごとに1次元配列に変換して、ラジオボタンなどから選択出来るようにしています。

まず、スプレッドシートのボタンを押すとフォームが作れる関数、「pushButton」を作ります。

function pushButton() {

  //スプレッドシートのトップから現在のスプレッドシートにアクセスする 
  const ss=SpreadsheetApp.getActiveSpreadsheet();
  

  //フォームのタイトルと説明を取得
  const array=ss.getSheetByName('フォームのタイトルと説明の情報').getDataRange().getValues();
  const formTitle=array[0][1];//タイトル
  const formDescription=array[1][1];//概要

  //フォームを指定のタイトルと説明の元、作成する
  const form=FormApp.create(formTitle);  
  form.setDescription(formDescription);
 }

シート「フォームのタイトルと説明の情報」を二次元配列arrayとして取得して、array[0][1]をタイトル、array[1][1]をフォームの説明文として取得しています。

では、いよいよスプレッドシートのシート「項目データ」からデータを取得して、フォームを作成して行きます。

まず、シート「項目データ」を二次元配列として取得するために、下記のコードを書きました。

//項目データからフォームに追加するアイテムの内容を取得
  const dataValues=ss.getSheetByName('項目データ').getDataRange().getValues();
  dataValues.shift()

このコードでは、定数dataValuesにシートを二次元配列として取得したデータを格納して、先頭のタイトル行をshisft()で削除しています。

この二次元配列の各行をフォームのアイテムから選択出来るように一次元配列に変換して、更に空白行を取り除く関数generateArrayを作成しました。

引数に二次元配列のデータとその行を指定して関数generateArrayに送ります。

ここではmapで一次元配列に変換して、filterで空白行を取り除いています。

/**
 * シート「項目データ」全体の値を取得した二次元配列から、指定の列のデータを抜き出し一次元配列を構成する 
 * 
 * @param{Object[][]}シートのデータを二次元配列化とした配列
 * @param{number}配列の列数(0以上のインデックス)
 * @return{Object{}}指定の列(見出しを除く)のデータによる一次元配列
 */
function generateArray(values,column){
  return values.map(record=>record[column]).filter(value=>value);
}

関数呼び出し時には、下記のように指定しました。

A列「性別」は、ラジオボタン(※必須)で、

generateArray(dataValues,0)

と記述し、引数に二次元配列のデータと列数を指定することで「性別」が選択出来ます。

form.addMultipleChoiceItem()    //ラジオボタン
    .setTitle('性別')
    .setChoiceValues(generateArray(dataValues,0))
    .setRequired(true);

B列「年齢」の呼び出しは、リストアイテム(※必須)で、

generateArray(dataValues,1)

です。

form.addListItem()              //プルダウン
    .setTitle('ご年齢')
    .setChoiceValues(generateArray(dataValues,1))
    .setRequired(true);

C列「出身在住都道府県」はリストアイテム(※必須)で、

generateArray(dataValues,2)

です。タイトルを変えて2回呼び出すことで、お住まいの都道府県と出身地を入力できます。

form.addListItem()              //プルダウン
    .setTitle('お住まいの都道府県は?')
    .setChoiceValues(generateArray(dataValues,2))
    .setRequired(true);


  form.addListItem()              //プルダウン
    .setTitle('ご出身の都道府県は?')
    .setChoiceValues(generateArray(dataValues,2))
    .setRequired(true);

D列「プログラミング歴」はリストアイテム(※必須)で、

generateArray(dataValues,3)

です。

form.addListItem()              //プルダウン
    .setTitle('プログラミング歴')
    .setChoiceValues(generateArray(dataValues,3))
    .setRequired(true);

E列「学習済み言語・1番得意な言語」はチェックボックスとラジオボタン(※必須)で、タイトルを変えて2回呼び出しています。

generateArray(dataValues,4)

です。

これらもそれぞれ、「その他」を選択出来るようにしています。

form.addCheckboxItem()    //チェックボックス
    .setTitle('学習をしたことのある言語')
    .setChoiceValues(generateArray(dataValues,4))
    .showOtherOption(true)//その他の選択肢
    .setRequired(true);

  form.addMultipleChoiceItem()    //ラジオボタン
    .setTitle('1番得意な言語')
    .setChoiceValues(generateArray(dataValues,4))
    .showOtherOption(true)//その他の選択肢
    .setRequired(true);

F列「学習のきっかけ」はチェックボックス(※必須)です。

generateArray(dataValues,5)

form.addCheckboxItem()    //チェックボックス
    .setTitle('始めたきっかけ')
    .setChoiceValues(generateArray(dataValues,5))
    .showOtherOption(true)//その他の選択肢
    .setRequired(true);

G列「学習コンテンツ」はチェックボックス(※必須)です。

generateArray(dataValues,6)

    form.addCheckboxItem()    //チェックボックス
    .setTitle('利用学習コンテンツ')
    .setChoiceValues(generateArray(dataValues,6))
    .showOtherOption(true)//その他の選択肢
    .setRequired(true);

これ以降は、セミナーの内容が5段階評価で選択出来るようにスケールアイテムを使っています。(※必須)

//スケールアイテム
    form.addScaleItem().setTitle('あなたはどれぐらいプログラミングが好きですか?\n 1:あまり好きではない 〜 5:大好き').setRequired(true);

    form.addScaleItem().setTitle('あなたはどれぐらいプログラミングが得意ですか?\n 1:あまり得意ではない 〜 5:物凄く得意').setRequired(true);

最後は自由に記入できるコメント入力用パラグラフテキストアイテムです。

//長文パラグラフテキストアイテムコメント欄
    form.addParagraphTextItem().setTitle('あなたのおすすめ勉強法やプログラミングの情報を教えて下さい。');

ここまでで実行すると、このようなフォームが作れます。これは目のマークでプレビューを押した画面です。

マイドライブに保存する場合はここまででも良いのですが、指定のドライブに保存したい場合は、プロパティストアというものを使って、フォルダIDをFOLDER_IDという文字列に保存します。

フォルダIDはこちらになります。

このモザイク部分をこちらのコードでXXXが32桁の所に実際のFOLDER_IDに保存します。

//フォームを保存したいドライブのIDを指定して、1番最初に実行する。
function setScriptProperty(){
  PropertiesService.getScriptProperties().setProperty('FOLDER_ID','XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
}

その実行画面です。

この様に何も起こらないので不安になるかと思います。

そこで、FOLDER_IDに格納出来たのか確認するコードを書きました。

//プロパティストアにフォルダIDが格納されたことを確認する
function getScriptProperty(){
  const folderid=PropertiesService.getScriptProperties().getProperty('FOLDER_ID');
  console.log(folderid);
}

実行結果です。

あとはメインのpushButton関数にこの4行のコードを追記します。

プロパティストアからFOLDER_IDを取り出して、フォームをそこに格納し、マイドライブに出来てしまったフォームの方は削除します。

//指定のフォルダに保存する。この4行をコメントアウトするとマイドライブ(ルートディレクトリ)に保存される
  const id=PropertiesService.getScriptProperties().getProperty('FOLDER_ID');//格納するフォルダIDを取り出す
  const formFile=DriveApp.getFileById(form.getId());//作成したフォームをオブジェクトとして取得
  DriveApp.getFolderById(id).addFile(formFile);//指定のフォルダにFileオブジェクトを追加する
  DriveApp.getRootFolder().removeFile(formFile);//マイフォルダからFileオブジェクトを削除する

コメントにもある様、マイドライブ(ルードディレクトリ)に保存したい場合は、一旦コメントアウトをしておいても状況に寄っては宜しいかもしれません。

ここまでの説明で、もう少し詳しくプロパティストアについて知りたいという方は、

<ねこフォーム2>GASで作成したフォームを指定のフォルダに格納する

をご覧ください。

では、これまでのコードをまとめます。

/**
 * シート「項目データ」全体の値を取得した二次元配列から、指定の列のデータを抜き出し一次元配列を構成する 
 * 
 * @param{Object[][]}シートのデータを二次元配列化とした配列
 * @param{number}配列の列数(0以上のインデックス)
 * @return{Object{}}指定の列(見出しを除く)のデータによる一次元配列
 */
function generateArray(values,column){
  return values.map(record=>record[column]).filter(value=>value);
}


function pushButton() {

  //スプレッドシートのトップから現在のスプレッドシートにアクセスする 
  const ss=SpreadsheetApp.getActiveSpreadsheet();
  

  //フォームのタイトルと説明を取得
  const array=ss.getSheetByName('フォームのタイトルと説明の情報').getDataRange().getValues();
  const formTitle=array[0][1];//タイトル
  const formDescription=array[1][1];//概要

  
  //フォームを指定のタイトルと説明の元、作成する
  const form=FormApp.create(formTitle);  
  form.setDescription(formDescription);
 

 //項目データからフォームに追加するアイテムの内容を取得
  const dataValues=ss.getSheetByName('項目データ').getDataRange().getValues();
  dataValues.shift()

 
  form.addMultipleChoiceItem()    //ラジオボタン
    .setTitle('性別')
    .setChoiceValues(generateArray(dataValues,0))
    .setRequired(true);

  form.addListItem()              //プルダウン
    .setTitle('ご年齢')
    .setChoiceValues(generateArray(dataValues,1))
    .setRequired(true);

  form.addListItem()              //プルダウン
    .setTitle('お住まいの都道府県は?')
    .setChoiceValues(generateArray(dataValues,2))
    .setRequired(true);


  form.addListItem()              //プルダウン
    .setTitle('ご出身の都道府県は?')
    .setChoiceValues(generateArray(dataValues,2))
    .setRequired(true);

  
  form.addListItem()              //プルダウン
    .setTitle('プログラミング歴')
    .setChoiceValues(generateArray(dataValues,3))
    .setRequired(true);


  form.addCheckboxItem()    //チェックボックス
    .setTitle('学習をしたことのある言語')
    .setChoiceValues(generateArray(dataValues,4))
    .showOtherOption(true)//その他の選択肢
    .setRequired(true);

  form.addMultipleChoiceItem()    //ラジオボタン
    .setTitle('1番得意な言語')
    .setChoiceValues(generateArray(dataValues,4))
    .showOtherOption(true)//その他の選択肢
    .setRequired(true);


    form.addCheckboxItem()    //チェックボックス
    .setTitle('始めたきっかけ')
    .setChoiceValues(generateArray(dataValues,5))
    .showOtherOption(true)//その他の選択肢
    .setRequired(true);



    form.addCheckboxItem()    //チェックボックス
    .setTitle('利用学習コンテンツ')
    .setChoiceValues(generateArray(dataValues,6))
    .showOtherOption(true)//その他の選択肢
    .setRequired(true);

    //スケールアイテム
    form.addScaleItem().setTitle('あなたはどれぐらいプログラミングが好きですか?\n 1:あまり好きではない 〜 5:大好き').setRequired(true);

    form.addScaleItem().setTitle('あなたはどれぐらいプログラミングが得意ですか?\n 1:あまり得意ではない 〜 5:物凄く得意').setRequired(true);


    //長文パラグラフテキストアイテムコメント欄
    form.addParagraphTextItem().setTitle('あなたのおすすめ勉強法やプログラミングの情報を教えて下さい。');
  

  //指定のフォルダに保存する。この4行をコメントアウトするとマイドライブ(ルートディレクトリ)に保存される
  const id=PropertiesService.getScriptProperties().getProperty('FOLDER_ID');//格納するフォルダIDを取り出す
  const formFile=DriveApp.getFileById(form.getId());//作成したフォームをオブジェクトとして取得
  DriveApp.getFolderById(id).addFile(formFile);//指定のフォルダにFileオブジェクトを追加する
  DriveApp.getRootFolder().removeFile(formFile);//マイフォルダからFileオブジェクトを削除する


}


//フォームを保存したいドライブのIDを指定して、1番最初に実行する。
function setScriptProperty(){
  PropertiesService.getScriptProperties().setProperty('FOLDER_ID','XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
}


//プロパティストアにフォルダIDが格納されたことを確認する
function getScriptProperty(){
  const folderid=PropertiesService.getScriptProperties().getProperty('FOLDER_ID');
  console.log(folderid);
}

あとはスプレッドシートのトップ画面のボタンの右上3点リーダーからスクリプトを「pushButton」に割り当てて押すと、あなたが指定したフォルダ、またはマイドライブに保存されます。

お疲れ様でした、ブレイクタイムフォトはこちらになります。

東京都葛飾区にある新緑の水元公園。コロナ前2018年のゴールデンウィークにサイクリングに行きました。

■参考文献の紹介■
初めてGASを学ぶ方向け。
スプレッドシートの基本的な使い方からGASのベースとなるJavaScriptの基礎文法、GASでの初歩的なプログラミングを学べます。

GASに少し慣れて来たら、基礎固めとリファレンスとしてこの本を通してじっくり学べます。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

←ねこフォーム実践編1(セミナーアンケート)に戻る

ねこフォーム実践編3(就職氷河期世代&大人の発達障害読者アンケートに進む)→

モバイルバージョンを終了