
スプレッドシートで作った英単語帳にGoogleフォームから単語を追加する方法(+暗記方法)
自分で英単語帳を作るのを楽にするため、GoogleフォームとGAS(Google Apps Script)を使ってスマホから英単語を簡単に登録できるものを作ってみました。
この単語帳を使えば、スマホで簡単に英単語を登録してスプレッドシートにどんどんためることができます。ある程度たまってきたらスマホの赤シートアプリに移して暗記することもできます。
少しだけスクリプトを書く部分がありますが、コピペで簡単にできるので全くプログラミングをやったことのない方でも大丈夫です。
手順は目次の通りです。暗記方法まで知りたい方は最後までご覧ください。
1. 単語帳となるスプレッドシートを用意
まずは英単語帳の土台を用意します。Googleスプレッドシートを開いて、新しいスプレッドシートを作成します。
「空白」を選ぶとまっさらなスプレッドシートが生成されます。デフォルトで「無題のスプレッドシート」となっているタイトルは適当に「英単語帳」などで大丈夫ですが、左下のシート名は必ず「英単語帳」という名前にしてください。シート名の変更は「シート 1」となっているところの下向き三角形を押して、名前を変更で変更できます。
早速英単語帳を作っていきます。1行目の1番最初の列から、 番号、英単語、日本語訳、例文(英語)、例文(日本語訳)という順番に入力してください。

これでスプレッドシート側の作業は終わりです。シートの見た目の調整は最後にやるので、とりあえずはこのままで大丈夫です。
2. スプレッドシートからGoogleフォームを作成
ツールから「フォームを作成」をクリックします。たったこれだけでGoogleフォームが出来上がります。
ここからはGoogleフォーム側での作業になります。
まず質問内容を英単語入力用に整えていきます。デフォルトでは「無題の質問」となっている質問文を「英単語」に変更します。次に隣のラジオボタンとなっている質問の種類を選択します。ここでは記述式を選択してください。日本語訳、例文(英語)、例文(日本語訳)用の質問も同じように用意できたら質問内容は完成です。

試しに右上の目のアイコンをクリックしてプレビューを開いて、実際に入力してみてください。Googleフォーム作成画面の方の中央あたりにある「回答」を開くと入力した内容が保存されているのが確認できると思います。
これでフォームの作成は完了です。ここから少しだけGASを使ってGoogleフォームとスプレッドシートを連携していきます。
3. Googleフォームと英単語帳を連携
一旦スプレッドシートの方に戻ります。そうすると見覚えのない「フォームの回答 1」というシートが追加されていると思います。これはGoogleフォームとスプレッドシートを連携すると勝手にできるもので、このまま単語帳として使ってもいいんですが少々使い勝手が悪いので、GASを使って最初に作った英単語帳シートに英単語を追加していきます。(このシートは消さないでください)
ツールから、スクリプトエディタを開きます。そしてエディタに以下のコードをコピペしてください。
function myFunction(e) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('英単語帳');
const lastRow = sheet.getLastRow();
const enWord = e.namedValues['英単語'];
const jaWord = e.namedValues['日本語訳'];
const enText = e.namedValues['例文(英語)'];
const jaText = e.namedValues['例文(日本語訳)'];
sheet.getRange(lastRow + 1, 1).setValue('=ROW()-1');
sheet.getRange(lastRow + 1, 2).setValue(enWord);
sheet.getRange(lastRow + 1, 3).setValue(jaWord);
sheet.getRange(lastRow + 1, 4).setValue(enText);
sheet.getRange(lastRow + 1, 5).setValue(jaText);
}
それぞれ解説すると、
myFunction() の中に e を入れると、スプレッドシートに連携したGoogleフォームの内容が取得できます。
SpreadsheetApp.getActiveSpreadsheet() で英単語帳のスプレッドシートを取得します。getSheetByName の('英単語帳')は先程設定したシート名を入力します。
sheet.getLastRow() で英単語帳の最後の行を取得します。
e.namedValues でフォームの質問文を入力して、それぞれの質問の回答を取得しています。そのためGoogleフォームで作成した質問文と一字一句間違わないように入力してください。
sheet.getRange はフォームの入力情報をシートに一列ずつ入力しています。一番最初の =ROW()-1 は単語の順番を入力するもので、わざわざこうしている理由は後から単語をシャッフルした時に番号が自動で番号順になってくれるからです。
Googleフォームから回答を取得するコードはこちらのサイトを参考にしました。
コピペできたらプロジェクトを保存して、左のメニューの時計マークのトリガーを開きます。右下の「トリガーを追加」を押して、一番下の「イベントの種類を選択」でフォーム送信時を選択します。それ以外はそのままで大丈夫です。

