先にざっくりまとめておきます。
さて、前回書くと宣言したプログラミング講座の初回となります。まず今日は最初に全体的なVBAのお話です。ぶっちゃけ、わからなくなれば後から見直せば良いので、さらっと読むだけにしてください。
ここで、まじめに全部理解しようとしてもあまり意味はないので、ざっくりよんで、さっさと2-1へ進んでください。
エクセルを開いたら、「Alt」を押しながら、「F11」を押します。するとVBエディタが開きます。左の方にプロジェクトと書いた場所があり、そこにSheet1から3とThisWorkbookと書いてあると思います。またそのあたりを右クリックして、「挿入」というところにカーソルを合わせると、「ユーザーフォーム」「標準モジュール」「クラスモジュール」というところがあります。それぞれをクリックして、その中にプログラムを書くことになります。
エクセルはシートがいくつもあるので、そのシートでしか使わないプログラムやそのシートを操作した時に使いたいプログラムはそれぞれのシートに書くことになります。
ワークブックに対しての操作で実行したいプログラムを書きます。入門者が知っておくべきは、そのエクセルファイルを開いた直後に実行したいプログラムはここに書くということです。
ワークシートとは別に入力フォームなんかを使用するときに使います。
どこからも共通で使うプログラムをここに書きます。
入門者は使う必要なし
サブプロシージャとファンクションプロシージャがあります。
単純に実行するためのものです。
実行した結果が返ってくるものです。エクセルの関数をイメージしてもらえるといいです。SUM関数だったら、合計した結果が出てきますよね。
プログラム上では変数に数字を代入したり、文字列を代入したりして使用します。で、使う変数は「これは変数です」と書いてやる必要があります。で、これを書く位置によって、使える範囲が変わります。書き方はいろいろありますが、とりあえずは次の2パターンを覚えておけばよいかと思います。
Const teisu As Double = 具体的な数字(Doubleは小数を使います)
とかは初めから使うと良いと思います。
Dim i As Long
って、感じで定義したものに、
i = 1
って感じで代入します。
文字列の場合は、文字列をダブルクォーテーションで囲みます。
Dim s As String
s = “ここに代入する文字列”
計算
計算したり文字列をつないだりします。
i = 3 + 4
とか、こんな感じです。ここで面白いのは、プログラミング言語の代入の際に使う「=」は等式にする必要はないので……
i = i + 1
というように書くと、もともと「i」に代入してある数に1を足した数がiにさらに代入されることになります。
また、文字列の場合は
s = “もじ” & “れつ”
というように「&」を使ってつなぎます。これも数字と同様に
s = “もじ”
s = s & “れつ”
というような書き方ができます。
オブジェクトってのは、しっかり説明するとややこしいので、とりあえずは便利なものとだけ思っておいてくださいw代入する時のルールも変数の時とは違って、
Set obj = オブジェクト
こんな形になります。そして、オブジェクトの後ろにドットを付けて命令を書きます。こんな感じになります。
obj.Value
変数の値によって、後に続くプログラムを実行するかしないかを決めることができます。他にも書き方はありますが、とりあえずはIF文だけ使えれば十分だと思います。
知っておくべきはDo~LoopとFor~Nextの2つです。
Do Until i = 10
‘iが10になるまで実行
Loop
Do While i = 10
‘iが10の間は実行
Loop
Do Until i = 10
‘とりあえず1回実行してから、iが10になるまで実行
Loop
Do
‘とりあえず1回実行してから、iが10の間は実行
Loop While i = 10
For i = 1 to 10
’10回ここを実行(iは1からスタートして、繰り返すたびに1ずつ増える。)
Next