初心者のためのExcelマクロ超入門(絶対できるVBA開発)

マクロがまったくわからない人のためにエクセルマクロやVBAについてできるだけわかりやすく書いています。Twitter:@shuhhohhey

初心者のためのExcel エクセルマクロVBA入門-プログラミング基礎(ロボに命令する)

プログラミングの基礎って?

記念すべきVBAカテゴリの50回目がプログラミング基礎の1回目とは。実に面白い。(古)
今までオブジェクトというものをロボに例えて来ましたので、もう少しロボのままでいてもらいます。(笑)

今回からプログラミング基礎を学びます。扱うのはVBAというプログラミング言語です。そうマクロを組むのに必要なアレです。しかし、安心してください。VBAは言葉です。ぶっちゃけ英語よりも簡単です。

コンピューターが理解する言葉というのは突き詰めれば2つしかありません。

すなわち「0」か「1」か?

こんな本質的な話をするつもりはないので余談ですがコンピュータというのはエクセルもそうですが、結局0か1かでしか理解しません。超高機能な電卓のようなものなんです。所詮PCなんぞは。

それはさておき、今回はエクセルマクロに限定してお話をします。プログラミングとは・・・

エクセルを動かす命令を書くこと

です。

f:id:drumer2sh:20131111110800p:plain

いけ!鉄人!


みたいなもんです。要はマクロとは自動でエクセルに仕事をさせるわけですから、エクセルを動かす内容を「書く」必要があります。この「書く」作業をプログラミングと言います。

エクセルを動かそう!

では、エクセルを動かすための命令を書く場所。があります。それがVBE(Visual Basic Editor)と呼ばれるツールです。エクセルにくっついているマクロを作成するためのソフトです。VBEはエクセルから起動します。
エクセルを開いてAlt+F11キーを押すと、VBEは起動します。


f:id:drumer2sh:20131111110801p:plain


画像出典:http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_vbe.html


どらが何か?とか使い方は?なんてのはこの出典のところを見ていただければ、わかります!

以上!

と言いたいところですが、もう少しロボっぽく説明します。(笑)
これ逆にわかりにくくないですか?的なのは、後で受け付けます。

プロジェクトウィンドウ

簡単に言うとロボの一覧です。シートロボとか、ブックロボとかあります。
後は、エクセルに命令書を格納する標準モジュールがあったり、設計書(クラス)を格納するクラスモジュールがあったり、フォームという特殊な画面を格納するフォームモジュールがあったりします。
この一覧画面から、色々と各ロボや格納されている命令書(コード)を管理します。

プロパティウィンドウ


これはわかりますよね?各ロボの状態を管理するウィンドウです。ここに書き込むことで直接状態を設定することができます。またロボの名前も最初に設定されている名前から自分で独自に設定することもできます。

コードウィンドウ

実際に命令(コード)を記述場所です。ここにVBAという言葉で、エクセルを動かすためのコードを書いて行くわけです。

イミディエイトウィンドウ

実際に自分が書いた命令が正しいか?どうか?ということを調べたりするときに使います。一緒にウォッチウィンドウなんかも使っていくので、合わせて覚えておきましょう。

シートオブジェクトとブックオブジェクトには直接コードが書ける。


プロジェクトウィンドウを見るとわかりますが、最初にSheet1~3とThisWorkBoookというのがあると思います。これはまさしくエクセルを構成しているロボ(オブジェクト)の一覧です。そしてエクセルでは、シートとブックについては直接コードを書くことができるようになっています。

理由は、イベント管理するためとかあるのですが、あまり知らなくてもいいです。最初は。

じゃあさっそくエクセルに命令してみましょう。イメージとしてはエクセルというたくさんのロボの集合を動かすイメージです。
Sheet1のA1セルに「Hello! VBA!」と出力してみます。エクセルのSheet1に直接書けばいいのですが、今回は命令を実感するためです。さっそく書いてみましょう!

どのロボ(オブジェクト)に命令するの?


先ほども言った通り、エクセルはたくさんのオブジェクトの集まりです。したがって命令を出すにはどのオブジェクト(ロボ)に対して、命令を発令するのか?ということを明確に書いておく必要があります。ここでは、Sheet1に対して命令を出すわけです。
ですのでSheet1に命令を書いてみましょう。プロジェクトエクスプローラのSheet1をダブルクリックしてコードウィンドウにコードが書けるようにします。
そこでこんな風に打ち込んでみます。

Public Sub Test1()

    Range("A1").Value = "Hello! VBA!"

End Sub

できましたね?では、このままF5を押して実行しましょう。そしてSheet1のA1にHello! VBA!が入力されているはずです。
これも立派な!マクロです。
これであなたは立派にまず1つマクロを組んだことになります。自動でエクセルを動かしたのですから!


これがエクセルを動かすということです。次回もう少し、この辺を解説します。


今日はここまで。

かしこ