SAラン広域セン支の覚え書き

・ボダブレ辞書 ・各種日本語入力ソフトの辞書解説 ・実用Excel VBA

Simeji for Android用のユーザー辞書ファイルをWindows版Excelで作成するシートを公開します

概要

MS-IME, GoogleIME, ATOKなど主要な日本語入力アプリのユーザー辞書ファイルにはタブ区切りテキストファイルが使われていることが多いです。Baidu IMEも同様です。ところが、Simeji for Androidのユーザー辞書ファイルはこれらとはまったく書式の異なるものになっています。そこでWindowsExcelを使って一般的な形式をSimeji for Android形式に変換するExcelマクロを作ってみました。

Simeji for Android用ユーザー辞書ファイルの書式

Simeji for Android用ユーザー辞書ファイルの書式は一般的な辞書ファイルとは全く違う構成で、改行が全くなく、1行目にすべてが記載されています。

{"EN_KEY":[],"EN_VALUE":[],"JAJP_VALUE":["単語1","単語2",……],"JAJP_KEY":["読み1","読み2",……]}

単語のセクションと読みのセクションが離れているため対になっているものを比較するのが難しいです。なお、品詞やコメントはありません。

辞書ファイルを作成するExcelシート

ダウンロード

  • ExcelでSimeji for Android用のユーザー辞書ファイルを作成するシート
  • ファイル名:Excel2Simeji.xlsm
  • ダウンロード:Excel2Simeji.zip (zip形式圧縮)
  • 動作確認:Excel2010, Excel2013 (どちらもWindows版)で確認しています。Excel for Macでは動きません(エラーが出ます)。

使い方

ファイルをダウンロードしたら、適当なフォルダに解凍してください。
f:id:dz_dzone:20170414115054j:plain

Excel2Simeji.xlsmファイルを開きます。この時にセキュリティの警告が出た場合は「コンテンツの有効化」ボタンをクリックしてください。
f:id:dz_dzone:20170414114827j:plain

設定画面です。ここでは「変換元シート名」を変更することが出来ます。
f:id:dz_dzone:20170414114207j:plain

「変換元シート名」で設定した名前のシートに移動します。ここでは「Sample」シート。
A列に"読み(ひらがな)"、B列に"単語"を入力します。別のタブ区切りテキスト形式の辞書(ATOK, MS-IME, Google日本語入力など)からコピーしてきても構いません。
f:id:dz_dzone:20170414133200j:plain

"設定"シートに戻り、"Simeji辞書作成"ボタンをクリックすると変換開始します。
f:id:dz_dzone:20170414114207j:plain

既存の辞書ファイルがある場合上書きされる旨の確認ダイアログが出ます。
f:id:dz_dzone:20170414133822j:plain

設定シートの「変換元シート名」のシートがもし存在しない場合、警告ダイアログが出ます。
f:id:dz_dzone:20170414133927j:plain

うまく変換されると確認ダイアログが出ます。
f:id:dz_dzone:20170414133957j:plain

エクセルファイルと同じフォルダに"simeji_user_dic.txt"が作成されました。
f:id:dz_dzone:20170414134051j:plain

出力された内容です。

{"EN_KEY":[],"EN_VALUE":[],"JAJP_VALUE":["マリア様がみてる","マリみて","今野緖雪","ひびき玲音","リリアン女学園","リリアン","山百合会","薔薇の館","白薔薇","紅薔薇","黄薔薇","紅薔薇","ロサ・ギガンティア","ロサ・キネンシス","ロサ・フェティダ","アン・ブゥトン","プティスール","グランスール","スール"],"JAJP_KEY":["まりあさまがみてる","まりみて","こんのおゆき","ひびきれいね","りりあんじょがくえん","りりあん","やまゆりかい","ばらのやかた","しろばら","べにばら","きばら","あかばら","ろさぎがんてぃあ","ろさきねんしす","ろさふぇてぃだ","あんぶーとん","ぷちすーる","ぐらんすーる","すーる"]}


あとはスマホにファイルを移してSimejiに取り込みます。

関連記事

dz11.hatenadiary.jp

Microsoft IMEのユーザー辞書の一時退避方法と復元方法

概要

Microsoft IMEで、「システム辞書(専門辞書)を作りたいけど既にユーザー辞書に結構登録しちゃってるんだけど……」という場合は常にあると思います。ここでは現在登録されているユーザー辞書を一時退避する方法および復元する(戻す)方法を解説します。

目次

ユーザー辞書の一時退避(エクスポート)

ユーザー辞書の一時退避方法

ユーザー辞書ツールを開きます。

f:id:dz_dzone:20170413151013j:plain

f:id:dz_dzone:20170413151044j:plain

ツール>一覧の出力 を選択します。

f:id:dz_dzone:20170413151124j:plain

Microsoft IME形式のTXT辞書ファイルが出力されます。

f:id:dz_dzone:20170413151419j:plain

f:id:dz_dzone:20170413151429j:plain

 

ユーザー辞書の一括削除方法 

今出力したTXTファイルで一時的なユーザー辞書の削除もできます。

ツール>テキストファイルで削除 を選択します。

