前回の記事では、転記マッピングシートとVBA部品を組み合わせることで、少ないコードで転記ツールを作れることを紹介しました。
実際のコードを見て、
「え?これだけ?」
と感じた方も多かったのではないでしょうか。
私自身もVBAを学び始めた頃は、
For
If
Cells
Range
を延々と書くものだと思っていました。
しかし実際に業務ツールを作るようになると、毎回同じようなコードを書いていることに気付きました。
そこで考えたのが、
「よく使う処理を部品として再利用する」
という考え方です。
ただ、
- Functionって何?
- CALLって何?
- モジュールって何?
と思った方もいるかもしれません。
今回の記事では、VBAクッキングの土台となる
部品化の仕組み
について、実際に手を動かしながら学んでいきます。
目次
なぜ短いコードで動くのか
前回のコードの振り返り
下の画像は前回にお見せした、部品を使用したコードです。

短いコードですが、マッピング表の各行を繰り返し読み込んで転記処理を行っています。
裏側の仕組み
裏側では、下記の1行だけで複数行を呼び出しています!
lastRow = Module_Parts.部品_最終行取得(ThisWorkbook, "転記元", 2)
下の画像が実際に呼び出された箇所です。

上の画像はコードのすべてではないですが、呼び出されると複数行が実行されるので、1行だけでかなりのことが行える仕組みになっています。
それでは、次からは実際に簡単なコードを書いてみて、短いコードで動く仕組みを実感して頂きたいです。
そのためには、VBAの基礎を解説させてください。
既に学んでいるという方は飛ばして頂いて結構です。
====次の====まで飛ばし可====
VBAの基礎
開発タブの追加
まずはエクセルの上の画面に「開発タブ」を追加するのがスタートです。

通常は「開発タブ」は表示されていません。
こちらは「リボンのユーザー設定」から表示設定を行います。
そのためには、下の画像のエクセル画面上の「ファイルタブ」をクリックし、「その他」⇒「オプション」と進んでください。

そうすると「リボンのユーザー設定」が表示されます。

リボンのユーザー設定の右側に「開発」とあるので、こちらにチェックを入れてください。

そうすれば、エクセル画面の上に開発タブが追加されます。

開発タブが追加されたら、上の画像の「Visual Basic」の箇所をクリックしましょう!
そうしたら、コードを書く画面が表示されます。(Alt+F11でも同じことができます)

もし、ワークシート画面に戻る場合は、上の画像のエクセルマークをクリックします。
変数の宣言を強制する
こちらは魔法の呪文みたいなものだと思ってください。
必ず行っておきましょう!
Visual Basic画面の上の「ツール」をクリックしましょう!

上の画像のように、ツールをクリックすると「オプション」というのが表示されます。
こちらで、下の画像の「変数の宣言を強制する」の箇所にチェックを入れておきましょう!

標準モジュールを作成
フォルダとの違い
前回、モジュールとはフォルダのようなものと解説しました。
但し、通常はフォルダの中にファイルを作成し、更にファイルに書き込みを行いますが、このモジュール内には関連の処理を直接書いていきます。
関連の処理とはこの場では、「Sub~End Sub」「Function~End Function」を書くと覚えておいてください。
SubやFunctionを一つの単位として、色々とコードを書いていくイメージになります。後述する「Call」まで実際に行って頂くと、イメージがかなり鮮明になると思います。
実際にモジュールを作成する
下の画像の標準モジュールにて、右クリックしてください。

「挿入」と表示されたら、右側の矢印をクリックしてください。
そしたら、下の画像の「標準モジュール」をクリックしてください。

モジュールにも3種類がありますが、あくまで「標準モジュール」が正しいので、そちらはお気をつけください。
標準モジュールが追加されたら、下の画像のようになります。

モジュール名はプロパティ画面から変更できます。
モジュールにコードを追加する
コードは前述のようにSub~、Function単位で記述します。
試しに、下のコードを追加したモジュールに貼り付けてみてください。
Sub TEST()
MsgBox "Hello World!"
End Sub
次に、コード上にカーソルを置いたまま、下の画像の「実行ボタン」をクリックしてください。

そうすると、コードが実行され、「Hello
====











コメントを残す