pickup

目次

Excelでテーブルを作成する

こんにちは。伊川(@naonaoke)です。

ExcelでもACCESS同様に、テーブル化をすることができます。

最近では、Power Queryも、Excelをテーブル化することにより、様々は処理がカンタンにできます。

テーブル化のメリット
1. 表の管理が楽になる
2. すばやく数式を入力できる
3. データの入力規則も自動設定される

今回は、VBAでExcelをテーブル化します。

問題提起

(株)IKAWAの柄久 瀬瑠子(エク セルコ)は、上司から下記のような依頼を受けました。

Excelでデータ処理をするときに、VBAで、テーブル化できないか?

どのようにVBAのコード

記載するのだろうか?

解決策

回答
sesuo2.jpg
ListObjectを使えば
テーブル化は簡単にできます。

 

ListObject

あまり知られていないような気もしますが、このコードは便利です。

以前に紹介した、CurrentRegionプロパティよりも便利です。

ただし、テーブル化が便利ということを理解しなければ、使うことがないコードです。

ListObject 作成手順その1 データベース確認


競馬のデータになります。

適当なデータを抜粋しています。

なにも細工のされていない、Excelのデータになります。

ListObject 作成手順その2 テーブル化する


上のコードを実行します。


カラフルなExcelになりました。

それだけではありません。

テーブル化されました。

Sub test()
Range("A1").Select
ActiveSheet.ListObjects.Add

End Sub

 

ListObject 作成手順その3 テーブルをすべて選択する

上のコードを実行します。


データベースのみが選択されました。


※ここで利用しているRangeは、Range(”A1″)で利用している意味でのRangeとは違います。
表全体という意味です。
この辺が、プログラムの難しいところです。
Sub test2()
ActiveSheet.ListObjects(1).Range.Select
End Sub

 

ListObject 作成手順その4 見出し以外のデータを選択する


上のコードを実行します。


上の図では、赤枠以外、つまり、見出しを除くデータのみが選択されました。

Sub test3()
ActiveSheet.ListObjects(1).DataBodyRange.Select

End Sub

 

ListObject 作成手順その5 データベースの最後に追加する


上のコードを実行します。


少し見えにくいかもしれませんが、一番下に薄く青いラインが引かれています。

今回は値を追加するコードは記載していませんが、選択されているのがわかると思います。

 

Sub test4()

Range("A1").Select
Selection.ListObject.ListRows.Add
End Sub

 

ここがポイント

ここがポイント
Function8.png
Power Query等をりようしていると人は理解できると思いますが、テーブル化は便利です。あたかもACCESSのようにExcelを扱うことができます。このテーブル化もいろいろな技が使えます。

 

 

 

まとめ

今回のまとめ
sesuko3.jpg
今回は紹介していませんが、テーブル化されたExcelにデータを追加する方法などは、クラスモジュールなどで追加することができます。クラスモジュールは、またの機会に紹介します。

 

今回のサンプルファイルは、No78です。

毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。

  • なんで作動かないの?
  • もうやだ!VBAなんか嫌い!
  • ネットで調べても情報がない!

必ず作動するコードが、ここにあります。

スポンサーリンク

Twitterでフォローしよう

おすすめの記事