VBA

VBA Access エクセル出力 色付け 罫線

Accessでテーブルからのデータ出力とエクセルのセルの背景色を設定する方法についての備忘録です。

実際に作ったファイルはこちらからダウンロードできます。

出力結果も載せているので、解説と合わせて見ていただければと思います。

サンプルをダウンロード

エクセル参照設定

まずAccessファイルにエクセルを取り込むときに、エクセルを操作しなければなりません。

そのため、エクセル操作ができるよう参照設定を行います。

手順はコードエディターから「ツール(T)」→「参照設定(R)」と移動します。

その後、Microsoft Excel 16.0 Object Libraryを追加してください。

16.0はバージョンに寄ります。

エクセルの色付け 罫線引きサンプルコード

ボタンクリック後のメイン処理を記載します。

処理の流れは以下です。

①レコードセットにテーブルデータを取得
②エクセル出力
③色、罫線を付ける
④保存する

解説

列名とテーブルデータをエクセルに出力する箇所は次で説明します。

ヘッダーの色を付ける

色付けする範囲をRangeで指定しています。

A1セル~A6セルまでに色を付けています。

範囲の開始位置はCells(1, 1)です。

範囲の終了位置はレコードセットの列数で指定しています。

なので、このロジックであれば列数が増えても汎用的に色付けできます。

2~3列目の色を付ける

こちらもRange指定でB2~C16までを色付けしています。

範囲の開始位置はCells(2, 2)でB2を指定しています。

範囲の終了位置はCells(RS_Supplier.RecordCount + 1, 3)でC16を指定しています。

RS_Supplier.RecordCount + 1で範囲の最終行と同じ数字になります。

レコードセットのデータは列含まないため+1しないといけません。

そのためテーブルデータの行数+1をしています。

これもテーブルの行数が増えても汎用的に使えます。

罫線を引く

こちらもRange指定でA1~F16までを色付けしています。

Cells(1, 1), Cells(RS_Supplier.RecordCount + 1, RS_Supplier.Fields.Count)

RS_Supplier.RecordCount + 1で行数

RS_Supplier.Fields.Countで列数になるため、データがある範囲を対象にすることができます。

VBA C# オススメ参考書プログラミングの参考書でオススメの紹介をしていきます。 それぞれ私が使っている言語のみです。 VBAのオススメ参考書をExc...

テーブルのエクセル出力

列名のエクセル出力

解説

エクセルの出力開始の行番号と列番号をStartRowとStartCol で引数で受取ります。

その後、列数分ループしながら列名を順番に出力する処理になっています。

RecordSetデータのエクセル出力

解説

列出力と同様に、エクセルの出力開始の行番号と列番号をStartRowとStartCol で引数で受取ります。

出力開始位置から1セルずつ、右に移動しながら出力していきます。

1ループ(1行分)終了すると次の行へ出力していきます。

出力結果

出力結果はこんな風になります。


・Web Safe Color (カラーチャート)
https://www.scollabo.com/banban/lectur/websafe.html
・参照渡しと値渡し
http://officetanaka.net/excel/vba/tips/tips94.htm
・セルの内容に合わせて列幅/高さを自動調整する
https://www.moug.net/tech/exvba/0050001.html
・【エクセルVBA】表の罫線を引く場所を指定する簡単な方法
https://tonari-it.com/excel-vba-borders/#toc2

関連している記事

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です