今回はプログラミング経験の無い人が独学で学習していく場合に、一番最初に試してみると良い学習方法を紹介します。
私自身も初めてプログラミングを経験したのはExcel VBAであり、完全に独学で習得しましたが、学習しだした頃は今回紹介する手法を使っていました。
今回の記事では、VBAを初めて学ぼうとする際におすすめする最初の手順を画像と併せてわかりやすく解説していきます。
手順通りに進めていけば、誰でも最初の簡単なプログラムは作れるようになっているので、是非ご一読ください。
※用意した参考画像や手順は残念ながらExcel 2010と古いため、もっと新しいExcelで試そうとする場合は若干手順が異なる可能性もあります。ご了承ください。
当記事に沿って学習する際に用意するもの
ExcelのみあればOKです。
後は何も要りません。
当記事の手順通りにExcelの操作をしてもらえば、最初のプログラムを作成して動かすことができます。
今回の学習におけるポイントは「マクロの記録」機能
Excelには、自身がExcel上で操作した手順を記録し、同じ操作を再度呼び出して実行するという「マクロの記録」という機能があります。
「マクロの記録」機能を表示して記録処理を開始すると、それ以降に貴方が特定のセルに値を入力したり、セルをコピーしたり、シートを作ったりといった全ての操作を忠実に記録し、「マクロの記録」の停止ボタンを押すまで記録は続けられます。
一度記録した操作は名前を付けて管理することができ、必要な時に同じ操作を呼び出して、手で行っていた操作を自動化することができる機能です。
ただ、その記録された操作内容は、実はExcelが自動的にVBAのプログラムに変換して保存しており、過去に保存した「マクロの記録」を呼び出して実行する際には、自動作成されたVBAのプログラムを呼び出して実行しているのです。
だったら、VBAのプログラムを自動作成できる上記機能を利用して、プログラミングの学習に活用するやり方を紹介するのが今回の記事の趣旨なのです。
マクロの記録で最初のプログラムを作成する手順
当項では、Excelを起動した直後から、「マクロの記録」で自動生成されたプログラムをカスタマイズして動かしてみることろまでの一連の手順を細かく紹介していきます。
Excelを起動し、メニュー内に「開発」を追加する
取り敢えずExcelを起動します。
ExcelでVBAのプログラムを編集きるようにするには、少しだけExcel自体の設定が必要になるので、その手順を紹介していきます。
Excelを起動したら、画面左上の「ファイル」をクリックします。
画面左側で開いた項目のなかの「オプション」をクリックします。
「Excelのオプション」画面内の左側の項目下部にある「リボンのユーザー設定」をクリックし、画面右側の四角い枠内にある「開発」のチェックが外れていると思うので、ここにチェックを付け、画面下部の「OK」ボタンを押下します。
その後「Excelのオプション」画面を閉じてExcelの最初の画面に戻ると、画面上部のメニュー内に「開発」という項目が増えています。
この「開発」を開き、VBAを編集する画面を表示させたり、前述した「マクロの記録」が利用できます。
「マクロの記録」で操作を記録する
先ほど新しく追加した画面上部の「開発」をクリックし、「マクロの記録」をクリックします。
「マクロの記録」ウィンドウが表示されます。
ここではこれから記録する操作(マクロ)の名称などの指定ができますが、今回は表示されている内容から変更も指定も行わず、このまま「OK」ボタンを押下します。
「マクロの記録」が記録中モードになりました。
今後の行う操作はすべてExcelで記録されて、VBAのプログラムに置き換えられます。
では、現在開いているシートのA1のセルに あいうえお を入力し、その後画面上部の「記録終了」をクリックして記録モードを停止します。
これでA1のセルに「あいうえお」と入力した操作が「マクロ」として登録されました。
自動生成されたVBAのプログラムを実行する
まずは自動生成されたVBAのプログラムを見てみましょう。
画面上部の「マクロ」をクリックします。
このExcelファイルに登録されている「マクロ」のリストが表示されます。
今回「マクロ名「Macro1」が選択されていると思われます。
そのまま当ウィンドウ右側の「編集」ボタンをクリックします。
今まで見たことのない画面が表示されたと思います。
これがExcelやWord、Accessなどで使用できるVBAの作成、編集用の画面です。
この画面の右側に記述されているアルファベットの文字列がVBAのプログラムです。
貴方が作った一番最初のプログラムという訳です(Excelが作ったとも言えますが・・・)。
では、このプログラムを実行させてみましょう。
VBAの編集画面が起動したせいで裏側にいってしましった、Excel側の画面を表示させまししょう。
そして、A1のセルをいったん空白に編集し、画面上部の「マクロ」をクリックしてください。
再度、登録済みマクロの一覧を表示させる画面が起動します。
先ほどは「編集」ボタンをクリックしましたが、今回は「実行」ボタンをクリックしてください。
そうすると、登録済みマクロの一覧画面は自動で閉じて、シートのA1のセルに「あいうえお」が表示されたかと思います。
これは上記で確認したVBAのプログラムが実行されて、シートのA1のセルに文字を自動で入力したことを意味します。
最初のプログラムが実行できました。
おめでとうございます。
自動生成されたプログラムを改造してみる
今回自動生成されたVBAのプログラムに対して、色々と改造をして処理を変えてみましょう。
では、再度画面上部の「マクロ」をクリックし、次に表示される登録済みマクロの一覧画面にて「編集」ボタンをクリックして、VBAの編集画面を表示してください。
VBAの編集画面が表示できたら、画面右側のプログラムの
と記述された行の次に改行を入れて、以下の一行を追加してください。
その後、画面上部の横を向いた三角をクリックするか、VBA編集画面の裏で起動している、登録済みマクロの一覧画面内の「実行」ボタンをクリックしてください。
そうすると、Excelの画面上にポップアップで「テスト」と書かれたメッセージが表示されたかと思います。
今回紹介した学習手法のポイント
今回紹介した「マクロの記録」を使ったVBAの自動生成機能を利用したプログラミング学習の手法において、重要なポイントを紹介していきます。
「マクロの記録」で生成したプログラムを改造して色々試す
「マクロの記録」で自動生成されたVBAのプログラムを色々と改造して動かすことを繰り返していくことで、どんどんVBAやプログラミングそのものに対する理解が深まります。
プログラミングでは、変数という仕組みがあったり、条件分岐や繰り返し構文などの制御構文という仕組みがあります。
それらはプログラミングにおける基本的な仕組みや概念ですが、「マクロの記録」では、ユーザーの操作を順番に記録していくだけの仕様上、自動生成されたプログラムではそういった仕組みや概念が使われたプログラムは生成されません。
よって、プログラミングを学習するベースとなるプログラムは、今回の「マクロの記録」で生成したプログラムを使用し、インターネットのVBA入門記事やVBAの学習用書籍の内容を参考にしてプログラムの改造をしながら、変数や各制御構文などのプログラミングの基礎を学んでいくような流れが良いかと思います。
「マクロの記録」で生成したプログラムはプログラミングのお手本にはならない
自動生成されてちゃんと動くのに「お手本にはならない」と言われても、プログラミングを始めたばかりではなかなかピンとこないかと思います。
確かに「マクロの記録」を使うと、Exceが自動でVBAのプログラムを生成してはくれますが、読みやすく、効率的なつくりになっているかと言えば、まったくなっていません。
通常プログラミングでは、頻繁に使われる類似した処理を「サブルーチン化」したり「関数化」して、同じプログラムを何度も書かなくても済むようになっています。
また、プログラムを実行している間だけプログラム内部で値を保持し、必要によって値を取り出したり入れたりできる「変数」という仕組みもあります。
プログラミングが上達し、こういった仕組みを活用することで、大量のプログラムを書かなくても効率的に処理を自動化することができるのですが、「マクロの記録」で生成したプログラムでは、ユーザーが行った操作を都度、VBAのプログラムに置き換え、その際には操作の前後の関連性を何も考慮しないため、同じプログラムが何度も記述されていたり、読み辛く非効率なプログラムになっています。
よって「マクロの記録」で生成したプログラムは、確かに記録した通りに動きはしますが、プログラミングのお手本にはなりません。
自動生成したプログラムを業務で実際に使用する場合は、なるべく読みやすく書き変え、重複した記述を排除したり作り替えたりして、ある程度手直しをしてあげる必要があります。
Excelの操作をVBA化する際の辞書的役割で使用する
Excelで行っている作業を自動化する場合は、例えば「列を選択する」「行を非表示にする」「オートフィルタで絞込をする」「罫線を引く」などの様々な操作をVBAでプログラムとして記述していく必要があります。
そのすべてをいちいちインターネットで調べながらプログラムを書いていくのは、VBA初心者の人には大変です。
だったら、VBAで記述したい操作は、都度実際に「マクロの記録」に記録させてプログラムを試しに生成するといった辞書的な使い方も便利です。
例えば「列を非表示にする記述方法」を知りたい場合、いったん「マクロの記録」で試しに特定の列を非表示してする操作だけを記録させ、VBAのプログラムを生成させます。
その生成させたプログラムを参考にして、メインで作っているプログラムにその処理を書き足すといったやり方が簡単です。
ただ、前述した通り、Excelが自動生成したプログラムは非効率な記述になっているので、必要によって見直しは必要です。
最後に
VBAはMicrosoft Officeがインストールされていれば、新しいソフトをインストールすることなく使用でき、習得後は一般的な事務作業の自動化や効率化をするためのツールとして活用できます。
また、数あるプログラミング言語のなかでも言語仕様がシンプル且つ柔軟で、プログラミングに馴染みのない人が新しく覚えるプログラミング言語として最適だと思います。
是非今回の記事をきっかけにして、プログラミングを習得して皆さまのお仕事に役立てもらえればと思います。
それでは皆さまごきげんよう。
↓プログラミングが上達したら事務作業の自動化にも積極的に挑戦してみましょう。