【VBA】コードの「はみ出し」を解消!アンダースコア1つで実現する美コード作成術

【業務効率化】VBA
スポンサーリンク

こんにちは!ぐーです。 

日頃からVBAで業務効率化に取り組んでいると、ふとこのような瞬間に直面することはありませんか?

「おや、このコード……右に長くなりすぎているな」

夢中で記述していると、つい1行に情報を詰め込みすぎてしまい、画面の端を越えて「横スクロール」を強いられる状態になってしまうことがあります。

実は、この状態は「バグ(不具合)の温床」になりかねません。画面外に隠れた部分のミスは、視覚的に見落としやすいためです。

そこで今回は、長いコードを劇的にスッキリさせる記号、「 _ (アンダースコア)」を活用した改行テクニックをご紹介します。

【業務効率化】VBAの記事を見る

なぜコードに「改行」が必要なのか?

例えば、小説を想像してください。改行が一切なく、右に延々と文字が続いていたら読む気が失せますよね? プログラムも同じです。

プログラムもそれと同様です。「人間が一目で理解できる適切な長さ」に収めることが重要です。

このひと工夫だけで、未来の自分やチームメンバーがコードを保守(メンテナンス)する際の負担がぐっと軽くなります。

魔法の記号「半角スペース + アンダースコア」

VBAでは、行の最後に「半角スペース」と「_(アンダースコア)」を入れることで、「この命令は次行へ継続している」と認識させるルールがあります。

百聞は一見に如かず。実例を見てみましょう。

【Before】改行なしの長いコード

これは、メッセージボックスを表示する単純なコードですが、長すぎて読みにくいです。

Sub LongCodeSample()
    MsgBox "データの集計が完了しました。処理件数は500件です。エラーはありませんでした。ファイルはデスクトップに保存されています。", vbInformation, "処理完了のお知らせ"
End Sub

【After】アンダースコアで改行したコード

ここで「 _」の出番です。意味の区切りで改行を入れてみましょう。

Sub CleanCodeSample()
    MsgBox "データの集計が完了しました。" & _
          "処理件数は500件です。" & _
          "エラーはありませんでした。" & _
          "ファイルはデスクトップに保存されています。", _
          vbInformation, _
          "処理完了のお知らせ"
End Sub

いかがでしょうか?

「メッセージの内容」「アイコンの種類」「タイトル名」の3要素が縦に並び、一目で構造を把握できるようになったはずです!

【さらに応用】メッセージ自体も改行してよみやすくする!

ここで、さらに一歩進んだテクニックをご紹介します。

 先ほどのアンダースコアは、あくまで「コードの見た目」を整えるためのものでした。しかし、これだけでは実行時に表示されるメッセージは長いままです。

「表示される文章自体も改行して、もっと読みやすくしたい!」 そんな時は、改行コードであるvbCrLfを組み合わせましょう。

Sub SuperCleanCode()
    MsgBox "データの集計が完了しました。" & vbCrLf & _
           "処理件数は500件です。" & vbCrLf & _
           "エラーはありませんでした。", _
           vbInformation, _
           "処理完了のお知らせ"
End Sub

【注意点】直前の「半角スペース」をお忘れなく!

初心者が陥りやすいポイントですが、アンダースコアを単体で記述するとエラーが発生します。必ず「半角スペース + アンダースコア」をセットで運用しましょう。

  • × 不可: MsgBox “完了”&_ (スペースがないのでエラー)
  • 〇 優良: MsgBox “完了” & _ (スペースがあるのでOK!)

【参考】他の言語(Pythonなど)ではどうなの?

ちなみに、最近人気のPythonでは、カッコ () の中であれば、特別な記号なしで改行が可能です。

また、行末に \(バックスラッシュ)を置いて継続を示すこともあります。

プログラミング言語ごとに異なる「作法」を比較してみるのも、面白い発見がありますね。

まとめ

VBAでコードが長くなったら、「半角スペース + アンダースコア」。

これだけで、コードの可読性は劇的に向上します。「ただ動くコード」から「読みやすく美しいコード」へ。 ぜひ今日からのプログラミングに取り入れてみてください!

【業務効率化】VBAの記事を見る


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でも、年間100万円以上の節約・資産管理・スキルアップで新NISAで年間360万円投資し、iDeCoもフル活用しています。日商簿記3級持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、稼ぐ力を高めるITスキルについて発信しています。

生活を豊かにしたくて、高配当株投資で年間配当金60万円をめざしています。現在は年間配当金25万円以上達成!

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

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