ACCESS VBAでコードを記述しているととても長くなってしまうことがあります。
あまりに長いと一画面に収まらないので可読性が低く、ミスの原因となってしまいます。
長いコードは適切な長さで改行した方が読みやすいことは間違いありません。
今回は、VBAの長いコードを改行する方法をご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは基本機能だけでも十分便利ですが、VBAを使うことで格段に使いやすいデータベースを作成可能です。
この記事ではACCESSでのVBAの使い方をご紹介していきます。
VBAをコードの途中で改行するなら_(アンダーバー)を利用
VBAをコードの途中で改行する場合は _(スペース+アンダーバー)を利用します。
改行前の行にスペース+アンダーバーを入れて改行するだけです。
以下のVBAのコードを例に説明します。
[Forms]![売上伝票入力]![通常税率対象小計] = Nz(DSum("金額", "TRN_売上明細", "売上ID = " & uriage_id & " and 消費税率ID = " & DLookup("消費税率ID", "MST_消費税", "通常税率 = true and 削除 = false") & " and 削除 = false"))
Dsum関数の引数指定にDLookUp関数を使っているため、かなり長いので読みにくいです。
画面上も見切れてしまいますね。
では改行してみましょう。
[Forms]![売上伝票入力]![通常税率対象小計] = _
Nz(DSum("金額", "TRN_売上明細", _
"売上ID = " & uriage_id & _
" and 消費税率ID = " & DLookup("消費税率ID", "MST_消費税", "通常税率 = true and 削除 = false") & _
" and 削除 = false"))
このように区切りの良いところで _(スペース+アンダーバー)を入れるだけで改行して読みやすくなります。
特に条件式などが長くなる傾向が強いため、複数の条件を設定する際の切れ目などわかりやすいところで改行するとコードの可読性が高まるでしょう。
今回も、複数の抽出条件を設定しているため、Andの前で改行しています。
改行時の注意点
このように、スペース+アンダーバーで改行できるのでそれほど難しくはないのですが、注意点があります。
それは、改行できない場所があるということです。
テキストの途中で改行する際は”(ダブルクォーテーション)を追加して&でつなぐ
改行ができない最たる例はテキストの途中です。
“(ダブルクォーテーション)で囲まれたテキストの途中で改行しようとするとエラーになってしまいます。
例えば、上記のコードを以下のように改行してみましょう。
[Forms]![売上伝票入力]![通常税率対象小計] = Nz(DSum("金額", "TRN_売上明細", _
"売上ID = " & uriage_id & _
" and 消費税率ID = " & DLookup("消費税率ID", "MST_消費税", "通常税率 = true _
and 削除 = false") & _
" and 削除 = false"))
“”通常税率 = true and 削除 = false””の途中で改行を追加しました。
すると、

というエラーが出てしまいます。
これは”(ダブルクォーテーション)で囲まれた範囲の中ではスペース+アンダーバーを文字として読み込んでしまうためです。
そのため、テキストの途中で改行する際は”(ダブルクォーテーション)を追加して、テキストを2つに分け、&でつなぎましょう。
以下のように修正することでテキストの途中でも正しく改行できます。
[Forms]![売上伝票入力]![通常税率対象小計] = Nz(DSum("金額", "TRN_売上明細", _
"売上ID = " & uriage_id & _
" and 消費税率ID = " & DLookup("消費税率ID", "MST_消費税", "通常税率 = true" & _
" and 削除 = false") & _
" and 削除 = false"))
オブジェクトの指定の途中、関数の記述の途中では改行しない
テキストの途中以外に、オブジェクトの指定の途中、関数の記述の途中でも改行はできません。
例えば、以下のようにフォームのオブジェクトを指定する途中で改行しようとするとエラーになってしまいます。

また、以下のように関数の途中での改行もできません。
以下ではNz関数の途中で改行してエラーとなっています。

このように改行方法にもコツがありますので注意してください。
以上、VBAの長いコードを改行する方法をご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に300以上のACCESSデータベースの開発・修正実績のあるはこにわガジェット(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

最後までお読みいただき、ありがとうございました。
