●今までプログラミングなんかに触れたことが無くて
「今更そんなの使いこなせるわけない」と思っている方
●小学校でプログラミングが必修科目になり、
子どもに「ここ分からないから教えて~」と言われても
「無理!!」と言うしかなくて困ったお父さん・お母さん
そんなプログラミング全くの初心者に向けて、
「こうやったら自動で動くソフト(Excelマクロ)が作れるんだ!」
というのを理解していただくように、
ゼロからソフトを作っていく過程を紹介していきたいと思います。
Windowsのパソコンがあれば大抵標準装備されているExcelを使って紹介しますので、
この投稿のシリーズを最後まで読んでいただければ、
また、投稿を読みながら実際に一緒にソフトを作っていっていただければ、
「自分で実際にソフトを作ることができて、プログラミングに少し自信がついた!」
と思ってもらえるかと思いますので、是非とも一緒に手を動かしてみてください。
本記事の目標
【Excelでプログラミングができる環境を準備する!】
今回はプログラムコードを書いていく場所を用意していきます。
プログラムコードというのは、実際にパソコン側に指示を出す命令文だと思ってください。
パソコンはこの命令文の通りに動きます。
コードを書く場所はプログラミング言語によって様々です。
また書いたコードを実際に動かす方法も、プログラミング言語によって様々です。
プログラミング言語によっては書く場所を準備するために色々な環境構築が必要だったりします。
個人的にはここが一番難しいと思っていて、ほかのプログラミング言語を始めるときの最初の挫折ポイントだと思っています。
しかし、Excel VBAはExcelが入っているパソコンであれば基本機能として実装されているので、非常に簡単です。この通りに進めていけば、コードを書ける状態になります。
Step1 Excel上部のタブに「開発」を表示する
Excelは、初期設定状態だとプログラムやVBA関係の操作をする「開発」というタブが隠れた状態になっています。まずはこれを表示していきます。
最初は上記のように「開発」というタブがない状態です。
この状態で、「ファイル」タブをクリックします。
すると左側に「オプション」という部分がありますので、そこをクリックします。
クリックすると、下記のような画面が表示されますので、「リボンのユーザー設定」をクリックし、
右側のリストの中の「開発」にチェックを入れて「OK」を押します。
そうすると、「開発」タブが表示されるようになります。
ExcelのバージョンによってはExcelの再起動が必要な場合があります。
すぐに表示されない場合は、Excelを一度閉じて、もう一度開きなおしてみてください。
「オプション」の「リボンのユーザー設定」や「クイック アクセ ツール バー」を編集していくと、Excelをご自身が使いやすい形に自由にカスタマイズすることができます。
ここのカスタマイズの方法についても、またいずれ書いていこうと思います。
Step2 モジュールを用意する
「開発」タブが表示されるようになれば、コード書く準備をするのもあと少しです。
「開発」タブをクリックし、リボンの一番左にある「Visual Basic」をクリックします。
そうすると新しいウィンドウが立ち上がります。
これがExcelでプログラミングをする場所になっています。
ここにコードを書く場所(モジュール)を新しく作ります。
上にある「挿入」のタブをクリックし、「標準モジュール」をクリックします。
すると左側の「プロジェクト -VBAProject」の部分に「標準モジュール」というフォルダが追加され、その中に「Module1」というモジュールが追加され、画面に「Book1 -Module1(コード)」の画面が表示されます。
この「Book1 -Module1(コード)」の画面にコードを書いていくことになります。
このモジュールですが、今は「Module1」という名前がついていますが、この名前を変更することもできます。
方法は、左側の「プロパティ – Module1」の部分にある「オブジェクト名」の欄を書き換えることで、モジュールに名前を付けることができます。
複雑なコードを書けるようになってくると、他の人や後々の自分がわかりやすいように、複数のモジュールを用意していくことがあります。その時に、モジュールに名前を付けておけば、どのモジュールにどんなことを書いたかわかりやすくなりますので、プログラムの修正がやりやすくなります。慣れてきたら、わかりやすい名前を付けておくのをオススメします。
Step3 モジュールに「Option Explicit」を記入する
新しくモジュールを作ったら、モジュールの一番最初の行に「Option Explicit」を記入しておくことを忘れずに。
これが無いと、モジュール内に未定義の変数があった場合でも自動的に変数として生成され、マクロがエラーを出すことなく動いてしまいます。
エラーを出さないのであれば問題ないように聞こえますが、本来出るべきエラーが出ないということは、意図している動きと別の動きをしてしまうので、作りたいものが作れなくなってしまいます。
「Option Explicit」を記入していると、未定義の変数があった場合、マクロが起動する前にエラーを出してくれて、未定義の変数がある場所をハンチングして教えてくれます。
よくあるのが定義した変数名の打ち間違いや、関数の綴り間違いなので、修正すれば問題なく動くことが多いです。
未定義の変数とかよくわからない、という場合でも、とりあえず【モジュールの一番最初の行に「Option Explicit」を記入】ということだけ覚えておけばOKです。
Step4 プロシージャを用意する
モジュールができたら、ここにプログラムコードを書いていきます。
プログラムを起動したとき、モジュールの一番上から一番下まで全ての命令文を実行するわけではなく、決められた部分だけを動かしていくことになります。
例えば、モジュールの中に
Sub テスト1
と記入してエンターを押すと、自動的に下記のように表示されます。
この Sub~End Sub の範囲をプロシージャと言います。
この時の「テスト1」というのがプロシージャ名と言います。
プログラムを起動するとき、このプロシージャ名を指定して起動します。
そうすると、このプロシージャの中の命令文が実行され、End Subまで命令が実行されたら、プログラムが終了します。
プログラムの起動の方法はいくつかありますが、1つは「開発」タブにある「マクロ」をクリックし、今あるマクロ一覧を読みだして実行する方法です。
今、マクロ一覧を表示すると、先ほど作成した「テスト1」が表示されているはずです。
これを選択して「実行」をクリックすると、「テスト1」のプロシージャが実行されます。
今回はまだ中身を何も書いていないので何も動きませんが、
実際には「テスト1」が起動され、何もせずに終了、という動きをしています。
プロシージャの種類には「Sub」以外にも「Function」というものもあります。
一番大きな違いとしては、「Sub」は上記のマクロ一覧で表示されますが、「Function」はマクロ一覧には表示されません。
じゃあ「Function」はどうやったら起動できるのかというと、主に「Sub」の中から読みだして起動させるのが基本です。
複雑なコードを書いていくと、色々なプロシージャ間を行き来しながらプログラムを動かしていくので、その時に使うことがあります。
ただ、そんなに複雑なコードを書かないのであれば、基本的に「Sub」で問題ないと思います。
これでプログラムコードを書く準備は完了です。
あとはモジュールの中に任意のプロシージャを作って、その中にプログラムコードを書いていけば完成です。
コメント