
今回は24,001-34,847語レベルの難単語を扱った「終極の英単語」。
この「終極の英単語」を高速でAnki用CSV変換する方法を解説します。
ちなみに「終極の英単語」は次の書籍です。
対象書籍

Amazon

Amazon

Amazon

Amazon

Amazon
これらの単語をAnkiにして覚えたいって人は多いのではないでしょうか。
そのためにはCSVファイルを作成することになると思います。
これをKindleを見て、手入力でスプレッドシートに打ち込む…という作業をすると何十時間もかかるでしょう。
それを今回はGAS(Google Apps Script)というGoogleスプレッドシートにあるプログラムを使用することにより1冊1時間でCSVが作成できるようになります。
それでは「『終極の英単語』を高速でCSV変換する方法を解説します!」と題して始めます。
なお、12,001-24,000語レベルの難単語を扱った「極限の英単語」をCSVに変換する方法も別記事で解説していますので興味がある方はご覧ください。
この記事です!
他のツールの記事です
「終極の英単語」を高速でAnki用CSV変換する方法(免責事項)

免責事項は次になります。
このページ掲載されている方法は正確性について万全を期していますが、当ブログの管理人はこのページの情報を用いて行う一切の結果について、何らの責任を負うものではありません。当ページの情報に起因して利用者に生じた損害につき、当ブログの管理人は責任を負いかねますので了承ください。
「終極の英単語」を高速でAnki用CSV変換する方法(必要なもの)

CSV変換するにあたり、次のものが必要になります。
iPad推奨(もしくはKindle対応のスマホorタブレット)
PC(Win、Mac問いません)環境
PCのメモ帳(検索/置換機能有りにしてください)
Googleのメインアカウント(※メインアカウントでないとGAS(プログラム)の実行ができません)
インターネット接続環境
「終極の英単語」を高速でAnki用CSV変換する方法(実行)

GASの機能の関係上、1,000語ずつ処理することを推奨します(単語数が多くなると、単語の処理が途中で終わる可能性が高くなります)。
1,000語処理する度に次のステップ1-5を実行します。
2,000語処理するにはステップ1-5を2回実行する必要がありますし、3,000語なら3回になります。
ステップ1 タブレットでの処理
・Kindleで単語等の情報をハイライトする。
・ハイライトした部分でフラッシュカードを作る
・フラッシュカードを編集し、全文をコピーする。
・コピーしたテキストをGmailで自分自身の宛先に送信する。
ステップ2 メールとメモ帳で処理する
・Gmailで自分自身に送信たメールを受信する
・受信した本文をメモ帳に貼り付ける
・空白文字がたくさんあるのでメモ帳の置換機能で空白文字を消す
ステップ3 GAS実行前に下処理をする
・プログラムでの処理を成功させるために、メモ帳の内容を下処理する
ステップ4 GASを実行する
・メモ帳の内容をGoogleスプレッドシートのA1セルに貼る
・GASを実行する
GASの実行が成功すると次の動画のように処理されます。
ステップ5 GAS実行後に手動で修正する
・GASで処理できなかった内容を手動で修正する
ステップ1・タブレットで処理する

まずはタブレットでKindleを起動。
「終極の英単語」を開きます。

1,000語単位の単語ページを開きます。

1,000語単位の始まりから、1,000語単位の終わりまでドラッグします。

1,000語単位の終わりまでドラッグします。
すると、どの色でハイライトするか聞かれるので好きな色をタップします(下図だと赤色です)。

ドラッグした部分がハイライトされました。
画面の空きスペースをタップします。

そうすると画面上部にメニューが出現します。
画面右上、右から3番目のアイコン(マイノート)をタッチします。

マイノートの画面になります。
画面右上、右から2番目のアイコン(エクスポート)をタップします。

エクスポートする場所を聞かれるので「フラッシュカード」をタップします。

フラッシュカードのデッキ名を名付けるよう聞かれます。
分かりやすい名前にしましょう。

名前を付けたら「保存」をタップします。

デッキ画面が開きます。
『デッキの編集」をタップします。

フラッシュカードをタップします。

フラッシュカードを編集できるようになりました。

iPad(もしくはiPhone)の場合、編集画面を長押しして離すとメニューがポップします。
「すべてを選択」をタップします。

続けてメニューがポップされるので「コピー」をタップします。

コピーした内容をGmailに貼り付け、自分自身のアカウントに送信します。

ステップ2・メールとメモ帳で処理する

ステップ1の最後で送信したGmailの内容を受信し、PCのメモ帳にペーストします。

半角スペースがたくさん混じっているので、置換メニューで半角スペースを削除します。

半角スペースを削除しました。

ステップ3・GAS実行前に下処理をする

タイトルどおりですが、今のメモ帳の内容。
GASでうまく実行するためにメモ帳の内容を下処理する必要があります。
その理由はGASでは正規表現に基づいた処理をするのですが、正規表現では対応しにくい部分を対処するためです。
24,001〜34,847語レベルで下処理の内容が異なるので次の表を参考の上、下処理をしてください。
単語レベル | 下処理対象単語 | 下処理内容 |
---|---|---|
26,001〜27,000語レベル | abiotic | (修正前)単語部分と発音部分 abiotic生命のない;非生物の ↓ (修正後)単語部分と発音部分 abiotic/生命のない;非生物の 単語部分と発音部分を半角のスラッシュ"/"で区切る |
〃 | bailiwick | (修正前)意味部分 bailiffの管轄区域/得意な領域,なわばり ↓ (修正後)意味部分 bailiffの管轄区域/得意な領域,なわばり 意味部分のbailiffを全角のbailiffにする |
〃 | contretemps | (修正前)意味部分 あいにくの事故[出来事];困った災難/口論,けんか,意見の衝突/《フェンシング》コントルタン(相手のカウンター攻撃に対処するあらゆる動作)/ ↓ (修正後)意味部分 あいにくの事故[出来事];困った災難/口論,けんか,意見の衝突/《フェンシング》コントルタン(相手のカウンター攻撃に対処するあらゆる動作) 意味部分の最後の半角のスラッシュ"/"を削除 |
27,001〜28,000語レベル | entrain | (修正前)意味部分 (兵士を[が])列車に乗せる[乗る]/いっしょに引っ張って行く,引きずる/熱意,活気/ ↓ (修正後)意味部分 (兵士を[が])列車に乗せる[乗る]/いっしょに引っ張って行く,引きずる/熱意,活気 意味部分の最後の半角スラッシュ"/"を削除 |
〃 | kiloton | (修正前)意味部分 キロトン(1,000トン)/TNT1,000トンに相当する原水爆の爆破力の単位 ↓ (修正後)意味部分 キロトン(1,000トン)/TNT1,000トンに相当する原水爆の爆破力の単位 意味部分にあるTNTを全角のTNTにする |
〃 | T-bar | (修正前)意味部分 《建築》T字鋼[梁]/T字形スパナ[レンチ]/(スキー場の)T字形リフト/Tストラップ(足首を回るひもと甲の中央を走るひもがT字形を成す) ↓ (修正後)意味部分 《建築》T字鋼[梁]/T字形スパナ[レンチ]/(スキー場の)T字形リフト/Tストラップ(足首を回るひもと甲の中央を走るひもがT字形を成す) 意味部分にあるTを全角のTにする |
28,001〜29,000語レベル | 特になし | - |
29,001〜30,000語レベル | f-ing | (修正前)意味部分 《米俗》fuking ↓ (修正後)意味部分 《米俗》fuking 意味部分にあるfukingを全角のfukingにする |
30,001〜31,000語レベル | thrombus | (修正前)発音部分と意味部分 Ѳrámbəs《病理》血 ↓ (修正後)発音部分と意味部分 Ѳrámbəs/《病理》血 発音部分と意味部分を半角のスラッシュ"/"で区切る |
〃 | capsular | (修正前)意味部分 カプセル(状)の/カプセルに入った/ ↓ (修正後)意味部分 カプセル(状)の/カプセルに入った 意味部分の最後の半角スラッシュ"/"を削除 |
31,001〜32,000語レベル | atrophic | (修正前)発音部分と意味部分 ətráfɪk《病理》萎縮症の ↓ (修正後)発音部分と意味部分 ətráfɪk/《病理》萎縮症の 発音部分と意味部分を半角のスラッシュ"/"で区切る |
〃 | clevis | (修正前)意味部分 Uリンク,U字鉤(両端にボルトが付いたU字形の金具) ↓ (修正後)意味部分 Uリンク,U字鉤(両端にボルトが付いたU字形の金具) 意味部分にあるUを全角のUにする |
〃 | nosocomial | (修正前)意味部分 i《医学》(感染などが)院内で起きる,病院の,院内の ↓ (修正後)意味部分 《医学》(感染などが)院内で起きる,病院の,院内の 意味部分の最初にあるiを削除する |
〃 | prokaryote | (修正前)発音部分と意味部分 proʊkǽɚrioʊt《生物》原核生物,前核生物(細菌類や藍藻類などの核膜を持たない単細胞生物) ↓ (修正後)発音部分と意味部分 proʊkǽɚrioʊt/《生物》原核生物,前核生物(細菌類や藍藻類などの核膜を持たない単細胞生物) 発音部分と意味部分を半角のスラッシュ"/"で区切る |
32,001〜33,000語レベル | A-to-Z | (修正前)意味部分 全部の,すべての/AからZで始まる単語を用いた ↓ (修正後)意味部分 全部の,すべての/AからZで始まる単語を用いた 意味部分にあるAとZを全角のAとZにする |
33,001〜34,000語レベル | dysplastic | (修正前)発音部分 dɪs.plæs''.tɪk ↓ (修正後)発音部分 dɪs.plæs.tɪk 発音部分の''を削除する |
〃 | plena | (修正前)意味部分 《音楽》プレーナ(プエルトリコで19世紀の終わりから20世紀の始めにかけて生まれた音楽)/plenumの複数形 ↓ (修正後意味部分 《音楽》プレーナ(プエルトリコで19世紀の終わりから20世紀の始めにかけて生まれた音楽)/plenumの複数形 意味部分のplenumを全角のplenumにする |
34,001〜34,847語レベル | physiographic | (修正前)発音部分と意味部分 fìziəɡrǽfik自然地理学の,地形学の ↓ (修正後)発音部分と意味部分 fìziəɡrǽfik/自然地理学の,地形学の 発音部分と意味部分を半角のスラッシュ"/"で区切る |
〃 | pleura | (修正前)意味部分 《解剖》胸膜,肋膜/pleuronの複数形(甲殻類などの側板) ↓ (修正後)意味部分 《解剖》胸膜,肋膜/pleuronの複数形(甲殻類などの側板) 意味部分のpleuronを全角のpleuron |
〃 | tilde | (修正前)意味部分 《言語》ティルデ,チルド,上付き波形符号(~)/波形記号,波ダッシュ,スワングダッシュ(省略を表す) ↓ (修正後)意味部分 《言語》ティルデ,チルド,上付き波形符号(〜)/波形記号,波ダッシュ,スワングダッシュ(省略を表す) 意味部分のチルダ"~"を全角のチルダ"〜"にする |
〃 | vina | (修正前)意味部分 《音楽》ビーナ(4本の弦とヒョウタンで作った共鳴器からなるインドの古楽器)/vinumの複数形(薬用ワイン) ↓ (修正後)意味部分 《音楽》ビーナ(4本の弦とヒョウタンで作った共鳴器からなるインドの古楽器)/vinumの複数形(薬用ワイン) 意味部分のvinumを全角のvinumにする |
終極の英単語VOL.0 B | blackball | (修正前)発音部分 blæk''bɔːl ↓ (修正後)発音部分 blækbɔːl 本記事のGASでは処理できないので"''"を削除する |
終極の英単語VOL.0 F | fluoresce | (修正前)発音部分 flɔːr)rés ↓ (修正後)発音部分 flɔː(r)rés 発音部分が半角括弧で括れていないので括る |
〃 | fluorine | (修正前)発音部分 flˈɔːr)riːn ↓ (修正後)発音部分 flˈɔː(r)riːn 発音部分が半角括弧で括れていないので括る |
ステップ4・GASを実行する

