1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ExcelマクロVBAですぐに結果を出した学習方法

Last updated at Posted at 2022-10-05

こんにちは。
先日、VBA始めて2週間で、4時間かかっていた業務を10分に縮めました。
「面倒な業務がこんな簡単に短縮できるのか!」と感動したので、私が今までやったことを記事にしたいと思います。
VBAを始める人が増えてくれたら超嬉しいです。

マクロを学ぶ目的を考える

マクロは、使う場面を思い浮かべないと書けません
普段の業務で、
・ひたすら繰り返す作業
・毎月発生する作業
など、「これ手でやらなくてもよくない?」という業務を思い出してください。

私の場合、「大量のデータから大量のグラフを作る業務」に焦点をあてました。
ターゲットを絞らないと、無限に学ぶことが出てきてしまいます。目標は決めておきましょう。

まずこのサイトで基本を学ぶ

ターゲットを絞ったとはいえ、基本構文すらわからないとさすがに書けません。
VBA再入門」は、私が実際に学習したサイトです。VBAの基本的な書き方を学ぶにはうってつけだと思います。

どのくらい勉強するか?

第1回から第8回までやれば、簡単なマクロは書けるようになります。(所要時間も3時間ほど。お手軽)
一応全30回ありますが、書くのに慣れさえすれば、最後までやりきらなくても問題ないです。
ただし、

第11回.分からない事はエクセルに聞く(マクロの記録)
第12回.エクセルの言葉を理解する(オブジェクト、プロパティ、メソッド)
第17回.セルにブック・シートを指定する(Workbooks,Worksheets,With,Set)
第18回.シートをコピー・挿入・削除する(Worksheets,Copy,Add,Delete)

このあたりはやっておくべきと思います。

いざマクロ作成!マクロの記録から始めよう

先程紹介したサイトの、「第11回.分からない事はエクセルに聞く(マクロの記録)」です。
こちらを参考に、実際に業務を記録してみましょう。

マクロを記録したら

マクロの記録で作られるVBAは、目も当てられないほどぐちゃぐちゃです。なので、必要な部分に絞ってコードを整えていくことになります。
単語単語で拾い上げつつ、たくさんググって乗り越えましょう。

マクロの添削方法についても、上記サイトが参考になると思います。

とはいえ、とりあえず動けばヨシ

最初からうまく作るのは難しいので、とりあえず動いたらOK!としましょう。
調べつつ改修していけば、段々慣れてきれいに書けるようになります。とにかく実践して慣れるのが大事です。

あとは学びつつ実践の繰り返し

コードのきれいな書き方やVBAの機能など、知識を増やすことで書けるマクロの幅が広がります。
「VBA再入門」のサイトは学び方のロードマップもあるので、覗いてみてください。

以下では、記録したコードを整える例について挙げています。
これができるようになると強いです。

コードの改修例

testシートでA1をB1にコピーするだけ
    Sheets("test").Select
    Range("A1").Select
    Selection.Copy
    Range("B1").Select
    ActiveSheet.Paste

SelectしてSelectしてCopyしてSelectしてPaste…
分かりづらすぎます。。さすがマクロの記録。

このコードを直すと↓

testシートでA1をB1にコピーするだけ
    Dim ws As Worksheet
    Set ws = Worksheets("test")
    
    ws.Range("A1").Copy Destination:=ws.Range("B1") 'この1行でコピーペースト終わり

すっきり書けました。
しかも、コピペ動作の記述はたったの1行です。
(最初の2行はオブジェクト変数定義)

きれいなコードを書くためにやったこと

・オブジェクト変数を学ぶ
・Withステートメントを学ぶ
・とにかくググる

オブジェクト変数とWithステートメントは必修です。
あとのことはケースバイケースなので、とにかくググって先人に頼りましょう
(先程の例はコピーペーストの書き方でしたが、グラフの作成やピボットテーブルの操作などなど、エクセルの機能分だけ無限にあります。それぞれの書き方覚えてられないので、いつも調べつつやってます)

おわりに

VBAをちゃんと学ぼう!と思うと、敷居が高くて踏み出しにくいですが、
必要に迫られて「とにかく業務に活かす!」と思えば、ちょろっと勉強してちょろっと作る、くらいの感覚でできてしまいます。
そして作って動くとめちゃ楽しいのもいいところです。VBA大好き。

最後まで読んでいただき、ありがとうございました。
この記事がお役に立てたら幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?