MS Access Tips/Sample and VBA and Blog customize etc...

PhraseExpressを使ってコード入力を楽する

コード入力では同じような構文を何度も入力しますよね。こういうときこそ、前回の記事で紹介したPhraseExpressの出番です。

コードでよく使う構文をPhraseExpressに登録しておくと、ものすごく楽できて感動ものです。

PhraseExpressを使ってコード入力を楽する

VBAウィンドウでの事前設定

VBAウィンドウでコードを入力するときにPhraseExpressを使うためには、オプションの設定を変更しておく必要があります。

メニューの[ツール]-[オプション]-[編集]-[コードの設定]の「自動構文チェック」のチェックを外しておいてください。これにチェックが入っているとPhraseExpressが自動入力する途中で構文エラーで止まってしまいますので。

オプション画面の設定

変更しておくのはこれだけです。外しておいても構文エラーの部分は赤文字表示になるのでデメリットは特にないです。

PhraseExpressに構文を登録する方法

PhraseExpressのインストールは前回の記事を参照してください。

定型文入力ツール PhraseExpress がスゴイ!!

PhraseExpressを起動するとタスクトレイに下図のようなアイコンが表示されますのでそれを右クリックして、Edit phrases をクリックします。

タスクトレイアイコンの右クリック

[New local file]を選択して[New Folder]をクリックして[Disciption]に「Visual Basic」と入力します。「Visual Basic」フォルダーができますのでここにVBの構文を登録することにします。

フォルダーの作成

If ... Then 構文

この構文はコーディング中に非常によく出てきますね。この入力を楽しましょう。

上記の設定画面で、「Visual Basic」フォルダーを選択して[New Phrase]をクリックします。そして下記にように設定します。

Discription

Phrase content

Autotext

Autotextの右のコンボボックスで「Execute immediately」(すぐに実行)を選択する。

If...Then構文自動入力結果

これでVBE(Visual Basic Editor)上で If; と入力すると、瞬時に下図のように自動入力されます。(チョー楽ちん(^^♪)

VBE画面の自動入力結果

カーソルの位置が次に入力されるべき位置にきているのに注目してください。これはマクロ関数{#cursor}の威力です。これを記述した位置にカーソルがきます。

Autotextの「If;」の ;(セミコロン)は単語の中に出てこなくて打ちやすい位置にある(ホームポジションの右小指)ということで選択しました。

さらにElse節付きの構文用に

Phrase content

Autotext

ElseIf節付きの構文用に、

Autotext

というのも登録しました。

PhraseExpressに登録する構文ではインデントは入れないようにします。入力する位置でインデントの深さは変わりますので入れておいても無意味ですので。

インデントなしで入力して適当ななタイミングで以前紹介したアドインの Smart Indenter で一発で整形します。PhraseExpress と Smart Indenter の組み合わせ、最強です。

VBAコードを自動インデントしてくれるアドオン - hatena chips

For ... Next 構文

これもよく出てきますね。登録しましょう。

Phrase content

Autotext

Fori; と入力すると下記のように自動入力されます。

For...Next構文自動入力結果

For文を使うときはカウンター変数は i を使うというのが慣習なので決め打ちでいいでしょう。

しかし、i以外も使いたい、開始値、終了値が未入力なのはちょっと、という場合はPhraseExpressのマクロ関数の「入力フォーム」機能の出番。

登録したAutotext(例えば for;)を入力すると

For...Next構文入力フォーム

のような入力フォームが出現して、そこで、
j{Tab}0{Tab}ubound(aryV){Enter}
と入力すると下記のように入力されます。

For...Next構文入力フォームの入力結果

どうですか。マクロ関数の実力、スゴイ!!でしょう。登録するPhraseは下記です。

Phrase content

Autotext

マクロの意味を簡単に解説しますと、

#formで入力フォームを定義します。-text の後に入力フォームのタイトルバーの標題を、-width の後に入力フォームの幅をPixcel単位で指定します。

フォーム内にテキストボックスを表示します。-textの後に標題、-def の後に規定値を指定します。-single は1行しか入力できないという意味です。

#SETTEMP で一時変数を宣言します。-name の後に変数名 -content の後に変数に代入する値を指定します。ここに{#formeditbox…}を記述してます。このようにマクロは入れ子にできます。これでテキストボックスに入力したものが一時変数に代入されます。

一時変数に格納されている値を出力します。

入力フォームではテキストボックス以外にもチェックボックスやコンボボックスも表示できます。

エラー処理

エラー処理コードは追加しておくべきですが、ついつい面倒なので手抜きしがちです。これもPhraseExpressに登録して一発で入力できるようにしておくといいですね。

Phrase content

Autotext

er; と入力すると下記のように自動入力されます。たった3文字入力するだけですので、もうエラー処理の記述が面倒という言い訳はできませんね。

For...エラー処理の自動入力結果

さて、新規にモジュールを作成するときはこれでいいですが、すでに入力済みのモジュールにエラーコードを追加したいというときもありますよね。

Phrase content

Phrase に上記のように記述します。これで選択範囲の前後にエラー処理コードを挿入できます。選択してから実行する場合は、Autotext は使えませんので、ショートカットキー(Hotkey)で実行します。下図は Ctrl + Alt + E で実行するように設定してます。

選択範囲のエラー処理の設定

フォルダーに対する設定

最初に「Visual Basic」フォルダーを作成してそこにコード構文を登録しましたが、このフォルダー自体にもいろいろ設定ができます。

Hatenaの場合、Visual Basicコードを入力するのはAccess、Excel のVBEとエディターのGPad上だけなので、それ以外のときに自動入力が呼び出されても困ります。フォルダー毎(またはPhrase毎)に自動入力できるプログラムを指定したり、除外したりできます。

設定画面のExecute only in specific program にチェックをいれて、プログラムを指定します。起動中のプログラムを選択できますので指定したいプログラムは事前に起動させておいてください。さらにこまかく対象ウィンドウもタイトルから指定できます。画像はAccessとExcelのVBAウィンドウ、エディターのGPadを指定した例です。

自動入力の対象プログラムの設定

フォルダーに設定するとフォルダー内のすべてのPhraseに設定されます。Phrase毎に設定することも可能です。

また、フォルダーに Hotkey や Autokey を設定すると、フォルダー内のPhraseをポップアップメニューから選択できるようになります。

フォルダー内のPhraseをポップアップメニュー

まとめ

他にもよく使う構文やバッチ処理を登録しておくと入力効率が飛躍的にアップするでしょう。

他にもいろいろなマクロ関数がありますので下記を参照してください。

Macro functions

これらを使いこなせば、まだまだいろいろなことができそうです。

どうでしょうか。もう、スゴイ!!!としかいいようがないですね。

感心するのはこれだけ高機能、多機能でありながら、インターフェイスが非常によく考えられていて設定で迷うことがそれほどない(英語にもかかわらず)ということです。

hatenaはまだ、使い始めて2、3日ですのですべての機能を把握しきれてないので、他にもこんな使い方があるとか、こんな風につかっているなどというものがありましたらぜひコメントしてください。


拍手する

Leave a reply






Trackbacks

trackback URL
http://hatenachips.blog34.fc2.com/tb.php/450-1d19959c
該当の記事は見つかりませんでした。