パソコンスキルの教科書

パソコンスキルの教科書

東京大学大学院卒。博士課程に進学を志すも、担当教授と折が合わず、無職になる。医者を目指すも結局断念。田舎で派遣社員として働く。「スキルがなければ、仕事ももらえない」と悟り、ビジネススキルを学ぶ。プログラミング、英語を学び、一部上場企業へ転職。年間100時間以上の業務効率化を行い、社内講師に抜擢。海外の案件を担当し、数億円のプロジェクトに携わる。個人の事業でも、月売上100万を達成。現在は、自分の価値を高めるためのスキル向上支援を行う

エクセルマクロVBAを独学で手書き編集するための最短学習方法

f:id:gene320:20180311115806j:plain

エクセルマクロVBAでマクロの自動記録を活用したりウェブや本の情報をコピペしたりすれば、作業の自動化が可能です。実際、私の開催したセミナーでも、マクロの自動記録だけで作業時間を数時間削減した人もいます。

ただ、マクロの自動記録の使い方しか知らなかったりウェブや本の情報ばかり頼ってばかりだったりする人に必ずといっていいほど起こる課題があります。それは、手書きによる編集ができないことです。

なぜ手書き編集ができないかというと、自動記録やウェブや本のプログラムを使うだけだと、自分自身で書く必要がないからです。実際、私がマクロを教えていた人は、自動記録だけしか使えず、プログラムを書きなおすことができませんでした。

そして、残念なことに手書き編集はできないと、マクロで大きな改善をもたらすことはできません

この記事では、手書き編集の重要性と手書き編集できるようになるためのトレーニング方法をお伝えしてきます。

エクセルマクロVBAを独学で手書き編集するための最短学習方法

マクロの自動記録やウェブ・本の情報にばかり頼っているとマクロを書けない

マクロ初心者にとって、マクロの自動記録やウェブや本の情報はよく使う情報源です。なぜなら、自分でマクロを書く必要がないからです。

例えば、英語の自動翻訳機能が発達しています。このメリットは英語の文法や単語を知らなくても、英語を訳したり書いたりできることです。また、ウェブに書いてある英文をそのまま活用する場合も同じです。自分で考えなくても、英語でコミュニケーションできるようになります。

そして、マクロの自動記録も自動翻訳機能と似ています。実際、自動記録を使えば、マクロの文法ルールや難しいコードを知らなくても、ある程度のレベルのマクロを書けるようになるのです。

しかし、マクロの自動記録だったりウェブや本の情報に頼っていると手書きでマクロをかけるようになりません。そして、マクロで大きな効率化を達成したいと思うなら、プログラムの手書き編集は避けては通れません。

マクロの自動記録にはデメリット(限界)がある

マクロの自動記録とは、エクセルの機能の一つで、作業者のエクセル操作を記録して、再現してくれる機能です。

たとえば、以下のような作業はマクロの自動記録を使えば、自動化することができます。

とあるクラスの生徒が、エクセルであいうえお順に並んでおりテストの点数が一覧になっている。
この一覧を [1] 点数順に並び替える
[2] 上から1,2,3,・・・と順位を付ける
[3] あいうえお順に戻す

上記の作業は、自動記録を使えばマクロを作成できます。所要時間は15~30分です。もし、毎日3分かかっている作業であれば、年間200日×毎日3分=600分(10時間)が年間の作業時間と言えます。

そして、マクロ作成に30分(0.5時間)かかるとすれば、10時間 - 0.5時間 = 9.5時間の削減となるのです。とても便利な機能で、実際に私は今でも自動記録を使ってマクロを作成することがあります。

マクロの自動記録については、こちらの記事で詳しく解説しています。

www.fastclassinfo.com

しかし、このマクロの自動記録にはいくつかのデメリットがあります。例えば、以下の3つは自動記録のデメリットとしてよく挙げられる内容です。


マクロの自動記録のデメリット デメリット1|「繰り返し」や「条件分岐」ができない
デメリット2|想定と違う処理が行われることがある
デメリット3|自動記録されたコードが読みづらい
(他にもあります)

デメリット1|「繰り返し」や「条件分岐」ができない

マクロの自動記録では、繰り返しができません。繰り返しとは、"1~100行目まで「行ごと」に処理する"という処理のことです。

もし、「行ごとに処理する」というマクロを作りたいならfor next文を使用する必要があります。

