エクセルマクロの挫折しない勉強法や仕事で使いこなすコツを徹底解説!
講師の寺澤さんはこれまでの20年間マクロを使って様々な業務を効率化させるなど、数多くの社内表彰を受けてきました。例えば、数十万行の元データから分析用データを毎週作成する作業。人の手だと1週間かけても終わらない作業ですが、マクロを使うと30分程で完成してしまいます。さらに自ら社内講座も主催、全くマクロを触ったことがない数百人を指導し、満足度98%と人気を博しています。近著『4時間のエクセル仕事は20秒で終わる』では、そのエッセンスを余すところなく紹介しています。
本連載では、エクセルマクロを仕事で使うための本当に必要な知識だけを、できるだけわかりやすく説明していきます。
マクロのなかで変数の値を上書きする方法
今回は処理を進めながら、変数の値を上書きするマクロを学びます。
変数に入れる値は、1つのマクロのなかで更新することができます。
変数に値を入れる「=」は、数学的な意味の「等しい」とは違います。
マクロでは「= の後ろの値を = の前へ代入する」という意味です。
a = a + 1
これは数学的には成り立たない式ですが、マクロを書くときには成立します。「変数aに『変数aに+1した値』を入れなさい」という意味です。つまり「aの値を1増やしなさい」ということです。
それでは一度練習をしてみましょう。
一度設定した変数の値を上書きし、「練習」シートで下の図のように表示させるマクロを作ります。
この例を考えてみましょう。
まず変数aに5を、変数bに10を入れます。
そして変数aに1を足し、変数bにaとbを足した数字を入れます。
この部分のマクロは次のように書きます。変数を=の左側、更新する値を右側に書きましょう。
Dim a
Dim b
a = 5
b = 10
a = a + 1 ・「a + 1」をaに代入
b = a + b ・「a + b」をbに代入
最後に「練習」シートのセルA1に変数aの値を、A2に変数bの値を表示させます。変数の値をセルに直接入れる書き方です。
Sheets("練習").Select
Range("A1") = a
Range("A2") = b
完成させて動かしてみよう
「変数2」という名前を付け、マクロを書きましょう。
ボタンにマクロを登録し、保存した後に押してみてください。「練習」シートのセルA1、A2に数字が表示されれば成功です!
1 RangeやDimの綴りが間違っている
2 セルが" "(ダブルクォーテーション)で囲まれていない
(本稿は、寺澤伸洋著『4時間のエクセル仕事は20秒で終わる』を抜粋、再構成したものです)
寺澤伸洋(てらさわ・のぶひろ)
1976年、大阪府生まれ。灘高校、東京大学経済学部卒業後、日系メーカーで17年間勤務。経理や営業、マーケティング、経営企画などに携わり、独学で覚えたエクセルマクロを用いて様々な分析や業務改革を行う。2017年、GAFAの日本法人のうちの1社へシニアマネージャー(部長)として転職。これまでエクセルマクロを用いた業務改善などで数多くの社内表彰を受けている。手作業では不可能なほど大量のデータを、短時間で分析しやすく加工したことが評価され、社内エクセルマクロ講習会の講師として延べ200人以上に講座を実施。エクセルマクロについて1から10まで教える詰め込み型の学習ではなく、仕事に必要な部分だけを効率的に学べる講座として満足度98%の高い評価を受けている。