Excel VBAでブロック単位にデータを整形する方法|絶対座標×相対座標の応用術

Excel VBAでブロック単位にデータを整形する方法|絶対座標×相対座標の応用術

記事
IT・テクノロジー
Excel VBAを用いたデータ処理において、「絶対座標」と「相対座標」の概念を上手に使うことで、柔軟かつ効率的な処理が可能になります。特に、ブロック単位でデータを整形・出力したい場合には、非常に有効な手法です。

今回は、以下の図のように 縦方向に並ぶデータブロックを、横方向・縦方向に整然と展開して出力する方法をご紹介します。
■取得元のデータ
タイトルなし.png

■出力先のデータ(処理したいレイアウト)
タイトルなし1.png


■ 処理したいレイアウトの概要
・左側(列B〜G)に A1〜A3 ブロックが縦に並んでいます。

・同様に中央(列I〜N)には B1〜B3、右側(列P〜U)には C1〜C3 が縦方向に並んでいます。

・各ブロックは、5列×5行の構造(ヘッダー+データ)になっています。

これらのブロックを、出力先のシートでは横方向・縦方向に並べ直したいのです。

■「絶対座標」と「相対座標」の考え方をロジックに応用
・ 絶対座標とは?
Excel全体の座標(例:ブロックA1は B6セルから始まる)を「絶対座標」とします。

出力先のループは、絶対座標でブロック位置を制御します。

・相対座標とは?
各ブロックの中における相対的な位置(例:先頭行はヘッダー、2行目以降はデータ)です。

各ブロックの内容を相対座標で読み取り・書き出しします。

■ VBAのループ構造のイメージ
タイトルなし3.png
このように、外側に絶対座標のループ、内側に相対座標のループを持つことで、どんなに多くのブロックがあっても整然と出力することが可能になります。



■ このような場面に最適
・データベース形式のExcelデータを、レポート形式で整形出力したい

・同じレイアウトの複数ブロックを、分析や印刷用に並べ直したい

・自動帳票出力や、CSV→Excel整形のVBAツールを作成したい

■ まとめ
VBAでのデータ整形において、絶対座標×相対座標という考え方を取り入れると、複雑なデータでも美しく整形できます。
この記事を参考に、あなたのExcel業務にもぜひこの発想を取り入れてみてください。

■エクセル作業の自動化、効率化の商品サービスを出品しています。


■他にも下記の動画の出品サービスを出品しています。

興味がある方はお気軽に相談してください。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら