親父の隠れ家

親父の隠れ家

三十路を迎える親父が隠れて記事を書き始めました。

【VBA】VBAの勉強方法

f:id:CMY0630:20170623103925j:plain

これから新しいことにチャレンジしたいけど勉強方法がよく分からないということは往々にしてあること。

 

ということでVBAの勉強方法について紹介したいと思います。。

 

目次

 


書籍の購入<WEBサイト

 

書店で「誰でも分かる○○○」みたいな書籍が山ほどありますが、これから勉強を始めるのであればWEBページからのスタートで良いかと思います。

 

理由は1つ。

 


入門編は書籍でもWEBページでも大体一緒だから。

 


出版業界さんに怒られそうだけど、書店にある入門書を片手にググってみると良いですよ。

 

 

WEBサイトで何となく理解したら書籍を購入

 

書籍を購入自体がNGというわけではないです。

 

ただ、書籍をいきなり購入しても専門用語が飛び交い心が折られてしまったり、買って満足気付けば本棚で埃かぶってる…なんてことになったら勿体無いです。

 

それなら美味しいもの食べた方が良いです。

 

WEBサイトで基本的なことを勉強した後であれば入門書からではなく応用やVBAを用いてやりたいより専門的な書籍を購入できるかもしれません。やったね。

 


勉強方法について

 

プロシージャやオブジェクト、モジュールやら何やらと用語や画面の見方は別途覚えるとして、VBAの書き方はどうやって覚えるのが良いか。

 

一番手っ取り早いのは自分が作成したマクロを覗いてみることです。


例えば「A1に"a"を入力する」というマクロを作ります。

 

中を覗いてみると

Sub makuro()
'
' makuro Macro
'

'
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "a"
    Range("B1").Select
End Sub


となっています。

 

記録するにどういう操作をしたのかを思い返しながら見ていくと分かりやすいです。


Sub makuro() → マクロの名前「makuro」(なぜローマ字にしたのだろうか)

Range("A1").Select → A1をSelect(選択)

ActiveCell.FormulaR1C1 = "a" → アクティブセルに"a"と入力

Range("B1").Select → B1をSelect(選択)(Enter押したからかなぁ)


と読み進めていくことが出来ます。


Rangeってなんだ?

FormulaR1C1ってどうやって使うんだ?


…となると思います。したらばググります。


「FormulaR1C1とは」とググれば懇切丁寧に教えてくれるサイトがワサワサ出てきます。

調べた結果、FormulaR1C1がセルに数式を入力、または入力されている数式を取得するプロパティであることが分かると思います。


すると今度は「プロパティってなんだよ」となる訳ですが、そうなればまたググる

するとVBAでいうプロパティっていうのはオブジェクトの属性のことを指していることが分かります。

今度は「属性ってなんだよ」「オブジェクトの情報のことなのか」「オブジェクトの情報にはどんな種類があるんだ?」

…と次々に分からない用語が飛び出すと思います。

用語の説明を読んでいるのにその説明に用いられている用語が分からずまた調べるという作業を繰り返していくこととなります。

 

繰り返しているとSubで始まりEnd Subで終わっていることに気付いたりとか。

 

VBAに限った話でなく独学で学んでいく際にはよくある話かと。

 

まとめ

 

f:id:CMY0630:20170623122115j:plain

書籍を購入して分からないところがあれば書籍内の索引で解決できれば良いのですが、望んでいる解説を得られないこともあるかと思います。

 

結局書籍で分からないのでググって調べて…ということであれば、最初からWEBサイトで学び始めた方が良いかと。


そしてひたすら手を動かします。少なくとも僕みたいなヘッポコには読むだけでは難しかったです。


読んで理解したつもりでも実際に操作してみると上手く動かなかったりして、それが何でなのかまた調べていく…


要は、英語を話せるようになりたい人が参考書読んでるだけで話せるようになるか!ってことです。

 

VBAはPCとの会話。プログラミング"言語"っていうくらいですから。


買って満足なノウハウコレクターにならないためにもまずは自分でマクロを作り、分からないところをWEBサイトで学んでいくといった手を動かしていく方法がオススメだと思います。