和風スパゲティのレシピ

日本語でコーディングするExcelVBA

ユーザー辞書(IME単語登録)にコードを登録する

日本語変数・関数にとって、最大の敵は「入力のめんどくささ」です。


翻訳というタイムロスがない分、トータルのコーディング速度が遅いとは思いませんが、入力自体の面倒さで言えば、半角変数より面倒なのは間違いないです。

IMEを切り替える回数が半端ないですからね。


この対策として、「日本語入力をOFFのまま日本語変数を扱う」ために、
アプリケーションハンガリアン(英語の接頭詞+日本語変数名)の活用を紹介しました。

アプリケーションハンガリアン日本語変数の入力アニメ

↑は一度もIMEをONにしていません。是非ご活用を。



さて、これとは全く逆の視点で、
日本語入力をONのまま、英語部分を入力する
という方法もあります。

その方法がタイトルの通り、「ユーザー辞書の活用」です。


要するに、

ふぁん ⇒Function

のように変換を登録し、それでコードを入力していくわけです。


こちらはめんどくささを軽減するどころか、逆にコーディングを簡単で高速にもできるため、別に日本語変数ユーザーでなくても、プロのプログラマでも活用している人は多いと思います。(というか必須?)


しかし、意外とこのことを解説している初心者向けサイトがないため、
全く使っていない人も、多いのではないでしょうか。


使いこなせば、むしろ半角入力より高速でコーディングができますし、
構文の正確なスペルを暗記する必要を無くす効果もあります。

是非使っていきましょう。


やり方と言っても変換辞書なので、自分が打ちやすい登録をするだけなのですが、
どんなコードを登録すると良いかについては、サンプルを紹介していきますね。

頻出キーワード

fn Function
えw End With
pg Property Get
おえ On Error Resume Next


まずはストレートに、頻出キーワードの短縮ですね。


冒頭の例では「ふぁん」としていましたが、
ユーザー辞書は子音でも登録ができます

頭文字の子音をつなげておくと、呼び出しが簡単なうえに、
普段の文章の汚染をかなり抑えられます。


ユーザー辞書を活用する場合は、普段の文章の汚染は気をつけましょう。

「いつもOn Error Resume Nextわになっております。」

のように、唐突なダメプログラマ宣言をお客様に送ることのないよう、
十分に注意してください。

変数の定義・宣言系

あsb  As Boolean 
あsl  As Long 
あss  As String 
dみ Dim i As Long
dmr Dim R As Long
dmc Dim C as Long

頻出キーワードの延長の話ですが、日本語変数を扱う場合は、
このあたりの変数宣言に関する登録は必須です。

なぜなら、変数名を打ち終わった段階では、IMEが大抵ONだからです。

型宣言も、IMEONのまま済ませてしまいましょう。


あとは、よく使う変数名はDimも含めて登録しちゃうと楽です。


ちなみに単語登録のコツとして、前後に半角スペースを入れておくのがミソです。
「 As Boolean 」と、両側に半角スペースを入れます。

※はてなブログの仕様で、↑の表は全角スペース。VBAではそれでも問題なさそう。


目的は「スペースキーの打鍵回数を半角入力時と揃える」ことと、
「入力後に余計なメンバー表示などが残ることを防ぐ」ことです。

引数の指定や、ステートメントを丸ごと

rcc .Range(.Cells(),.Cells())
ftd Format(Date,"yyyymmdd")
spb .SpecialCells(xlCellTypeBlanks)
いcr .Interior.Color = RGB(
いfmsy If MsgBox("", vbYesNo) = vbYes Then
いfmsん If MsgBox("", vbYesNo) = vbNo then


定型文と化しているコードは、変数や引数、プロパティ、Ifなどのステートメントも、丸ごと登録しておくと便利です。

日本語変数使用時は「.」の打ちづらさに困ることが多いので、
プロパティを登録するときは前後の「.」も入れておきましょう。

IMEをONのままゴリ押し & 切り替え忘れ時のリカバリ

ふんcちおん Function
こんst Const
うぃth With
えんどぃth End With
えんぢf End If
tるえ TRUE


日本語変数ユーザーにとって重要なのがこれです。

IMEをONにしたまま英語をフルタイプしても、正しくコードが入力できるようにしておくということです。


「IMEを切り替えずにゴリ押ししたい」という意図的な使用と、
「まちがってONのままタイプしてしまった際のリカバリ」の両方に使えます。

私は特に「End ○○」系をよくミスるので…


前述と同様、「半角スペースを単語に含めること」が必須になります。

スペースキーを押す回数が揃っていないと、効果が片手落ちですからね。

イミディエイトウィンドウでの実行用

あcc ActiveSheet.Copy
svsv Selection.Value = Selection.Value
scrt Application.ScreenUpdating = True


メインコードのコーディングだけでなく、
イミディエイトウィンドウに入力する即実行コードの登録も便利です。

活用している方は是非。




ということで、ユーザー辞書の活用例の紹介を終わります。

ユーザー辞書は、最初は登録が面倒かもしれませんが、
軌道に乗り始めればコーディングスピードがどんどん上がっていくと思います。

ガンガン使っていきましょう。