さらに、「条件分岐」もできません。条件分岐とは、「もし80より大きいなら、評価A。もし80未満なら、評価B」という処理のことです。

この「繰り返し」や「条件分岐」ができないことが何を意味するかというと、マクロで最も重要な作業ができないことを指しています。

なぜなら、数十時間以上の効率化をもたらすマクロの大部分は、「繰り返し」や「条件分岐」だからです。

そのため、これらを使わずに10時間を越えるような効率化を達成するするのは到底不可能です。

しかし、マクロの自動記録では、「繰り返し」や「条件分岐」を使えません。これでは、本来のマクロの力を引き出せないのも同じです。

デメリット2|想定と違う処理が行われることがある

マクロの自動記録でマクロを作成しているときに、矢印キーを使うと相対参照が採用されます。その結果、想定と違う処理が行われることがあります。

相対参照とは、その時点でセルのカーソルが合っている位置から見て左右、上下にどれだけの距離があるかを計測するものです。

例えば、相対参照では今あるセルから「右に4セル」「下に5セル」移動したセルと表現されます。

もし、マクロの自動記録で作成したときは「セルA1」から、「右に4セル」「下に5セル」移動した「セルE5」が対象になっていたとします。

しかし、自動記録で作成したマクロを使うと、実行時のセルが「A2」の場合、「右に4セル」「下に5セル」移動した「セルE6」が対象になってしまうのです。

その結果、想定と違う処理が行われてしまうのです。

デメリット3|自動記録されたコードが読みづらい

自動記録されたコードは、初心者には難しくて解読できません。たとえば、以下はマクロの自動記録で作成したプログラムです。

Sub Macro1()
'
' Macro1 Macro
'

'
    Range("C4").Select
    ActiveCell.FormulaR1C1 = "q"
    Range("B5").Select
    ActiveWindow.SmallScroll Down:=-9
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    Range("B7:C11").Select
    Range("B11").Activate
End Sub

正直、初心者には何が書いてあるのか分かりません。そして、初心者がこのプログラムを理解しにくいのは仕方のないことです。

なぜなら、自動記録ではただでさえややこしいプログラムをさらにややこしく表現してくれるからです。

たとえば、不必要に.Selectが記録されますが、これはなく本来要りません。むしろ、プログラムが遅くなるためあるだけムダです。

さらには、余計な作業も記録されてしまいます。たとえば、マウスのスクロールも記録されてしまいます。そのため、さらに読みづらさが増します。

上記の3つのデメリット以外にもいくつかデメリットがあります。それらについては、こちらの記事で解説しています。

このように、デメリットが多いため、自動記録は使いどころを見極める必要があるのです。

ウェブや本の情報だけではマクロを書けるようにならない

マクロ初心者ほど、ウェブや本の情報だけに頼ろうとします。なぜなら、知識が乏しいからです。

そのため、本心は手書きでアレンジをしたいと思っていても、「もっといろいろしたいのに」と思いつつ、ウェブや本に頼らざるを得ないのです。

もし、本やウェブのサンプルを試してみようとしても、「エラーが出て使えない」や「どこを修正すればいいのか分からない」と状況に陥ってしまうのです。

したがって、マクロ初心者が本やウェブのサンプルを使いこなせるようになるには、知識を増やして書けるようになることです。

本やウェブのマクロVBAのサンプルプログラムやコードを使うのが難しい理由は、こちらの記事で解説しています。

www.fastclassinfo.com

手書き修正できないと、成果の出るマクロを書けない

上述の通り、自動記録だったりウェブや本の情報ばかりに頼っていると、成果の出るマクロを書けるようになりません。

ただマクロ中級者や上級者も自動記録だったりウェブや本の情報を活用することは少なくありません。

実際に、私も自動記録だけでなくウェブや本のサンプルを利用することはあります。それでも、成果の出るマクロをいくつも書いてきました。

しかし、なぜ初心者は自動記録だったりウェブや本の情報だけに頼ってしまい、中級者・上級者はそれらを活用できるのでしょうか。

それは、上級者は自動記録のプログラムを不要な部分をカットして必要な部分だけを使いまわすことができるからです。中級者・上級者になるとプログラムが何を意味しているか分かるのです。

たとえば、上述した自動記録のプログラムにおいて.Selectは不要なので削除すればいいと分かります。しかし、初心者は自動記録したマクロのプログラムをそのまま使うことしかできません。

