本日は 便利なのはわかっているけど、 勉強したい気持ちはあるけど、 中々マクロの勉強すすまない・・・ と言う人へアドバイスをひとつ。 勉強進まない人の理由は多くの場合、 「一辺にやらねば・・・」 そう思い込んでいる所に原因あるかと思います。 確かに、「VBA専門用語」の理解からの勉強は 最初からそれ相応のまとまった時間を要します。 けど、このメルマガで何度も言ってきましたように、 マクロとは自動化のための道具に過ぎませんですから、 そもそもが、そのような最初から時間の掛かる勉強 をする必要というのは 毛頭無い わけです。 我々がマクロを勉強する目的は、 マクロでエクセルを自動化することであって、 難しいVBAを理解することでは決してありません! その辺だけは、くれぐれも間違わないようにして ください。 ※VBAいうのは、ほんとハードル上げまくる教え方 する先生だらけーの世界ですから、、(笑) くれぐれもそれに惑わされぬよう、ご注意くださいね。 しかし、とは言っても当然のことながら マクロ(エクセル自動化のプログラミング)というものは、 ごく簡単なレベルのものから、非常に難しいレベルのもの まで、その難易度は実にさまざまです。 初心者の人で、マクロの勉強(マクロ作り)が全然すすんで いないという人の殆どが、 最初から難易度の高いものまで全てをいっぺんに作らねば・・・ と、そう考えてしまう傾向にあります。 これは、例えるならば、野球を始めたばかりの野球少年が、 いきなり初打席でホームランを狙ってフルスイングを試みる・・ というに等しいものなので、、 それでは、ホームランどころかバットにボールはかすりも しないであろうは当然のことですね。 いきなりそう考える(ホームランを狙う)のではなくて、 まずは、野手の間を抜けていくようなゴロのシングルヒット を狙って打席に立つのが、初心者はよいわけです。 それで、ボテボテの内野安打のヒットの1本でも打てれば、 とりあえずは、それで十分に最初の初打席は成功であるわけ です。 その比較的簡単に打てるボテボテのシングルヒットを重ねて いけば、結果的に大量点にも結びつくわけですから、 初心者の皆さんは、 「まずは最も簡単な部分のマクロの1つ目を完成させる。」 それに集中して、それを目指してやってください。(最初は ボテボテの内野安打程度の短いマクロで全然構いません!) そして、 その次に簡単そうな部分をもう1つ、またもう1つ、・・・、 といった具合に、 今自分がやっている面倒臭い一連のエクセル作業の中で、 ごく簡単にマクロ化できそうな部分の短いマクロから1つ1つ、 マクロを増やしていきます。 それで、 例えば、これまで10時間掛かっていたエクセルの手作業の、 10個ある手順の中の簡単な2個だけでもマクロ化できただけで、 作業が8時間(10-2=8時間)に短縮できるわけでありますから、 その浮いた2時間で、次のもう一つ、少し難しい部分のマクロ 作りにもチャレンジできるわけです。 そうすると、またそれで更なる時間の余裕が生まれてきますので、 その節約できた時間でまたもう一つ、少し難易度の高そうな部分 のマクロ化にも挑戦することができるようになっていきます。 そうして、 そのように決して背伸びをしない(その場その場の自分の実力 に沿ったレベルの範囲のマクロを作ることを考えて、)ひたすら シングルヒットを重ねていくことを考えてやっていけば良い (背伸びしないから勉強は非常に楽です。)というわけです。 中々マクロの勉強が進まないでいる人は、ぜひこの 「最初からホームランを狙わない!(小さなシングルヒットを 着実に積み重ねていく・・)」この考え方に沿ってやってみて ください。 マクロは、勉強してから作るのではなくて、作ってから勉強 するのです。特に中々進まないでいる人は、このような逆転の 発想が必要です。 正確には、 作ったマクロで得られる時間を使って、その次の勉強をする ~~~~~~~~~~~~~~~~~~~~~~~~~~~ のです。英語の勉強なんかとは違って、マクロは唯一それが 可能なスキルです。マクロは、時間を作り出す「打出の小槌 (うちでのこづち)」に他なりません。 よって、最初のマクロは小さければ小さいほど良いです。 ほんのちょっとした(ボテボテの内野安打の)マクロで、 十分です。スタートはそこからです。 まずはそれで、次の勉強時間を確保するということを考えて 勉強はじめてください。 それで、その具体的な方法についてですが、 特に、初心者の方は不必要に自分自身で高いハードルを設けて しまっている場合が多いですから、 以下の方法を意識して、それ(自分の中の意識を)下げてあげる と、「まずはカタカナ専門用語の理解を・・・」とか、 VBAの参考書や他の講座に多いその手の脅迫概念から開放されて、 楽に、実に気楽に「マクロのシングルヒット」が打てるプレイヤー になっていけるかと思います。 自分の意識を変えることで、難しいカタカナ用語の脅迫概念から とにかく自分を開放してあげる、ということが肝要ですね。 まずは、当講座でずっと繰り返し繰り返し練習をしてきました 「マクロの記録」+「ちょっとしたその修正」と、 「ループの基本形」+「分岐処理の基本形」とで、 そのちょっとした応用レベルのマクロを一つ作ってみます。 【マクロでシングルヒットの一例】 例えばの一例ですが、 「ブックの中に数あるシートの全てに共通する表の見出しを 入れたい」といった場合に、 仮に、まずいつものシートのデータ数でループを回す場合 であれば、 ++++++++++++++++++─ Sub Macro1() n = Cells(Rows.Count, "B").End(xlUp).Row For i = 1 To n ・ ・ ・ Next i End Sub ++++++++++++++++++─ これが、当講座で何度も何度も勉強してきたループの基本中の 基本であるわけですが、、 これを、単純にシート数で回すループに変えてみて、 ++++++++++++++++++─ Sub Macro1() n = Sheets.Count For i = 1 To n Sheets(i).Select Range("A1").Select ActiveCell.FormulaR1C1 = "在庫管理表" Next i End Sub ++++++++++++++++++─ とすれば、一気に全シートの指定のセル位置に(上記の例では A1のセルに)表の見出し(上記の例では「在庫管理表」)が 挿入できるわけです。 また、上記を ++++++++++++++++++─ Sub Macro2() n = Sheets.Count For i = 1 To n Sheets(i).Select Range("J32").Select Next i End Sub ++++++++++++++++++─ とすれば、各シートを開いた時に必ずカーソルを最初に入力する 位置に移動させておく(上記の例ではJ32のセルに)ということも 簡単に出来ますね。 よって、できたマクロは各々 Sub Macro1() '←全シートに表見出しを書くマクロ Sub Macro2() '←カーソルを入力位置にするマクロ といったコメントを書いておけば良いだけです。 更には、また ++++++++++++++++++─ Sub Macro3() n = Sheets.Count For i = 1 To n Sheets(i).Select Range("A1").Select ActiveCell.FormulaR1C1 = ActiveSheet.Name Next i End Sub ++++++++++++++++++─ とすれば、先の表見出し(全シートで共通の「在庫管理表」 と固定名だったもの)を、各シートのシート名にすることも 出来ますので、 Sub Macro1() '←全シートに表見出しを書くマクロ Sub Macro2() '←カーソルを入力位置にするマクロ Sub Macro3() '←表見出しをシート名にするマクロ てな具合です。(前回にも言ったように、これは Sub Macro1表見出しを書く() Sub Macro2カーソル移動() Sub Macro3シート名の見出し() などとしてもよいでしょう。) なお、上記を試す場合には、予めシートを沢山作っておいて から実行してくださいね。(シートが1つしかない状態だと この実行結果は詰らないですから。(笑)) まさに、これはループの基本をちょっとアレンジしただけの 極数行の小さいマクロの(シングルヒットの)積み重ね というものになります。 最後に今日の話をまとめますと、 マクロは勉強してから作るのではなくて、作ってから勉強する。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ すなわち、それは、 作ったマクロで得られた時間を使って、その次の勉強をする。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ということです。 中々勉強すすんでいないという人は、ぜひこの発想の転換にて マクロで「時間の好循環!」これ生み出すよう実践してみて ください。
最新の画像[もっと見る]
- 80代の年寄りにVBAが出来るわけがない? 3年前
- 鎌倉殿の13人ー義経の逆落としの地形 3年前
- 鎌倉殿の13人ー義経の逆落としの地形 3年前
- 鎌倉殿の13人ー義経の逆落としの地形 3年前
- 鎌倉殿の13人ー義経の逆落としの地形 3年前
- 鎌倉殿の13人ー義経の逆落としの地形 3年前
- 関ケ原の合戦場をデジタルマップで見ると 3年前
- 関ケ原の合戦場をデジタルマップで見ると 3年前
- 関ケ原の合戦場をデジタルマップで見ると 3年前
- 上田城の3Dデジタルマップ 3年前