【コピペOK】VBA×テーブル操作入門!行追加もデータ抽出も名前で指定してミスゼロへ

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

「あぁ、またデータの行が増えてる……。VBAの範囲指定を『A1:G50』から『A1:G60』に書き直さなきゃ。あ!ついでに書式も崩れた……もう嫌だ!」

職場で、こんな風に感じたことはありませんか?

実は私も昔、範囲指定をすべて「セル番地(A1など)」で記述していた時期がありました。当時は、列が一つ増えるだけでコードが動かなくなり、その都度修正に追われていたものです。

そんな課題を根本から解決してくれたのが、今回ご紹介する「テーブル(ListObject)」の操作法になります。

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

なぜ「テーブル」を使うと仕事が劇的に速くなるの?

Excelの「テーブル機能」は、VBA(マクロ)の世界では「ListObject(リストオブジェクト)」と呼ばれます。

これを使う最大のメリットは、「データの増減に合わせて、範囲が勝手に伸び縮みしてくれる」こと。 通常のセル指定だと、データが増えるたびにコードを修正する必要がありますが、テーブルならその必要がありません。
これにより、メンテナンス時間は従来の約80%削減できると言っても過言ではありません。

最終行にデータを自動追加するスマートなコード

まずは、データの最下行に新しい行を追加する方法になります。
これさえマスターすれば、手動やコードで「最終行」を探す手間がなくなります。

Sub AddNewRowToTable()
    ' 変数の宣言(箱の準備)
    Dim myTable As ListObject
    Dim newRow As ListRow
   
    ' 「テーブル1」という名前のテーブルをセット
    Set myTable = ActiveSheet.ListObjects("テーブル1")
   
    ' 最後に新しい行を追加
    Set newRow = myTable.ListRows.Add
   
    ' 追加した行の各列にデータを入力
    ' 1列目、2列目…という指定の仕方です
    With newRow
        .Range(1).Value = "2026/03/20" ' 日付
        .Range(2).Value = "事務用品"     ' カテゴリ
        .Range(3).Value = 1500          ' 金額
    End With
   
    MsgBox "新しい行を追加しました!"
End Sub

特定の列データを「見出し名」でピンポイントに取得する

「左から3列目のデータを取得する」のではなく、「『金額』列のデータを取得する」と名前で直接指定できるのがテーブルの大きな強みになります。
これなら、将来的に途中の列が増減しても、プログラムが壊れる心配はありません。

Sub GetDataByHeaderName()
    Dim myTable As ListObject
    Dim targetColumn As ListColumn
   
    Set myTable = ActiveSheet.ListObjects("テーブル1")
   
    ' 「金額」という見出しの列を指定
    Set targetColumn = myTable.ListColumns("金額")
   
    ' その列の2行目(見出しを除いた実データの2番目)の値を取得
    Dim price As Long
    price = targetColumn.DataBodyRange(2).Value
   
    MsgBox "2行目の金額は " & price & " 円です。"
End Sub

まとめ:テーブルはExcelの応用でも便利!

テーブル(ListObject)を導入すると、コードの可読性が高まるだけでなく、何より「仕様変更に強い」ツールに仕上がります。プログラムが安定すれば、予期せぬエラー対応に追われることなく、本来の業務に集中できるようになります。

最初は「ListObjectという名前が長くて扱いづらそう」と感じるかもしれませんが、一度基本の構文パターンを覚えてしまえば、これほど便利な機能はありません。

ちなみに、Power Automate(パワーオートメート)を活用したExcelの自動化においても、テーブル化されていることが前提条件となるケースが多いため、今から覚えておいて損はありません。

ぜひ、今日からExcelツールにテーブル機能を取り入れてみてください!

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


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

この記事を書いた人
ぐー

手取り15万円の会社員でしたが、年間100万円以上節約していました。
株式投資で年間360万円以上投資し、iDeCoも併用しています。
総資産はアッパーマス層に到達しました。
資格は日商簿記3級を持っています。

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

生活を豊かにするため、高配当株投資で年間配当金60万円をめざしています。
現在の年間配当金は30万円ほどです。

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

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

コメント

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