エクセルマクロの挫折しない勉強法や仕事で使いこなすコツを徹底解説!
講師の寺澤さんはこれまでの20年間マクロを使って様々な業務を効率化させるなど、数多くの社内表彰を受けてきました。例えば、数十万行の元データから分析用データを毎週作成する作業。人の手だと1週間かけても終わらない作業ですが、マクロを使うと30分程で完成してしまいます。さらに自ら社内講座も主催、全くマクロを触ったことがない数百人を指導し、満足度98%と人気を博しています。近著『4時間のエクセル仕事は20秒で終わる』では、そのエッセンスを余すところなく紹介しています。
本連載では、エクセルマクロを仕事で使うための本当に必要な知識だけを、できるだけわかりやすく説明していきます。

Excelマクロ省力化のコツ! 同じ大きさの範囲を何度も選択するときの便利な書き方とは?Photo: Adobe Stock

知っておくと得するSelecionの使い方

次の表のように営業1課から営業2課までの商品別売上実績があるとしましょう。

Excelマクロ省力化のコツ! 同じ大きさの範囲を何度も選択するときの便利な書き方とは?

この中から営業1課部分をコピーして別のシートに貼り付け、次に営業2課部分をコピーして別のシートに貼り付ける作業を繰り返すとします。

まず営業1課をコピーする場合を考えます。セルA2からE4、下図の赤枠の範囲を選択しますよね。

このとき、E4はA2から「下に2、右に4」動かしたセルと考えられます。

Excelマクロ省力化のコツ! 同じ大きさの範囲を何度も選択するときの便利な書き方とは?

次に営業2課をコピーする場合を考えます。セルA5からE7を選択します。この場合、E7はA5から「下に2、右に4」動かしたセルと考えられます。

Excelマクロ省力化のコツ! 同じ大きさの範囲を何度も選択するときの便利な書き方とは?

この2つを比べると、どちらも基点のセルから「下に2、右に4」動かしたセルまでを選択すると考えることができます。

このように、基点(Selectionのセル)は変わっても、そこから見た選択したいセルの範囲は変わらないことがあります。Selectionを使った範囲選択マクロを利用すると、営業部がいくつあっても同じ表現を使え、マクロを非常に短くすることができます。

RangeとSelectionを組み合わせたマクロ

それでは、このときに使えるRangeの中にSelectionやOffsetを組み込んで範囲選択するマクロを学んでいきます。

今回は、簡単な例で説明していきます。「練習」シートでまずセルB3を選び、Selectionとします。そこから「右に4つ」移動したセルとの間をすべて選択しましょう。

Excelマクロ省力化のコツ! 同じ大きさの範囲を何度も選択するときの便利な書き方とは?

このマクロは次のように書きます。

Range("B3").Select
Range(Selection, Selection.Offset(0, 4)) .Select

一見複雑そうに見えますがRange( △ , □ ) の△と□の部分に

△:Selection
□:Selection.Offset(0, 4)

が入っている構造です。

以前、セルを範囲選択する場合は「Range("B3:E5").Select」のように:(コロン)を使うと学びました。

しかし、Rangeの中にSelectionや「Selection.Offset(0, 4)」のように直接セルや行、列を指定しない表現を組み込んで範囲選択する場合は,(コンマ)を利用しなければいけません。

ややこしいですがこれは覚えておいてください。

完成させて動かしてみよう

「セレクション2」という名前を付け、マクロを書きましょう。

Excelマクロ省力化のコツ! 同じ大きさの範囲を何度も選択するときの便利な書き方とは?

ボタンにマクロを登録し、保存した後に押してみてください。「練習」シートのセル「B3からF3まで」の範囲が選択されていれば成功です!

エラーが出たらチェック! よくある間違い

1 Range、Select、Offset、Selectionの綴りが間違っている
2 B3が" "(ダブルクォーテーション)で囲まれていない
3 OffsetやSelectの前に.(ピリオド)がない
4 Selectionの前の,(コンマ)が.(ピリオド)や:(コロン)になっている

(本稿は、寺澤伸洋著『4時間のエクセル仕事は20秒で終わる』を抜粋、再構成したものです)