Googleドライブを開きます。
Googleスプレッドシートを新規作成するために、「新規」ボタンをクリックします。

「Googleスプレッドシート」をクリックします。

Googleスプレッドシートを開きました。

スプレッドシート名を分かりやすいものにしてください(下図では、「英単語帳」)。
次の2つのシートを作成してください。
- 作業シート(下図では、「作業シート」。本シートをアクティブシートにしてGASを実行します。)
- 単語帳CSVシート(下図では、「終極の英単語VOL.1」。本記事の完成品はここにできます。)

メモ帳の内容を作業シートのA1セルに貼り付けてください。
次に、必ず作業シート(下図では「作業シート」)を選択した上で、ツールバーの「ツール」をクリックします。

「スクリプトエディタ」をクリックします。

なお、メインアカウント以外でログインした状態だと下図の画面になります。
もしこうなったら、すべてのアカウントからログアウトして、再度ログインしてください。

スクリプトエディタを開きました。

プロジェクト名を分かりやすい名前にします(下図だと「CSV変換プログラム」)。
「Ctrl + S」(Macの場合 「Command + S」)でプロジェクトを保存してください。

次のコードをコピーしてください。
function myFirstFunction() {
//1. 現在のスプレッドシートを取得
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
//2. 現在のシートを取得
var sheet = spreadsheet.getActiveSheet();
//3. 指定するセルの範囲(A1)を取得
var range = sheet.getRange("A1");
//4. 値を取得する
var str = range.getValue().toString();
//5. 発音記号のカッコ書きの左カッコを★、右カッコを☆に置換する、下処理のため
var reg_one = /(\([ ̀ abcdefghijklmnoprstuvwzɘàáæèéέìíðòóùúÚŋǽɑˡɒ·ᾶʀıˑṃṇÍḷɫɔəɚɛɜɝᴐѲɡɪɹʃʊʌʒά~θṭὰʤɻʰːjlɲʉɨɐœʦɵʧ]\))/gi
var rep_one = "★$1☆";
var str_one = str.replace(reg_one,rep_one).replace(/★\(/gi,"★").replace(/\)☆/gi,"☆");
//6. 英単語もしくは発音記号の冒頭■付け
var reg_two = /([ ̀ a-zA-Z★☆\.`ɘà~áæèéέìíðòóùúÚŋǽɑˡɒ·ᾶʀıˑṃṇÍḷɫɔəɚɛɜɝᴐѲɡɪɹʃʊʌɨɐʦœʉʒˈˌː̩̀́άθṭὰʤɻʰː‐\-ɲɵʧŏă]{2,}\/)/g
var rep_two = "■$1";
var str_two = str_one.replace(reg_two,rep_two).toString();
//7. スラッシュをデリミタとして配列格納
var reg_three = /\//g
var arr_three = str_two.split(reg_three);
//8. 配列に発音記号が含まれるなら■を□に置換
for(var i in arr_three){
if(arr_three[i].toString().match(/[★☆`àáæèéìíðòóùúŋǽɑˡɒɔəɚɛɜɝɡɪɹʃʊʌʒˈˌː̩̀́άθṭὰɪɻʰːʧŏă]/)){
arr_three[i] = arr_three[i].toString().replace("■","□");
}
}
//9. 意味の部分が「(文字)■(文字)」になっているので適切に処理
var arr_four = [];
var k = 0;
for(var j in arr_three){
if(arr_three[j].toString().match(/^■.+/) || arr_three[j].toString().match(/^□.+/)){
arr_four[k] = arr_three[j];
Logger.log("arr is " + arr_four[k]);
}else if(arr_three[j].toString().indexOf('■') == -1 && arr_three[j].toString().indexOf('□') == -1){
arr_four[k] = arr_three[j];
Logger.log("arr is " + arr_four[k]);
}else{
arr_four[k] = arr_three[j].toString().match(/^[^■]+/).toString();
Logger.log("arr is " + arr_four[k]);
k++;
arr_four[k] = arr_three[j].toString().match(/■[^■]+$/).toString();
Logger.log("arr is " + arr_four[k]);
}
k++;
}
//10. 発音記号なしの英単語を処理する
var arr_five = [];
var q = 0;
for(var p in arr_four){
if(arr_four[p].toString().match(/^■.+/) || arr_four[p].toString().match(/^□.+/)){
arr_five[q] = arr_four[p];
q++;
}else{
arr_five[q] = arr_four[p].toString().match(/^[^a-zA-Z'\-]+/);
q++;
if(arr_four[p].toString().match(/([a-zA-Z'\-]+[^a-zA-Z'\-]+)/) != null){
var jumbled = arr_four[p].toString().match(/([a-zA-Z'\-]+[^a-zA-Z'\-]+)/gi);
for(var r in jumbled){
arr_five[q] = "■" + jumbled[r].toString().match(/[a-zA-Z'\-]+/);
q++;
arr_five[q] = jumbled[r].toString().match(/[^a-zA-Z'\-]+/);
q++;
}
}
}
}
//11. GSSの2行目以下に書き込み
var row = 2;
var tmp = 0;
for(var m in arr_five){
Logger.log("arr_five[m] is " + arr_five[m]);
if(arr_five[m].toString().match(/■/)){
//単語の場合■を除去、1列目書き込み
sheet.getRange(row,1).setValue(arr_five[m].replace("■","").toString());
}else if(arr_five[m].toString().match(/□/)){
//発音記号の場合□を除去、★を(、☆を)に置換、2列目に書き込み
sheet.getRange(row,2).setValue(arr_five[m].replace("□","").replace("★","(").replace("☆",")").toString());
}else{
sheet.getRange(row,3).setValue(sheet.getRange(row,3).getValue() + arr_five[m].toString());
tmp = Number(m) + 1;
if(arr_five[Number(tmp)] != null && arr_five[Number(tmp)].toString().match(/■/)){
row++;
}
}
}
}
上書きして貼り付けます。
次の部分も上書きして貼り付けてください。
function myFunction(){
}

「Ctrl + S」(Macの場合 「Command + S」)でプロジェクトを保存してください。
画面上部にある「実行」をクリックしてください。

GASの実行が初回だと次のようなダイアログが表示されます。
「権限を確認」をクリックしてください。

Googleのメインアカウントをクリックします。

警告ダイアログが出るので「詳細」をクリックします。

「(作成したGASのプロジェクト名)(安全ではないページ)に移動」(下図では「無題のプロジェクト(安全ではないページ)に移動」)をクリックします。

GASのプロジェクトにアクセスリクエストを許可します。
「許可」をクリックしてください。

GASを実行すると実行ログが画面下部に出力されます。

作業シートの2行目以降に処理内容が上書きされます。(作業シートの2行目以降に何も入力しないでください。たとえ大事な内容であっても上書きされます)

動画にすると次のようになります。
最後まで無事GASが実行されると実行ログに「お知らせ 実行完了」と表示されます。

実行ログに「お知らせ 実行完了」と表示されているならば、作業シートの方も単語が最後まで処理されています。

「ステップ5・GAS実行後に手動で修正する」に進んでください。
GASを実行したが「関数の実行がタイムアウトしました。…」と実行ログに表示された場合
GASの実行可能時間は6分間のようです。
もし実行して6分経過した場合、下図のように「関数の実行がタイムアウトしました。デバッグを実行するには、デバッガを再起動してください。デバッガを再起動」と表示されます。

その場合、作業シートの方も処理が途中で終わった結果となります。

そうなった場合は、作業シートの、2行目〜単語の意味まで処理ができた行、をコピーします。
上図で言えば2行目〜917行目になります。

コピーした内容を単語帳CSVシート(下図では、「終極の英単語VOL.1」シート)に貼り付けます。

メモ帳の内容を再度作業シートのA1セルに貼り付けてください。
ただし、貼り付ける内容はGAS実行で処理できなかった部分です(下図ではsinfulの単語以降)。

もし貼り付けた内容で、最初の単語が「単語、意味」の構成になっていたら(発音の掲載がない)次の対応をしてください(下図だとrelativism)。

単語と意味を半角のスラッシュ”/”で区切ってください。

再度、スクリプトエディタの「実行」をクリックしてください。

ステップ5・GAS実行後に手動で修正する

無事GASを実行して処理が済めば、作業シートの2行目以降に全単語の「単語、発音、意味」が列ごとに分かれた結果が書き込みされます。
これをコピーして単語帳CSVシート(下図では「終極の英単語VOL.1」シート)に貼ります。

ただし、下図のacneのように意味部分に”(半角英数の単語)”があると、行が分断されているものがあるので手動で直していきます。

下図のように直してください。

ステップ6・CSVエクスポート

スプレッドシート画面上部のメニューから、「ファイル」→「ダウンロード」→「カンマ区切りの値」でCSVファイルとしてエクスポートできます。
Anki用にお役立てください。
まとめ

24,001語以上の単語をAnkiで覚えたいけど、「手作業は嫌!」という人はぜひご活用ください。
今回のGASプログラムは正規表現処理を活用したものですが、もし正規表現とプログラムを理解されたのであればKindleの単語帳の多くはCSV変換処理できるのではないかと考えます。
そうすれば好きな単語帳を効率的にAnkiに取り込みやすくなりますね。
今回は「終極の英単語」というCEFR-C1レベル以上の方向けの単語帳のCSV処理方法となりましたが、今後は諸中級者向け「究極の英単語」のCSV処理方法を掲載したいと思います。
それではAnkiライフを楽しみましょう。

メール相談受付中
ブログに対するご意見、
英語の勉強法についての相談、
気軽にしていただけたらと思います。
管理人のキャパシティーが超えない範囲で対応させていただきますね♪
(↓ メール相談は↓をクリック! ↓)
