VBAの基本 2/Excelマクロ基礎

前回記事でマクロが書ける環境ができたところで、次にやることは構文の基礎を覚える事だよね

基礎といってもやりたい事によっていろいろあるんだけど、ボクの場合はやりたい事はその都度ググったりして部分的に解決しちゃってるから、試験に合格するという目標に絞ってみる

まずはVBAでよく扱う専門用語について

言語によって同じ言葉でも若干意味が違ったりするので、あくまでVBAで使う言葉の意味ということで。。


◆Object

よく「部品」なんて訳されるけど、Excelで部品って言われてもねぇ

こういうときは具体的に言わなきゃわからない

VBAで言うObjectとは、セル・シート・ブックの事

そこに含まれる画像や図形、グラフなどもObject

まずはその程度の理解で困らないよ


◆メソッド

メソッドとはObjectに対する命令の事

例えば、A1セルを選択する場合はA1セルを左クリックするよね

それをマクロにやらせるのがメソッド

Sub 任意のマクロ名()

Range(“A1”).Activate

End Sub

これを実行するとA1セルがアクティブになる

1行目と3行目は後述しますが、2行目のRangeがセルの事

(“”)内がセル番地を表すのでこの場合はA1セル

Objectとメソッドはドットで繋ぐ

.ドットの後のActivateがアクティブにしなさいという命令。つまりメソッド。

※アクティブセルと選択セルの違いは別記事で書きます

※メソッドには引数(ひきすう)=オプションが使えます。これも別記事で書きます


◆プロパティ

プロパティとはObjectの状態を変化させる、またはObjectの状態を表す

よく使うのがValueプロパティ

Range(“A1”).Value でA1セルの【値】という意味

Objectとプロパティはドットで繋ぎます

A1セルに数式や関数が入っていたとしても、Valueは値を表します

「表す」といっても下記のような構文では何も起こりません

Sub 任意のマクロ名()

Range(“A1”).Value

End Sub

「セルの値」と言っているだけで、「どうしろ」と言う命令が無いからです

例えば「セルの値」を「ポップアップで表示しろ」とか、「B1セルに入力しろ」とかの命令が必要なのです

前者なら

Sub 任意のマクロ名()

MsgBox Range(“A1”).Value ‘ポップアップで表示

End Sub

後者なら

Sub 任意のマクロ名()

Range(“B1”).Value = Range(“A1”).Value ‘A1セルの値をB1セルに値として入力

End Sub


◆コメントアウト

ちなみに上記構文の 「’ポップアップで表示」 とか 「’A1セルの値をB1セルに値として入力」 の様に '(シングルクォーテーション)の後に書いた文はマクロからみると無意味となりますので、メモとして使えます

これをコメントアウトといって、メモに使うだけじゃなく、思い通りに動作しないときなどに、構文そのものを削除してしまうと戻したい時にまた書かなければならないので、一部の記述を無効化する場合に使います。

BASIC系の言語では '(シングルクォーテーション)を使います

他の言語では

/* コメント */

// コメント

などがあります

htmlでは

<!– コメント –>

こんな感じです。osamushi

 

 

 

コメント