この状態では、いつまで経ってもマクロを使いこなすことができません。よくて数十分の効率化しかできないのです。それではマクロを覚える意味があるとは到底いえないでしょう。

それでは、どうすれば中級者や上級者のようにプログラムを不要な部分をカットして必要な部分だけを使いまわすことができるようになるのでしょうか。

手書きでマクロを書けるようになることを目指すなら、練習問題を使おう

答えは簡単で、マクロを手書き編集する力を身に付けることです。もっともお勧めは、練習問題を一人で書けるようになるまで繰り返し解くことです。なぜなら、マクロを練習問題をこなせば、自ずと読んだり書けたりするようになるからです。

たとえば、高校や大学の入試問題を解くためには、問題を読んでコピペしているだけではゼッタイに解けるようにはなりません。問題を解けるようになるには、何度も自分の手を動かして解いてみることが一番の練習法です。

そうすれば、つまずきながらでも、チャレンジしているうちに、だんだん問題が解けるようになっていきます。

実際に、マクロが出来るようになった人のほとんどは、手書き練習をした時期があります。私も10ヵ月くらいはトレーニングしました。その詳細は、こちらの記事で紹介しています。

www.fastclassinfo.com

逆に、教科書を読んでいるだけだったり、問題の答えしか書き写してばかりいたりするようではいつまで経ってもマクロを書けるようになりません

それでは、以下にマクロを手書き編集できるようになるためのトレーニング方法を紹介します。

練習問題でのトレーニングのコツ5つ|問題を選ぶ基準や注意点

マクロを手書き編集できるようになるためにやることとしては、「練習問題がお勧めだ」とお伝えしました。

確かにその通りなのですが、ただウェブや本で紹介されているプログラムを手当たり次第やればいいわけではありません

実は、手書き練習で選ぶといい問題は決まっています。もし、「自分の興味のあるプログラムをやればいい」と思っているのなら失敗します。

そこで、以下でマクロの手書き練習をするときの具体的な方法について紹介します。

コツ1|自分のレベルに合った練習問題をこなす

もっとも重要なコツは、自分のレベルに合った練習問題をこなすことです。なぜなら、挫折のリスクを減らしつつ、実力もアップできるからです。

たとえば、高校生1年生に大学の参考書はレベルが高すぎます。一方で、大学受験を目指す人が中学生のテキストを学んでも、知っている知識ばかりで学習効果が得られません。

実際に、私はマクロ初心者のとき、outlookのようなレベルの高いプログラムを勉強したことがあります。しかしぜんぜん理解できず、挫折してしまいました。

むしろマクロを全く理解できず、「マクロって難しい」という印象をもってしまったのです。その結果、勉強のやる気がガクンと落ちてしまいました。

筋トレでも同じですが、今のあなたのレベルに合った教材を選ぶとき、もっとも効果が得られます

コツ2|一人で作れるようになるまで反復練習する

練習問題を一度だけやって「できるようになった」と判断することはお勧めしません。なぜなら、マクロを一度書いただけでは本当に理解しているかどうかわからないからです

そのため、一人で作れるようになるまで反復練習することが重要です。基準としては、独力で書けるようになったマクロについて、1,2週間経った時点でもう一度挑戦してみることです。

欲をいえば、一つ一つのコードを理解しながら反復練習すると、マクロのスキルをグンと伸ばすことができます

もちろん最初のうちは、しんどい作業です。しかし、一つ一つのコードを理解できるようになれば、加速度的にマクロを理解できるようになります。

コツ3|ゼロから完璧に書けるレベルを目指さない

上記で、「一人でマクロを書けるようになるまで練習するといい」とお伝えしました。ただ、注意したいのが、プログラムが書かれていない白紙の状態から書けるようになる必要はないことです。

なぜなら、マクロ上級者でもストックしてきたものを転用してマクロを作るからです。

例えば、上級者ほど同じプログラムを転用します。実際に私も自動記録だったりウェブや本だったりのサンプルコードを利用します。むしろ、白紙から作ることはありません。

あくまで、動くマクロを作れるようになることが目指すところです。

具体的には、「このマクロはこう動くな」や「このプログラムなら、こういった結果になりそうだ」と予測できるレベルを目指すといいです。

