今回はVBA開発において、私が使っているIMEの活用方法を紹介します。
開発の効率化を説明する記事は色々と読んだことはありますが、IME改善の話を私は見たことがないので試しに書いてみました。
IMEとは?
読者の皆さんはIMEに何を使っていますか?
IMEを一言で説明するとパソコンの入力変換ソフトですかね。
有名なものとしては、
- Microsoft IME(←標準のやつ)
- Office IME (Office 2010で終了)
- ATOK
- Baidu (←入ってちゃアカンやつ)
- Google日本語入力
こんなところでしょうか。
ちなみに私は昔からGoogle日本語入力を愛用しています。
なぜGoogle?
なぜ私がGoogle日本語入力を使っているのかというと、今となっては惰性と言わざる終えません。
MSの物もだいぶ改善されてきたようですが、それでもMS-IMEのPCを使うと変換の勝手がいつもと違って使いづらいです。
理由を無理やりひねり出すとしたら、
- 予測変換が優秀で、最新の名詞に対応するのが早い。(アニメのタイトルとかね!)
- Unicodeの辞書データ読み込みに対応している。
- MS-IMEの学習がアホすぎる。
- 無料なのでたくさんのPCにいくらでも入れれる。
- カタカナ語の英語変換ができる。
まぁ今どきのMS-IMEでは改善されているのかもしれないですね。
しかし最近は会社のPCで、Google日本語入力でWordへ入力していると、突然入力できなくなるので変更すべきか否か悩んでます。
というわけで、特別な理由はありません。
使いやすいものを使えば良いと思います。
ユーザー定義辞書の活用方法
IMEでは任意単語を任意の単語に変換するための辞書を自由に作成する機能があります。
たぶん上記のIMEはどれも備えていると思います。
一番有名なのは顔文字辞書とかでしょうか。
カタカナ英語→アルファベット変換の辞書も標準機能だけでは物足りないので愛用してます。
検索してみたら、専門的な色々な辞書があるみたいなので探してみると良い物が見つかるかもしれません。たとえば
さて、私がVBA開発用で辞書に登録しているものには、大きく分けて次のような種類があります。
- よく使う定型文
- よく間違える単語の修正
- たまにしか使わない覚えづらいコード
私のユーザー定義辞書の例
1. よく使う定型文
特に使用頻度が高いのはこの辺か
変換前 | 変換後 |
---|---|
あsf | Application.ScreenUpdating = False |
あst | Application.ScreenUpdating = True |
あえf | Application.EnableEvents = False |
あえt | Application.EnableEvents = True |
dws12 | Dim WS1 As Worksheet, WS2 As Worksheet |
だた12 | Dim Data1 As Variant, Data2 As Variant |
ws1t | Set WS1 = ThisWorkbook.Worksheets("") |
ws2t | Set WS2 = ThisWorkbook.Worksheets("") |
だた1= | Data1 = WS1.Range(WS1.Cells(1, 1), WS1.UsedRange).Value |
だた2= | Data2 = WS2.Range(WS2.Cells(1, 1), WS2.UsedRange).Value |
f11 | For i = Lbound(Data1, 1) To UBound(Data1, 1) Next |
f12 | For j = Lbound(Data1, 2) To UBound(Data1, 2) Next |
d | Data(i, j) |
=だた1 | WS1.Cells(1, 1).Resize(UBound(Data1, 1), UBound(Data1, 2)).Value = Data1 |
=だた2 | WS2.Cells(1, 1).Resize(UBound(Data2, 1), UBound(Data2, 2)).Value = Data2 |
dp | Debug.Print |
sf | ?Selection.FormulaR1C1 |
Application配下のスイッチ関係は、急に追記したりイミディエイトで実行することが多いので一瞬で入力できるように一通り登録しています。
私が書くコードは大抵メモリに格納してから行うのが主となっているので、シート全体のメモリ格納→編集→書出の一連の操作系を行うコードは、かなりのバリエーションが登録されています。
※複数行に渡る一連のテンプレは別途フリーソフトから入力しています。
また、デバッグに使用するDebug.Print や、?Selection.・・・も欠かせませんね。
2. よく間違える単語の修正
変換前 | 変換後 |
---|---|
うbs | Sub |
うんcちおn | Function |
えsぇ | else |
えんぢf | End If |
pろpty | Property |
打ち初めとなるプロシージャ名などは、半角全角を変え忘れて打ち始める事が多いのと、なぜかよくスペルミスするので、自分がよくミスするパターンを一通り登録しています。
半角/全角切り替え忘れならF10でも変換できるが、Fキーは遠いのでタイピング中に押すのは苦手で、瞬時に対応出来ないのでスペースでも対応できるように一通り登録しています。
3. たまにしか使わない覚えづらいコード
変換前 | 変換後 |
---|---|
” | Chr(-1449) |
wq | Chr(34) |
dpb72 | 1113BDA2DAA2DA5D26A3DADD6F4E46D78D7BC08FE39E4784E3350E9213615C86471D9812 |
すりーぷ | Private Declare Sub Sleep Lib "KERNEL32.dll" (ByVal dwMilliseconds As Long) |
わいt | Application.Wait [Now() + "00:00:01"] |
str | NumberFormatLocal = "@" |
cfcd | Cells.FormatConditions.Delete |
いcr | .Interior.Color = vbRed |
一つ、VBAコードですら無いのが混ざってるけど!
覚えづらいコードの代表格としては、予約されてない定数でしょうか。
特に厄介なのはダブルクォーテーションだと思います。
あとはWin32APIの宣言文とか、利用頻度が低くてスペルをふわっとしか覚えていないプロパティとか。
VBEの仕様によりインテリセンスが効かない時があるので、過去に詰まった事があるものが数件登録されています。
ちなみにdpbについては詳しくは説明しないが、よく使う人は登録しておくと結構便利ですよ?
まとめ
この記事を書くにあたって、改めて辞書を見直す良い機会になってとても良かったと思います。
あまり辞書に頼りすぎると、件数が膨大になって逆に使いづらくなりますので登録は程々に。
短すぎる単語をキーにすると事故の元なので、慎重に決めましょう。他の変換との使い分けができるかも大事になってきます。
IME辞書は日常のタイピングに支障をきたすので、私なんてネトゲのチャットで突然Dim i as Longとか誤爆してみたりとか・・・。
長文登録はフリーソフト「Clibor」とかを使ったほうが安全かと思われます。
というわけで、上手くIMEを使いこなして快適なVBA生活を過ごしましょう。
以上
せっかくなので私の辞書データを上げようかと思ったのですが、はてな上にtxtをアップする機能が無さそうでした、
Dropboxとかで公開しても良いのですが、皆さんはどうしてるんでしょうかね?
もし情報をお持ちの方はコメント欄でもTwitterでも良いので、教えてくれると助かります。
それでは、また今度♪ ちゅんちゅん(・8・)