LoginSignup
3
8

More than 5 years have passed since last update.

初心者がVBAを1週間使ったから学んだことを書いてみる

Last updated at Posted at 2018-03-09

 1週間ほどVBA使ったから初歩的なことまとめておく

上記の見出しの通り、1週間ほどVBAを扱いました。
まったくエクセルすら使ったことがないエクセル初心者です。
初心者とは言っても仕事で扱うため土日で以下の参考書でお勉強をしました。
世界でいちばん簡単なExcelVBAのe本[最新第2版]ExcelVBAの基本と考え方がわかる本
この参考書は、図解等で重要な点を分かりやすくまとめています。
大変読みやすく分かりやすいため、初心者にはおすすめできる参考書だと思います。

VBAの基礎

1.変数の定義

変数定義.xlsm
Dim <変数> As <データ型>

これで変数が定義できます。
データ型を一部抜粋し、以下に記載しておきます。
本当に極僅かですが・・・。

Integer, Long ・・・整数型
Double, Single ・・・小数点が扱える
String      ・・・文字列
※データ型に関しては後で編集する際に詳しく追記するかもしれません。

2.コメントアウト

コメントアウト.xlsm
Dim xMen     As String   'X-MENは正義のヒーロー
Dim Bikinman As String   'バイキンマンはアンパンチされる役
Dim Satoshi  As String   'ポケモンの主人公であり、マサラ人

コメントアウトは『 ' 』(Shift + 7)でできます。
コーディングの際に変数の意味やメソッドの意味をコメントして残したいと思うことも多くありました。コメントのないソースを読んで理解するのは大変です。
読む人のためにコメントを残してあげましょう。

3.条件分岐

条件分岐.xlsm
Dim num As Integer
num = 10

'============If文============
If num = 10 Then
    'num = 10 の場合はIf~End Ifの間の処理を実行
End If

'=========If Else文==========
If num > 10 Then
    'num > 10 の場合はIf~Elseの間の処理を実行
Else
    'num > 10 の場合はElseからEnd Ifの間の処理を実行
End If

'==========IfElse文==========
If num > 10 Then
    'num > 10 の時はIf~ElseIf処理を実行します
ElseIf 5 <= num And num <= 10 Then
    '5 <= num And num <= 10 の時は
    '1つ目のElseIf~2つ目のElseIfの間の処理を実行します
Else
    '変数numが上の2つの条件に当てはまらない場合
    'Else~End Ifの間の処理を実行します
End If

IF文はIfで始まりEnd Ifで終わるという決まりがあります。
If 条件 Then
で条件と合致した場合はIF文の中を処理してくれると覚えておけば初心者の場合はOKです。
ElseIfは条件を細かく設定して処理を行えると覚えておけば大丈夫だと思います。

4.繰り返し処理

繰り返し処理For文.xlsm
Dim i   As Integer  '繰り返し変数
Dim sum As Integer  '総和を格納する変数

'sumの初期化
sum = 0

'1~10までの総和を求める
For i = 1 To 10
    'For~Nextの間に書かれている処理を繰り返します!
    sum = sum + i
Next

上記のプログラムは、1~10までの数値の総和を求めるプログラムになっています。
For文は記述する際に、ForとNextで繰り返したい処理をサンドイッチするという決まりがあります。
『i = 1 To 10』は変数 i に1~10までの数字を順番に代入する役目になっています。
そのため、上記のプログラムではFor~Nextの間の処理を10回行うプログラムになっています。

では、次のFor文ではどのようなループをするでしょうか?

繰り返し処理For文.xlsm
Dim i   As Integer  '繰り返し変数
Dim sum As Integer  '総和を格納する変数

'sumの初期化
sum = 0

'1~10までの総和を求める
For i = 1 To 10 Step 2
    'For~Nextの間に書かれている処理を繰り返します!
    sum = sum + i
Next

ひとつ前のプログラムと違うところはStep 2がFor文の条件の後ろに指定されているところですね。勘の良い人ならなんとなく気づいていると思いますが、
『i = 1 ⇒ 3 ⇒ 5 ⇒ 7 ⇒ 9』と、一番最初に変数 i に代入されるi = 1から2つ飛ばしに数値が代入されています。
簡単に言うと、条件で使用される変数をStepで指定した数値の間隔で、変数に格納されるみたいです。

最後に

VBAは学んで1週間のひよっこです。
至らない点も多々あると思います。
何か間違い等の不備がある場合は、指摘いただけると幸いです。
こんなひよっこが、このような場所でアウトプットをした理由として、以下の理由があります。
私は2017年9月に新卒で現在の会社に入社しました。
研修は無く、即客先に飛ばされ、自社の上司からも基礎的なことすら教えてもらいない状況です。少しでも、右も左も分からない方への手助けになれたらと思い、こちらの記事を書きました。
VBAはもう少し学んだこともあるため、2つくらい記事を書く予定です。

3
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
8