VBAの基本処理

フリーランスエンジニアの働き方

この記事では、VBAの基本処理について解説していきます。
この記事を読めば、VBAの基本は理解できます。

スポンサーリンク

セルの指定

セルを指定するには、
Range
による方法と
Cells
による方法の2通りがあります。

Range

Rangeは、「A1」などのような
「アルファベットの列名+行番号」
でセルを指定する方式です。

A1セルに文字列を書き込むときには次のように書きます。

Range("A1").Value = "あいうえお"

逆にA1セルから値を取得し変数に代入するには

a = Range("A1").Value

と書きます。

長方形のセル範囲を指定することもできます。

Range("A1:D4").ClearContents

ここで
ClearContents

セルの値を削除する
という命令です。
上記のコードを実行すると、A1とD4に挟まれた長方形のセル範囲の値が削除されます。

Cells

Cellsは、
「行番号+列番号」
でセルを指定する方式です。

B1セルに文字列を書き込むには次のように書きます。

Cells(1, 2).Value = "かきくけこ"

ここで、Rangeと違い、「列、行」ではなく「行、列」なので、注意してください。

B1セルから値を取得し変数に代入するには

b = Cells(1, 2).Value

と書きます。

シートの指定

ワークシートは
Worksheets
で指定します。

次のコードは、1番目のワークシートのA1セルに文字列を書き込みます。

Worksheets(1).Cells(1, 1).Value = "あいうえお"

ワークシートはシート名で指定することもできます。

Worksheets("Sheet1").Cells(1, 1).Value = "さしすせそ"

ブックを開く

ブックは
Workbooks.Open
で開きます。

Workbooks.Open ("Book2.xlsx")

ブックを閉じる

では、ブックを閉じるのはどうすればいいのでしょうか。

まず、ブックを閉じるにはブックを変数に代入しなければなりません。

Dim book As Workbook
Set book = Workbooks.Open("Book2.xlsx")

ここで新しい命令が出てきました。
まず
Dim
とは、特殊な型の変数を使うときにその変数を宣言するための命令です。
ここではWorkbook型の変数bookを使うことを宣言しています。

上記の「a」や「b」は宣言なしで使えましたが、Workbook型の変数は宣言しないといけません。

これは、実行してみてエラーが出たらDim文を付け加える、で全く構いません。

そして
Set
とは、変数に値を代入する命令です。
Dim文を使わないといけない変数にはSetを使います。

上記の「a」や「b」はSetを使わなくても代入できました。

話が脱線しましたが、ブックを閉じるには上記のbookに対して

book.Close

と書きます。

計算

+:加算
-:減算
*:乗算
/:除算
¥:剰余

a = 3
b = 2
Cells(1, 1).Value = a + b '5
Cells(2, 1).Value = a - b '1
Cells(3, 1).Value = a * b '6
Cells(4, 1).Value = a / b '1.5
Cells(5, 1).Value = a \ b '1

ここで

は、コメントのマークです。行のどこからでも、’を付けると以降がコメントになります。

文字列

文字列は”で囲みます。

If

Ifは条件を指定し、その条件に当てはまる場合実行されます。

a = 1
b = 2
If a < b Then
    Cells(6, 1).Value = "aはbより小さいです"
End If

IfブロックはEnd Ifで終わらせます。

条件の指定方法には

=:左と右が等しい
<>:左と右が等しくない
<:左が右より小さい
<= :左が右以下 >:左が右より大きい
<=:左が右以上

があります。

ElseIf
は、最初の条件に当てはまらない場合の次の条件を指定します。ElesIfはつなげられます。
Else
は、どの条件にも当てはまらない場合実行されます。

a = 2
b = 1
If a < b Then Cells(6, 1).Value = "aはbより小さいです" 
ElseIf a > b Then
    Cells(6, 1).Value = "aはbより大きいです"
Else
    Cells(6, 1).Value = "aとbは等しいです"
End If

このコードでは、「aはbより大きいです」がA6セルに出力されます。

For

For
は、繰り返しです。例えば1から100まで繰り返すなら

For r = 1 To 100
    Cells(r, 1).Value = r
Next

と書きます。
このコードでは、単純に行番号を出力しています。

Step
で、刻みを変えられます。

For r = 1 To 100 Step 3
    Cells(r, 1).Value = r
Next

3行おきに出力されます。

With

With
は、「そのブロックの間この記述を省略する」という意味で、例えば次のように使います。

With Worksheets(1)
    .Cells(1, 1).Value = "たちつてと"
End With

Withブロック中の.の前には、Withの後で宣言した文が挿入されて実行されます。

このコードだとあまりありがたみはないですが、同じものに対しての処理を続けて書くとき、コードが見やすくなり、バグも減ります。

MsgBox

MsgBox
は、メッセージボックスを出します。

MsgBox ("なにぬねの")

まとめ

この記事では、VBAの基本処理について解説しました。

セルを指定できて、計算ができて、IfやForが使えれば、基本的なVBAのコードは書けます。
VBAへの第一歩を踏み出してください。

VBAには詳細なヘルプが付いています。ネットもあります。分からなくなったらヘルプやネットで調べると良いでしょう。

VBAはそれほど難しいプログラミング言語ではありません。恐れずに書いていきましょう。

エージェントへの登録はお済みですか?

今すぐフリーランスになる気がなくても、エージェントへの登録は済ませておくことをお勧めします。理由はストレスや疲労が限界に達してからだと遅いから。

現在の自身のフリーランスとしての価値・単価相場を把握できますし、条件にあった案件をキャッチできるようになるので、いざフリーランスになろうとした際に早期に手が打てます。

エージェント登録は無料なので、今はフリーランスにならなくとも登録だけはしておくべきです。

真っ先に登録すべきエージェントは、圧倒的に多くのクライアントを開拓しているDYMテック。2500社の優良な取引先と、条件交渉力が強く高条件で仕事を紹介してくれるエージェントです。

案件紹介のみでなく、エンジニアとしてのキャリア相談や業界動向のキャッチアップなど、フリーランス対してのサポートも充実していますので、初めてフリーランスに挑戦する方も安心です。

DYMテックの詳細を見る

フリーランスエンジニアの働き方
スポンサーリンク
shigotoswitchをフォローする
しごとスイッチ