ExcelVBA・SQL|SQL文をきれいに見やすく改行する方法や2つのコツ

エクセルVBA VBAでSQL



VBAコードやSQL文を見やすく改行していますか?

SQL文の改行コードの方法は

  • 「半角スペース+_(アンダーバー)」を使う。
  • 「&」を使って変数に代入する。

見やすい改行のコツは

  • インデントをつける。
  • 1行は80文字までにする。

見やすいコードを書けるということは、それだけ頭の中も整理されていると言っても過言ではありません。

今回はVBAのコードやSQL文をきれいに見やすく改行する方法やコツについて解説していきますね☆



ExcelVBA・SQL|コードをきれいに見やすく改行する方法・5つのコツ

以下のコードを見てください。パッと見てなんだか見にくいですよね。

vSQL = "SELECT 商品コード,商品名,価格,出荷元,[価格]*1.1 AS 税込み価格 FROM 商品マスタ WHERE Format(入荷日,'yyyym')='20214' ORDER BY 価格 DESC;"

長ったらしいSQL文を1行で記述しているので、とにかく読みにくい。

というか、読みたくない笑

これを改行するだけで見やすくなります。それではやっていきましょう。

まずは、SQL文の改行の方法は、2通りあります。

  • 「半角スペース+_」アンダーバーを使う。
  • 「&」を使って変数に代入する。

それでは、それぞれの方法について説明していきますね☆

SQL文を改行する方法1:「半角スペース+_(アンダーバー)」を使う

改行の方法の1つ目は、改行したい箇所で「半角スペース+_(アンダーバー)」を記述することです。

その際に、SQL文は1行ごとに両端を「”(ダブルクォーテーション)」で囲んでください。

さらに、2行目以降は先頭に「&」を付けてください。

そうすると先ほどのSQL文は以下のようになります。

【半角スペース+アンダーバーで改行したSQL文】

vSQL = "SELECT 商品コード,商品名,価格,出荷元," _
       & "[価格]*1.1 AS 税込み価格 " _
       & "FROM 商品マスタ " _
       & "WHERE Format(入荷日,'yyyym')='20214' " _
       & "ORDER BY 価格 DESC;"

注意点としては、半角スペース+アンダーバーで改行できるのは24回までです。

それ以上使おうとすると、「行継続文字( _)を使いすぎています。」というメッセージが表示されてしまいます。

改行を25回以上したい場合ば、方法2を使います。

SQL文を改行する方法2:「&」を使って変数に代入する。

2つ目の改行方法は、「&」を使って1行ごとに変数に代入することです。

1行ごとに変数に入れていく感じですね。

そうすると以下のように見やすくなります。

【「&」を使って変数に代入したSQL文】

vSQL = "SELECT 商品コード,商品名,価格,出荷元,"
vSQL = vSQL & "[価格]*1.1 AS 税込み価格 "
vSQL = vSQL & "FROM 商品マスタ "
vSQL = vSQL & "WHERE Format(入荷日,'yyyym')='20214' "
vSQL = vSQL & "ORDER BY 価格 DESC;"

変数vSQLに1行ごとに代入していき、&で連結させていきます。

この場合も、方法1と同様に改行した各行ごとに両端を「”(ダブルクォーテーション)」で囲むのを忘れないようにしてくださいね。

改行のコツ1:インデントをつける

改行の方法をお伝えしてきましたので、今度はSQL文の改行のコツを紹介していきますね。

きれいに改行する1つ目のコツはインデントをつけることです。

インデントとは、文章の行頭に空白を挿入して先頭の文字を右に押しやることです。

インデントをつけると、どこまでが何の処理なのかパッと見て判断することができます。

たとえば、以下のようにSQL文を含んだコードを「インデント無し」と「インデント有り」とで比較した場合、「インデント有り」の方が処理の区切りが分かりやすくなります。

【インデント無し】
Dim vSQL As String
vSQL = "SELECT 商品コード,商品名,価格,出荷元," _
& "[価格]*1.1 AS 税込み価格 " _
& "FROM 商品マスタ " _
& "WHERE Format(入荷日,'yyyym')='20214' " _
& "ORDER BY 価格 DESC;"
cn.Execute vSQL


【インデント有り】
Dim vSQL As String
vSQL = "SELECT 商品コード,商品名,価格,出荷元," _
       & "[価格]*1.1 AS 税込み価格 " _
       & "FROM 商品マスタ " _
       & "WHERE Format(入荷日,'yyyym')='20214' " _
       & "ORDER BY 価格 DESC;"
cn.Execute vSQL

ちなみにインデントはTabキーを押すことでつけることができます。

改行のコツ2:1行は80文字までにする

きれいに改行のコツの2つ目は、1行の文字数を80文字までにすることです。

80文字というとこんなものです。

vSQL = "SELECT 商品コード,商品名,価格,出荷元,[価格]*1.1 AS 税込み価格 FROM

このくらいの長さならギリギリ許せますよね。

1行がこれ以上の文字数なると、読みにくくなるのは容易に想像できますね。

文字数のカウントはVBEの画面では画面上部の中央付近に表示されていますので参考にしてください。

まとめ

今回はSQL文を見やすく改行方法や見やすく改行するコツについてお伝えしてきました。

SQL文の改行コードの方法は

  • 「半角スペース+_(アンダーバー)」を使う。
  • 「&」を使って変数に代入する。

見やすい改行のコツは

  • インデントをつける。
  • 1行は80文字までにする。

他人に見せる場合はもちろん、自分で書いたコードのデバック作業や後日のコード改修などの際に、見やすく改行されているかどうかで作業のしやすさが全然違ってきます。

VBAやSQL文はもちろんのこと、プログラミングする際にはぜひ今回の記事を参考にしてくださいね☆




VBAでSQL
ブイサバ【Excel VBAサバイバル】~とりあえずここに来れば解決できる~

コメント

タイトルとURLをコピーしました