(Googleのサービスなのに)なぜかポップアップブロッカーにブロックされる場合は「常に許可する」を選んでもう一度トリガーを追加してください。「保存」を押してGoogleアカウントのログイン画面が出てきてアクセスのリクエストを要求される場合も許可してください。
これでもう英単語帳のスクリプトは完成です!試しにもう一度フォームを送ってみてください。英単語帳に単語が記録されていれば完成です!

あとはGoogleフォームのリンクをスマホに保存しておけば、いつでもどこでも単語入力することができるようになりました!
しかし、せっかく作った単語帳の見た目がなんか良くないですよね。なんか文字見切れてるし。そこでここからは見た目の整理と暗記方法について紹介します。
※あくまで私個人の考えた暗記方法なので、自分なりの方法がある方はぜひそちらでやってください!
4. 貯めた英単語を覚える方法
まずは見ていただいたほうが早いでしょう。私のプライベートな単語帳はこんな感じです。

↑もうすでに私は400個以上登録していますw 例文の日本語訳を書いていないところは、英単語の訳だけ分かれば後もわかるだろうと思ったからです。めんどくさいわけではない
追記:大学受験で使った結果、最終的に1000個以上単語を登録していました!(ダブってるものも含め)
上の画像のように英単語を緑色、日本語訳を赤色に変更して、見切れない程度の長さに列を調整するのがおすすめです。こうすることで赤シートや緑シートを使った勉強をすることができます。
ここからはこの単語帳を使った勉強法を3種類紹介します。
紙に印刷して赤シートを使って覚える方法
まとめて単語帳を作る場合は良い方法なんですが、今回のようなちょっとずつ単語を増やしていくような方法ではあまりおすすめはしません。単語数が増えたらその都度印刷しなければならないので紙代とインク代の心配以上に面倒が勝ってしまうからです。(もしやる場合はもう少し文字の色を薄めにしたほうがきれいに消えるかもです)
スプレッドシートの画面を赤シートで隠す方法

赤文字がうっすら見えるくらい薄い色(カラーコードでいうと#ffdcdcくらい)にすれば画面越しに赤シートを使うことができます!(緑も同じく)
超お手軽で、単語を追加したらすぐに反映されるので手間はほとんどありません。赤シートを持っていれば無料で使えます。デメリットとしてはいつでもどこでも赤シートを持っているわけではないので、持っていないと使いにくいという点があります。
赤シートアプリを使う方法
個人的には一番おすすめの方法です。iPhoneではイルカの暗記シート、Androidではi-暗記シートというアプリを使います。(制限はありますが無料で使うこともできます)

アプリ側で赤シートと緑シートを切り替える設定があり、切り替えると緑色で書いた英単語が逆に見えなくなるため、日本語を見て英単語を思い出すという勉強が可能になります。(iPhone/Androidどちらでもできました)

アプリで使う方法は、英単語帳をPDF化してアプリで読み込んで使います。
PDFをダウンロードする前に、一番左上(A1)から「例文(英文)」の一番下までの範囲を選択します。例文の日本語訳も入れたい場合はそちらも選択してください。
個人的には文字が小さくなってしまうので、日本語訳は省略してわからない時だけスプレッドシートを開いて使っています。
次にファイル→ダウンロード→PDFを選択します。設定は用紙サイズはA4、ページの向きは縦向き、スケールは幅に合わせる、余白は標準がおすすめです。
ダウンロードしたPDFをスマホに転送して、赤シートアプリを開いて読み込めば完了です!
デメリットはAndroid版のアプリが割と頻繁に落ちる(私の端末だけかもしれない)時があることと、PDFをダウンロードする時にPCを立ち上げる必要があることです。完全にPCレスにはならないですが、それでも紙に印刷するよりは楽だと思います。(調べたらPDF化もGASで自動化できるらしいので興味のある方はやってみてください)
まとめ
あくまで暗記方法は一例なので、自分なりの暗記方法を探してみてください。これを応用してAnkiやQuizletなどの暗記アプリ用に特化したものを作るのもいいと思います。この記事が試験勉強などに少しでも役に立てれば幸いです!
最後まで読んでいただきありがとうございました。
この記事は過去に独自ドメイン(tanukizzan.com)のブログで書いた記事を加筆修正したものです。そのブログは既に閉鎖したのでこの度noteに移植しました。
ちなみにこのドメインは現在ポートフォリオサイトとして運用しているので良かったら見てみてください~(この他にもたくさんWebサイトを載せています!)
とはいえこの記事含め2つしか書いていなかったのでほとんどアクセスは0に近かったんですがね。。。ブログむずい。。。