ゼロから作ることを目指すと時間がかかります。白紙から完璧に書けるレベルになる必要はありません。

コツ4|実務に近い練習問題から始める

勉強を始めた直後の1,2週間は、勉強に対してやる気満々の人は多いです。しかし、1ヵ月もすると、勉強する状態になれなくなってしまいます

なぜなら、達成感がないと勉強を継続できないからです。たとえば、ゲーム好きな子供はなぜ何時間もゲームをやり続けることができるのでしょうか。

それは、あとどれくらいでレベルアップするか分かるからです。ゲームには経験値という数値があります。その数値を超えるとレベルアップできるシステムになっています。

つまり子供たちは「自分のレベルが上がっている」ことをつねに把握しているのです。そしてレベルが上がったらもっと強くなれるという達成感があるから、寝ても覚めてもゲームばかりやることができるのです。

マクロの学習もこれと同じような状況を目指すといいでしょう。マクロを書くことで、自分のレベルアップを感じることができれば、マクロ学習そのものが達成感で満たされるようになっていきます。

達成感を味わうためにお勧めの方法は、実務を効率化することです

実際に、私がマクロで達成感を味わったのは、周囲の人にマクロで実務を自動化したときでした。同僚は「えっ、今なにしたの?」と目を丸くしていました。

このようにマクロ習得のための練習問題トレーニングではなく、マクロ達成感を味わえるようにするのがお勧めです。

とくに、実務効率化に直結している練習問題は、知識を増やすだけでなく仕事を改善することもできるます。一石二鳥なのです。

コツ5|自分の業務に近いマクロの練習問題を選ぶ

上述の通り、マクロ上達のカギは実践です。しかし、いきなりチームや部署の業務を改善するのはお勧めしません。そのため、最初に実践するのは自分の業務に関するマクロを選ぶといいでしょう。

なぜなら、仕事の流れを把握しているからです。例えば、自動車免許の取った人がいきなり遠出すると疲れます。

その理由は2つあって、「1つ目は車の運転に慣れていないから」と「2つ目は道を知らないので、道順を意識しないといけないから」です。

つまり、2つのことを同時に意識するから、大きな疲労を感じるのです。そのため、自動車免許の取った人でれば、近所を運転することで「まずは運転に慣れる」ことを目指すのがお勧めです。

これは、マクロでも同じです。マクロ初心者が練習問題をするとき、以下の2つを意識する必要があります。

[1] マクロのプログラムに慣れる
[2] 仕事の流れをつかむ

これらを同時に学ぼうとすると、かなり大変です。そこで、練習問題では「まずはマクロのプログラムに慣れる」ことだけに集中できるようにします。

つまり、流れを把握することに意識を向けなくてもいい状況を作って上げるのです。そうすれば、マクロの手書きに慣れることに焦点を絞れます。

お勧めの練習問題とは? まずはレベルチェックをしてみる

マクロの練習問題を選ぶときのコツをお伝えしてきました。ただ、選ぶ基準が分かっても、具体的にどのような練習問題から手を付ければいいのかは迷ってしまいます

とくに初心者の場合、「何が分かっていないのかもイマイチ分からない」ことはよくあります。そこで、まず確認してほしいのは、自分がどのようなレベルかどうかです。

上述のとおり、自分のレベルに合った練習問題の選ぶにしても、自分のレベルが分からなkれば選べません。そこで私がお勧めするのはこちらの無料動画です。

この動画で紹介されている内容が分からなかければ、そもそもマクロを理解できていません。そのため、まずはこちらの無料動画を見て、自分のマクロの知識を確認してみてください。

また、こちらの動画では実務に直結したマクロに焦点をあてて話をしています。実務で使う時のコツも学べるので、一度見てみることを強くお勧めします。

練習問題で、マクロを手書きできるようになろう

エクセルマクロVBAでマクロの自動記録を活用したりウェブや本の情報をコピペしたりすれば、作業の自動化が可能です。しかし、マクロの自動記録だけ、ウェブや本の情報ばかり頼ってばかりでは、手書きによる編集ができません。その結果、大きく効率化するマクロを作ることが出来ないのです。

もし、あなたがマクロを手書きして自由自在にマクロを使えるようになりたいなら、練習問題を通じてトレーニングすることをお勧めします。ここで紹介した5つのコツとこちらの無料動画を活用して、手書きで書けるようになるための第一歩を進めてみて下さい。