iPhoneのユーザ辞書を充実させて楽々ツイート。エクセルなら単語登録も増刷も100倍楽になる

エクセル Excel

エクセルで iPhone のユーザ辞書を分厚くするマクロ

こんなツイートを見たことはないだろうか? 書いているのはオレだ。

グローブマスター、アンカレッジ、アラスカ…。
英単語をスペルミスなくツイートができるのはユーザ辞書のおかげ

毎回、同じような単語をタイプするのに活用しているのがユーザ辞書。
スペルをミスることもなく長ーいスペルもスラスラ変換してくれる。

10、20語の薄っぺらいユーザ辞書なら手打ちでも楽勝だけど、
1000、2000語の分厚いユーザ辞書だと話は別だ。 セコセコ入力してらんない。

そこでエクセルの出番だ。
ユーザ辞書に登録したい単語を入力していってあとは自動で何千行というバイブルのようなユーザ辞書でも瞬時に出版しちゃう。
そんなマクロを作ってみるぞ。

1.gif

ユーザ辞書の手順

  1.  Sheet1のA列に“読み”、B列に“語句”を入力
  2. 辞書出力用の Sheet2 を追加(空シート)
  3. マクロを実行するとエクセルブックと同じ階層に UserDic.plist が出力
  4.  UserDic.plistをUTF-8に変換してくれるAutomaterで変換する。 (←しなくてもいいかも!?)
    (Automaterでお手軽エンコード変換 UTF8 < - > SJIS - kei-p3's blog) Thx!!
  5. macOSのユーザ辞書にUserDic.plistをD&D
  6. ちょっと待つ( iCloudでiPhoneと同期されるのを待つ)
  7.  GREAT!! ユーザ辞書が分厚くなる

失敗したときのために、はじめにユーザ辞書のバックアップは必ずしておくこと。
あと辞書を登録しすぎると変換が重くなる。(10,000語も登録はやり過ぎ!?)

マクロの紹介

Mac版エクセルでも動作するマクロ。
ざっくり作ったのでエラー処理とかはないけどユーザ辞書に作成には十分使えてる。


Sub ユーザ辞書()
Sheets(2).Cells.ClearContents
Sht1最大 = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Sheets(2).Cells(1, 1) = "<?xml version=""1.0"" encoding=""UTF-8""?>"
Sheets(2).Cells(2, 1) = "<!DOCTYPE plist PUBLIC ""-//Apple//DTD PLIST 1.0//EN"" ""http://www.apple.com/DTDs/PropertyList-1.0.dtd"">"
Sheets(2).Cells(3, 1) = "<plist version=""1.0"">"
Sheets(2).Cells(4, 1) = "<array>"
For Sht1縦 = 2 To Sht1最大
Sht2縦 = Sheets(2).Cells(Rows.Count, 1).End(xlUp).Row
If Cells(Sht1縦, 1) <> "" Then
語句 = Cells(Sht1縦, 2)
読み = Cells(Sht1縦, 1)
Sheets(2).Cells(Sht2縦 + 1, 1) = "<dict>"
Sheets(2).Cells(Sht2縦 + 2, 1) = "<key>phrase</key>"
Sheets(2).Cells(Sht2縦 + 3, 1) = "<string>" & 語句 & "</string>"
Sheets(2).Cells(Sht2縦 + 4, 1) = "<key>shortcut</key>"
Sheets(2).Cells(Sht2縦 + 5, 1) = "<string>" & 読み & "</string>"
Sheets(2).Cells(Sht2縦 + 6, 1) = "</dict>"
End If
Next
Sheets(2).Cells(Sht2縦 + 7, 1) = "</array>"
Sheets(2).Cells(Sht2縦 + 8, 1) = "</plist>"
Call ユーザ辞書出力
End Sub
Sub ユーザ辞書出力()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(2)
Dim datFile As String
datFile = ActiveWorkbook.Path & "/Dictionary.plist"
Open datFile For Output As #1
Dim i As Long
i = 1
Do While ws.Cells(i, 1).Value <> ""
Print #1, ws.Cells(i, 1).Value
i = i + 1
Loop
Close #1
MsgBox _
"ブックと同じフォルダに出力しました。" & Chr(13) & Chr(13) & _
"    「Dictionary.plist」", vbInformation, "【お知らせ】"
End Sub

 

あなた好みの専門知識の辞書を作ろう。

エクセルのマクロを使うとちょっとしたアイディアで色々と便利なことができるようになる。
空港や基地のICAOコード、エアラインの3レター、輸送機・戦闘機の名前などアイディア次第で「航空の専門知識」辞書はどんどん分厚くなっていく。やりすぎると普段の使い勝手が悪くなるからね。

航空の専門知識だけじゃなくて、キミ流の辞書をいい感じに登録してくれよ!

Amazonギフト100円で、ユーザ辞書(航空辞典付)エクセルブックをお送りします!?

 

エクセル 2019(最新 永続版)オンライン版 Win10/mac対応
マイクロソフト

MacとWinで両方使える2ライセンス。
WinとMacのどちらにもインストールできるお得なパッケージ。
Macでもエクセルが使えてとても便利になった。