『Excel VBA 表計算とプログラミング学習サイト』では、アフィリエイトプログラムを利用して商品を紹介しています。

【Excel】シートの特定部分をテーブルに変換

Excel には、ワークシートの特定部分だけを他と切り離して独立したデータのかたまり(テーブル)として扱う機能が備えられています。1つのデータベースをテーブル化することで、集計や抽出が簡単な操作で行えるようになるという利点があります。でも、それはテーブル機能に秘められた潜在能力のほんの一端に過ぎません。
 
VBA を用いてより複雑なデータベースシステムを作るときに、このテーブル機能は途轍もない威力を発揮するのです。VBA ではテーブルを1つのオブジェクト (ListObject) として扱います。そしてオブジェクトである以上、シート上のセル番号とは無関係に、テーブル内部の任意の行や列を簡単に拾ってくることができるので、複数のテーブルをあちこち自在に参照しながら要素同士をつなぐといったプログラムを驚くほど簡潔なコードで表すこともできます。

ちなみに、こばとが作っているソフト KOBATO’s BOOK もこの ListObject を核に構成されています。下の表のデータも KOBATO’s BOOK の内部に組み込まれた Profile Editor というソフトが出力しています。それでは、こばとと一緒に Excel の テーブル機能について学んでいきましょう。最初は基本から。何事もステップ・バイ・ステップです。今回は次のような表を使うので、自分であれこれいじってみたい人はコピーしてセル A1 に貼りつけてください。

氏名 性別 年齢 住所
矢壁 祐泰 51 東京都千代田区相沢 1-40-12
江寺 章昭 22 東京都中野区川余郷 1-15-1
西東 結奈 52 東京都杉並区西神立 6-32-8
竹延 隆紀 42 東京都江東区大蛇 4-56-6
春夏冬 睦月 60 東京都新宿区毛塚 5-36-6
鴛原 隆子 31 東京都足立区赤荻 1-46-9
弓取 季美花 17 東京都大田区内守谷きぬの里 6-30-10
信濃小路 律也 51 東京都葛飾区九万坪 6-23-2

【Excel】セル範囲をテーブルに変換

シート上にテーブルを作る方法はとっても簡単です。Excel 2013 ではデータの入っている適当なセルを選択した状態で [ホーム]、[テーブルとして書式設定] の順に選択します。すると「どんなデザインがいいのかな?」というメニューが下にずらずら並ぶので、好きなスタイルの表を選択しましょう。そのあとに1つダイアログボックスが表示されますが、何もいじらずに [OK] だけクリックしてください。
 
Excelテーブル変換

これでテーブルが出来上がりです。
一番上の部分だけが見出しとして扱われ、残りは全部データです。
テーブルに化けた表にはちょっと見慣れない [▼] ボタンが付いていますね。ボタンがあれば押してみたくなるのが人情というもの。「何がおこるかな~」と歌いながら年齢の横にある [▼] を「ぽちっ」と押してみましょう。またまたメニューが現れます。ここでは [昇順] という項目をぽちっとします。
 
テーブルで年齢順に並べる

な、な、な、なんと!
年齢が若い順にデータが並び替えられましたよ!
え? 大げさ? そうですかね?
まあとにかく、これと同じことを普通のシートでやろうと思ったら列を指定して [データ] ⇒ [並び替え] という手順を踏むことになるのです。これだけなら大した違いに思えないかもしれませんが、何度も同じ作業を繰り返していたりすると、このひと手間の違いが地味に効いてくるのです。それに項目ごとに [▼] が付いているので、こちらのほうがやはり操作感覚もフレンドリーですよね。次はさらにテーブルの有難味がわかる機能です。性別の横にある [▼] をクリックして、下にある [男] というチェックボックスのチェックを外します。すると …
 
テーブルで男性チェックを外す

な、な、な、なんと!
男性のデータが消えて、女性ばかりのリストに変化しましたよ!
まあ、他にも色々なことができますけど、それはこれから追々学んでいきましょう。次回は今回と同じデータを使ってテーブルのデザイン変更についてお話します。実際にデータを使って練習している人は、そのままシートを保存しておいてくださいな。それでは、また次回お会いしましょう。

コメント