VBAが難しすぎると思うのは、あることができてないから
「ある考えを変えたらVBAが簡単になった。」

たしかに昔はVBAが難しく、こんなのできないと思ってた。でも、ある考えを変えたら少しずつ、でも確実に簡単に書けるようになっていった。

そんなある考えについて話していこう。

VBAはこれで簡単

必要なのはこれだけ。細かく処理(問題)を分けて考えること。

プログラムの完成形をつねに考えるより、小さい処理を積み重ねてプログラムを完成させるといってもいい。

たとえば、請求書の入力を自動化したいとする。完成形のみをイメージしたら「まずなにやったらいいの?」と疑問に思うだろう。

その完成形をざっくりつぎのように分解してみる。

  1. データを取得する
  2. 請求書のフォーマットに挿入する
  3. 個別で請求書シートだけを出力する

とするとどうだろう。できる気がしないか?

たとえば、個別に請求書シートだけを出力するプログラムを作ってみてほしい。思ったより簡単なことが分かるはずだ。

VBAはレゴブロック

VBAプログラミングは基本レゴブロックといっしょだ。レゴブロックは、いろんな種類のブロックを組み合わせて人や飛行機、城まで作れてしまう。

1つ1つは小さなブロックなのに...

レゴブロックをプログラミングに置き換えると。

  1. 長いブロックをプログラムでつくる
  2. L字のブロックをプログラムでつくる
  3. 平たいブロックをプログラムでつくる
  4. 組み合わせて城のような大きなプログラムにする

ちなみに、細かくすることは大きなプログラムをつくる以外にも。修正しやすかったり、レゴブロックみたいにどこでも使えるプログラムになる。

VBAプログラミングは積み重ね

VBAは積み重ねだ。努力とかんちがいしないでもらいたい。

これはVBA、いやプログラミング全般の話だが。

細かくつくることで、作ればつくるほど作業も短縮されてどんどん開発もラクになっていく。細かく作ったプログラムはコピペして使いまわし。

簡単にいえば、早く作れて空いた時間サボれる。めんどくさい性格ならやるべきだ。

まとめ: 小さいVBAプログラムをいっぱい作ろう

とにかく細かい(小さい)VBAプログラムをいっぱい作ってみてほしい。

データをシートに挿入するだけ。対象シートを新規Excelファイルに出力するだけ。CSVをVBAでシートに出力してみる。とか。

ちなみに、きれいに書きたいなら【保存版】VBAコードのきれいな書きかたをここにすべて記す【まとめ】またはVBAコードを「見やすくきれいに」書くためのコツ【5つ紹介】を見てみるといい。

どう細かく書けばいいか分からなければ【VBA】そろそろSubプロシージャ名のつけ方を知ろうか【教える】を見ることをすすめる。