中二くらいから知らなかった英単語を小さいノートに書き溜めておいてたまに見返す、ということを繰り返して 単語を覚えようとしていました。 しかし、ノートに書くとどこに何を書いたか分からず、 うっかり同じ単語を入れてしまうことがありました。
中学生高校生のころは辞書に載っていない単語を調べることはほとんどなかったので、 辞書に調べたよマークをつけておけば、過去に調べていたのを忘れていたのに気づくことができていたのですが、 大学に入って専門の論文を読み始めると 辞書に載っていない単語もが多くなり同じ単語を何回も調べていることに気づきづらくなってきました。
そこで 知らなかった単語だけを辞書順で並べてくれる単語帳 があったらいいなぁと思い、探したのですが、あんまりいいのがなかった*1ので、 エクセルで作りました。
追加したい単語の綴りと意味を太字で囲ったところに入力して追加ボタンを押すとアルファベット順に並んでくれます(Fig.1,2)。
綺麗に並んでくれると嬉しいですね。
問題はこのシートを開くのが面倒ということです。
作り方
Mac用のエクセル(バージョン16.39)を使っています
- エクセルを開きます。
- ツール>マクロ>Visual Basic Editor でなんかプログラマーっぽい画面にします.
- コードを書きます
Sub Narabikae() Range(" B7").CurrentRegion.Sort _ key1:=Range("B7"), Order1:=xlAscending, _ key2:=Range("C7"), Order2:=xlAscending, _ Header:=xlYes End Sub Sub Plus() Range("B1048576").End(xlUp).Offset(1).Select ActiveCell.FormulaR1C1 = Range("B4").Value Range("C1048576").End(xlUp).Offset(1).Select ActiveCell.FormulaR1C1 = Range("C4").Value Call Narabikae Range(" B4").ClearContents Range("C4").ClearContents End Sub
- エクセルシートに戻って、挿入で、ボタン用の四角形を作ります。
- 作った四角形をクリックして、「マクロの登録」でPlusを登録します
- できあがり
コードの説明
Narabikae(並び替え)
Sub Narabikae() Range(" B7").CurrentRegion.Sort _ key1:=Range("B7"), Order1:=xlAscending, _ key2:=Range("C7"), Order2:=xlAscending, _ Header:=xlYes End Sub
並び替えてくれるマクロです
セルB7を含むひとまとまりのグループを並び替えします
Range(" B7").CurrentRegion.Sort _
比較するのはB7が含まれている列で、順番はAからZです。 一番最初の行は見出しなので並び替えません。
key1:=Range("B7"), Order1:=xlAscending, _ key2:=Range("C7"), Order2:=xlAscending, _ Header:=xlYes
Plus(追加)
Sub Plus() Range("B1048576").End(xlUp).Offset(1).Select ActiveCell.FormulaR1C1 = Range("B4").Value Range("C1048576").End(xlUp).Offset(1).Select ActiveCell.FormulaR1C1 = Range("C4").Value Call Narabikae Range(" B4").ClearContents Range("C4").ClearContents End Sub
実際に追加します
B列のシートの一番下から何か入力されているところまで上がってきて一個下がったセルを選択します
Range("B1048576").End(xlUp).Offset(1).Select
選択したセルにB4セルの値を入れます
ActiveCell.FormulaR1C1 = Range("B4").Value
並び替えを呼び出します
Call Narabikae
入力欄の内容を消します
Range(" B4").ClearContents
*1:単語カードは嵩張って好かない