Excel VBAの使い方/マクロ・VBA

より汎用的な罫線マクロを作成しよう(3ページ目)

「セルの罫線を引くマクロを読み解いてみよう」で作成した「罫線を引く操作」のマクロを「スリム」で「汎用的」なマクロに編集します。少々手の込んだセル参照なども体験できます。

緑川 吉行

執筆者:緑川 吉行

エクセル(Excel)の使い方ガイド


罫線を引くセル範囲を自動認識させる

今度は、事前にセル範囲を選択する操作も不要なマクロに編集してみましょう。罫線を引きたいセル範囲内の任意のセルを選択しておき、そのセルを含むアクティブセル領域を利用して、罫線を引くセル範囲を自動認識させるのがポイントです。

アクティブセル領域を参照するには、RangeオブジェクトのCurrentRegionプロパティを使用します。Selectionプロパティは、現在選択されているセルを参照するので、選択されているセルを含むアクティブセル領域、つまり罫線を引きたいセル範囲が参照できる、というわけです。


しかし、今回のように「表タイトル」も入力されている場合、表タイトルの範囲までアクティブセル領域として選択されてしまいます。

タイトル行以外を選択する工夫

そこで、次のように工夫します。まず、アクティブセル領域を選択してから、タイトル行の1行分だけ選択領域を小さくしたセル範囲を選択します。これでは、罫線を引くセル範囲の1行分上のセル範囲を選択している状態なので、選択領域を1行分下に移動します。


選択領域を小さくしたセル範囲を選択するにはResizeプロパティを使用します。引数RowSizeに、調整後のセル範囲のサイズを指定します。今回は1行分だけ小さいサイズにしたいので、「選択されているセル範囲の行数」から1引いたサイズを指定します。
※「選択されているセル範囲の行数」は、選択されているセル範囲のすべての行をRowsプロパティで参照してから、RowsコレクションのCountプロパティを使用して行数を取得します。
※列のサイズを調整するには、Resizeプロパティの引数ColumnSizeに列数を指定します。


選択範囲を1行分下に移動するにはOffsetプロパティを使用します。1行分だけ下に移動したいので、引数RowOffsetに「1」を指定します。
※上側に移動したい場合は、マイナスの値を設定します。
※列方向に移動する場合は引数ColumnOffsetを使用します。


これで、罫線を引きたいセル範囲内のセルをひとつ選択するだけで、タイトル行を除いたセル範囲に罫線を引くマクロに編集できました。試しに、別なセル範囲にデータを入力して、マクロを実行してみましょう。
※ResizeプロパティのステートメントとOffsetプロパティのステートメントは、1行にまとめることができます。1行にまとめると「Selection.Resize(Selection.Rows.Count - 1).Offset(1).Select」となります。
【編集部おすすめの購入サイト】
楽天市場で Excel 関連の商品を見るAmazon で Excel 関連の商品を見る
  • 前のページへ
  • 1
  • 2
  • 3
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます