エクセルマクロの挫折しない勉強法や仕事で使いこなすコツを徹底解説!
講師の寺澤さんはこれまでの20年間マクロを使って様々な業務を効率化させるなど、数多くの社内表彰を受けてきました。例えば、数十万行の元データから分析用データを毎週作成する作業。人の手だと1週間かけても終わらない作業ですが、マクロを使うと30分程で完成してしまいます。さらに自ら社内講座も主催、全くマクロを触ったことがない数百人を指導し、満足度98%と人気を博しています。近著『4時間のエクセル仕事は20秒で終わる』では、そのエッセンスを余すところなく紹介しています。
本連載では、エクセルマクロを仕事で使うための本当に必要な知識だけを、できるだけわかりやすく説明していきます。
今回は、ここまで学んだ終端セルと相対参照を組み合わせて利用してみましょう。
「練習」シートのB列に新しい列を挿入してください。図のように空白列が入ります。このときにB列の中で、隣の列にデータが入っている一番下のセル(ここではB10)を選びたいとします。
第10回のようにB100000から上へ向かって探すと、B列にはデータがなくセルB10では止まってくれないと想像できます。
終端セル + 相対参照マクロを使う場面
「なぜこのセルを選ばないといけないのか?」について説明します。
エクセルで「B列に新しい列を挿入して、セルB1にIF関数やVLOOKUP関数を入れ、そのセルをデータの一番下までドラッグで引っ張ってコピーする......」という操作をしていませんか?
そのときどこまでドラッグすればよいか、手作業なら目で見て確認することができます。しかし、同じことをマクロにやらせるには「どこまで」を指定する必要があります。そこで今回のマクロを使うのです。
終端セル + 相対参照マクロの作り方
終端セルと相対参照を組み合わせてセルB10を選択しましょう。
A列のデータが10万行を超えないと想定してマクロを書くと、次のようになります。
Range("A100000").End(xlUp).Offset(0, 1).Select
まずRange("A100000") でA100000を選択します。そこからEnd(xlUp)で上へ探していき、はじめにデータが入っているセルA10を選択させます。最後にOffsetを利用して、選択するセルを「下に0、右に1」動かしています。
完成させて動かしてみよう
「終端相対」という名前を付け、マクロを書きましょう。
ボタンにマクロを登録し、保存した後に押してみてください。「練習」シートのセルB10が選択されていれば成功です!
1 RangeやSelect、Offsetの綴りが間違っている
2 A100000が“”(ダブルクォーテーション)で囲まれていない
3 EndやOffset、Selectの前に.(ピリオド)がない
4 End(xlUp)の綴りが間違っている(xの後は小文字のl〔エル〕です)
(本稿は、寺澤伸洋著『4時間のエクセル仕事は20秒で終わる』を抜粋、再構成したものです)
寺澤伸洋(てらさわ・のぶひろ)
1976年、大阪府生まれ。灘高校、東京大学経済学部卒業後、日系メーカーで17年間勤務。経理や営業、マーケティング、経営企画などに携わり、独学で覚えたエクセルマクロを用いて様々な分析や業務改革を行う。2017年、GAFAの日本法人のうちの1社へシニアマネージャー(部長)として転職。これまでエクセルマクロを用いた業務改善などで数多くの社内表彰を受けている。手作業では不可能なほど大量のデータを、短時間で分析しやすく加工したことが評価され、社内エクセルマクロ講習会の講師として延べ200人以上に講座を実施。エクセルマクロについて1から10まで教える詰め込み型の学習ではなく、仕事に必要な部分だけを効率的に学べる講座として満足度98%の高い評価を受けている。