
taka



最新記事 by taka (全て見る)
- 『雑記』最近の私の話~ - 2019年9月26日
- 【動画】自作パソコン構成変更!ケースをNZXT H500に交換しました! - 2019年6月5日
- VBA 『Array関数』指定した要素で配列を作成する - 2019年5月23日
- 「動画」初完全ワイヤレスイヤホン『Jabra Elite Active 65t』 - 2019年5月17日
- VBA 日付で令和を簡単に判定してみよう - 2019年5月7日
どうもtakaです(^^♪
さて、VBAを覚えたい人からたまに聞くのが「マクロの記録のコードを見て、それを編集したりしています。」のような方がいます。
個人的には「マクロの記録からVBAを覚えようとするのはやめておいたほうがいい」と思っています。
今回はマクロの記録をお勧めしない理由をご紹介します。
VBAを【本気】で覚えるのならマクロの記録はおススメしません
まず初めに弁解しておきますが、マクロの記録を全否定するつもりはありません。
マクロの記録は便利な機能です。マクロの記録を使用する人は「コードに無駄が多い」など無関係ですし、一定の内容を繰り返すくらいなら十分動いてくれますからね(笑)
私が言いたいのは【VBAで自分のオリジナルのツールを作成したい】などを考えている場合です。
この場合はマクロの記録に頼るのはやめておきましょう。
なぜマクロの記録をおススメしないのか?
なぜ、【VBAで自分のオリジナルのツールを作成したい】などの場合はマクロの記録がおススメししないのか?
それは一定規模以上のツールを作成したいのであれば、そのツールがどのような手順で動いているのかをしっかりと把握しておく必要があるからです。
どういう理屈で動いているのかを把握できていないとメンテナンスなどもできないですからね(*_*;
今後VBAでいろいろなツールを作成したいのであればマクロの記録に頼らないで言ったほうがいいです、理由は先ほど少し話ましたが【コードに無駄が多いから】です。
セルA1からA10に【a】を入力するとします。これをマクロの記録をするとこのように記録されます。
Sub Sample() Range("A1").Select ActiveCell.FormulaR1C1 = "a" Range("A2").Select ActiveCell.FormulaR1C1 = "a" Range("A3").Select ActiveCell.FormulaR1C1 = "a" Range("A4").Select ActiveCell.FormulaR1C1 = "a" Range("A5").Select ActiveCell.FormulaR1C1 = "a" Range("A6").Select ActiveCell.FormulaR1C1 = "a" Range("A7").Select ActiveCell.FormulaR1C1 = "a" Range("A8").Select ActiveCell.FormulaR1C1 = "a" Range("A9").Select ActiveCell.FormulaR1C1 = "a" Range("A10").Select ActiveCell.FormulaR1C1 = "a" End Sub
長いですよね?もちろん操作を記録するという特性上しかたないのですが、すべてのセルに対して【セルを選択して文字列を入力する】という処理をしています。
マクロの記録は操作された作業を記録するので、直接コードを書くプログラムよりとっても長くなりがち。
では、VBAを多少知っておけばこのように作成できます。
Sub Sample() Range("A1:A10").Value = "a" End Sub
かなりすっきりしましたよね?セルに【a】を入力するという処理はこれだけで十分なんです(‘ω’)
このようにマクロの記録からVBAプログラムを覚えてしまうと無駄なコードを覚えてしまい、開発効率がとっても悪くなってしまうのです。
VBAに興味がないならマクロの記録はオススメ
逆にVBAを覚える気がないならマクロの記録はお勧めです(^^♪
関数ではできないような処理や、ある程度の自動化は可能ですし、簡単に作成することができるのでVBAに興味がなくてもマクロの記録はExcelスキルとして覚えておくといいかと思います(^^♪
フォロー・チャンネル登録お願いします
VBA以外についてのブログはこちら↓
https://yb-log.com/■Twitterフォロー
Follow @taka_pc1027■YouTubeチャンネル登録
コメントを残す