f:id:dz_dzone:20170413151530j:plain

さきほど一時退避したファイル(ここでは output1.txt)を開きます。

f:id:dz_dzone:20170413151546j:plain

f:id:dz_dzone:20170413151633j:plain

削除されました。

f:id:dz_dzone:20170413151709j:plain

 

ユーザー辞書の復元(インポート)

ユーザー辞書の復元方法

ユーザー辞書ツールで、 ツール>テキストファイルからの登録 を選択します。

f:id:dz_dzone:20170413152434j:plain

一時退避していたファイル(ここでは output1.txt)を開きます。

f:id:dz_dzone:20170413152519j:plain

f:id:dz_dzone:20170413152529j:plain

ユーザー辞書が復元されました。

f:id:dz_dzone:20170413152550j:plain

以上。

ATOK for Windows / Macを買ったらまず設定しておきたいたった一つの項目

目次

はじめに

ATOK、変換が賢いのはとっても好きなんですけど、デフォルトの設定で使っているとユーザー辞書があっという間にアホというか馬鹿というかめちゃくちゃになっていきます。

下の画像は、私が2014年まで使っていたATOKのたぶん10年分くらいのユーザー辞書データの頭の方です。こんなのが全部で8136件入っています。もうね、何が何だかわかんないでしょ。(画像注:単語種類が"登録単語”になってますが、実際は"自動登録単語"として登録されたものです)

f:id:dz_dzone:20170412171617j:plain

こんなのがユーザー辞書に入っていても実質的に使えないので、こうならないための設定をします。

 

設定方法 

ATOKメニューを開きます。

f:id:dz_dzone:20170412172204j:plain

f:id:dz_dzone:20170412172222j:plain

プロパティ(環境設定)を開きます。

f:id:dz_dzone:20170412172507j:plain

"辞書・学習"タブを開き、"学習"の"詳細設定"をクリックします。

f:id:dz_dzone:20170412172638j:plain

デフォルトの設定項目と内容

"学習・登録詳細設定"が開きます。

f:id:dz_dzone:20170412173019j:plain

何も設定を変えていない場合の初期値が上記画像になります。
自動登録がほとんど"する(強)"になっています。この設定が一番最初に示しためちゃくちゃなユーザー辞書を作成します。ちなみに設定はこの3つのレベルから選択できます。

f:id:dz_dzone:20170412173559j:plain

新しく設定する項目と内容

そこで、この設定を次のように変更します。

f:id:dz_dzone:20170412173702j:plain

ほとんどの設定を"一時”にします。

おわりに

これでユーザー辞書が勝手に自動登録単語で埋まっていくことがなくなります。

私の場合、本当に必要な単語は手動で単語登録しています。

(VBScript) XLSTARTフォルダを開く

Excelで個人用マクロファイル(Personal.xlsb)を作るなど、XLSTARTフォルダを開かせる場合があると思いますが、ユーザープロファイルの奥なのでちょっとややこしいですよね。そこでVBScriptで開くようにしてみました。

'** XLSTARTフォルダを開く **
Dim WshShell
Dim objShell
Dim strFldr

Set WshShell = WScript.CreateObject("WScript.Shell")
Set objShell = WScript.CreateObject("Shell.Application")

strFldr = WshShell.ExpandEnvironmentStrings("%USERPROFILE%") & _
			"\AppData\Roaming\Microsoft\Excel\XLSTART"
objShell.Explore strFldr

これをテキストエディタ(Notepadなど)に貼り付けて"適当な名前.vbs"で保存してダブルクリックすれば開きます。

スクリプトファイルのダウンロードはこちら→ OpenXLSTART.zip(XLSTARTを開く.vbs)

追記あり (Excel VBA) 選択範囲の全角スペースおよび半角スペースを一括で削除する

全・半角スペースを削除する

削除は置換

文字を削除するときにはReplaceメソッドを使います。削除というか、""に置換する訳です。そして、選択範囲の全角スペースおよび半角スペースを削除する場合は、Selectionに対してReplaceを適用します。

Sub DelSpaces()
    ' ** 選択範囲の全・半角スペースを削除 **
    Selection.Replace " ", "" ' <--- スペースは全角で入力
    Selection.Replace " ", ""
End Sub

または、キャラクターコードで記述して

Sub DelSpaces()
    ' ** 選択範囲の全・半角スペースを削除 **
    Selection.Replace Chr(-32448), ""
    Selection.Replace Chr(32), ""
End Sub

VBAではアンドゥ(UnDo)が使えない

注意点として、VBAで操作した場合はアンドゥが使えませんので、あらかじめ保存しておくとかMsgboxで注意を促すような処理を入れるのがよいでしょう。

    Msgbox "はじめに上書き保存します。", vbOKOnly + vbExclamation
    ActiveWorkbook.Save

[ 2017.4.26追記 ]

選択範囲外のスペースも削除されてしまうことがある!

しばらく上記のコードで運用していたところ、"選択範囲を指定しているにもかかわらず、選択範囲以外の全てのセルでスペースが削除されてしまう"場合が何回も発生しました。

そこで、コードを改良することにしました。

選択範囲は取得されてるのか?

最初に思ったのは、このSelectionは本当に取得されているのか?

Sub CheckSelection()
    Dim R1, R2, C1, C2, cnt
    cnt = Selection.Count
    R1 = Selection(1).Row
    C1 = Selection(1).Column
    R2 = Selection(cnt).Row
    C2 = Selection(cnt).Column

    MsgBox R1 & "," & C1 & "-" & R2 & "," & C2
End Sub

結果は、取得されているようです。
f:id:dz_dzone:20170426094955j:plain
ならばと、改良コードその1

Sub DelSpaceV2()
    ' ** 選択範囲の全・半角スペースを削除 **
    Dim R1, R2, C1, C2, cnt
    cnt = Selection.Count
    R1 = Selection(1).Row
    C1 = Selection(1).Column
    R2 = Selection(cnt).Row
    C2 = Selection(cnt).Column
    
    For r = R1 To R2
        For c = C1 To C2
            Cells(r, c).Replace Chr(-32448), ""
            Cells(r, c).Replace Chr(32), ""
        Next c
    Next r
End Sub

ただ、上記コードだと単一の矩形範囲しか選択できませんよね。ということで、改良コードその2

Sub DelSpaceV3()
    ' ** 選択範囲の全・半角スペースを削除 **
    Dim CL As Range
    For Each CL In Selection
        CL.Replace Chr(-32448), ""
        CL.Replace Chr(32), ""
    Next CL
End Sub

とりあえずこれでまたしばらく運用してみることにします。

(Excel VBA) 選択範囲の全角半角変換

はてな記法の練習も兼ねて。>
はてな記法一覧 - はてなダイアリーのヘルプ

趣味と実益を兼ねたVBA。仕事を楽にするために一応使ってる。
今回は全角→半角変換。まあ基本と言えば基本だが……

Sub W2N1()
    ' ★★ 選択範囲:全角→半角 ★★
    Dim i, j As Long
    '選択範囲
    For i = Selection(1).Row To Selection(Selection.Count).Row
        For j = Selection(1).Column To Selection(Selection.Count).Column
            Cells(i, j) = StrConv(Cells(i, j), vbNarrow)
        Next j
    Next i
End Sub

よりも、下記の方がスマート。

Sub W2N2()
    ' ★★ 選択範囲:全角→半角 ★★
    Dim SR As Range
    For Each SR In Selection
        SR.Value = StrConv(SR.Value, vbNarrow)
    Next SR
End Sub

スマートというのもあるが、不定形の選択範囲(飛び飛びだったり)ではこちらでないとうまくうごかない。

ATOKのユーザー辞書テキストの書式について

概要

この記事では、ATOK for Windows, Mac, Android, iOSでインポート可能なユーザー辞書テキストファイルの書式について解説します。

目次

ATOKのユーザー辞書テキストファイルの書式

1. ATOKユーザー辞書の基本構成

ファイル形式等
ファイル名
  • ATOK for iOSの場合: user_word.txt
  • その他のATOK: 任意の名前.txt
ファイルの内容

f:id:dz_dzone:20170314213728j:plain

サンプル:atok_dic_sample_01.txt (zip圧縮)

!!ATOK_TANGO_TEXT_HEADER_1
!!
じんが	迅牙	固有名詞

この構成の辞書ファイルが使えるATOK
  • すべてのATOKシリーズ
注意点:単語と読み(ひらがな)の長さ
  • 単語:ATOK for Windows = 全角・半角問わず100文字以内
  • 単語:ATOK for Android = 全角25文字以内、半角50文字以内
  • 読み(ひらがな):ATOK for Windows, Mac, iOS = 32文字以内
  • 読み(ひらがな):ATOK for Android = 16文字以内
  • ただし、全角文字の場合、濁点・半濁点は2文字に換算する

  

 

2. 基本構成+コメント+置換候補

デスクトップ版(Windows, Mac)のATOKでは、一つのコメントにつき最大5つの置換候補が利用できる。

ファイルの内容

f:id:dz_dzone:20170314215824j:plain

サンプル

!!ATOK_TANGO_TEXT_HEADER_1
!!
じんが	迅牙	固有名詞	標準型/二脚/四条重工	しない	迅牙・甲	迅牙・真	迅牙・飛天
ぜっと	Z.t.	固有名詞	軽量型/二脚/ナクシャトラ	しない	Z.t.-Λ	Z.t.-Σ	Z.t.-Φ

この構成の辞書ファイルが使えるATOK
使用例
  1. 文字入力時(1):推測候補ウィンドウが出る
     f:id:dz_dzone:20170330111908j:plain 
  2. 文字入力時(2):推測候補ウィンドウに登録単語が出てくる

    f:id:dz_dzone:20170330112148j:plain

  3.  スペースキーを1回押して変換(まだ未確定)

    f:id:dz_dzone:20170330112242j:plain

  4.  スペースキーをもう1回押すと置換候補が出てくる

    f:id:dz_dzone:20170330112338j:plain

  5.  文字確定

    f:id:dz_dzone:20170330112520j:plain

 以上です。