スポンサーリンク

Excel VBA マクロの基礎講座②!基礎文法(Dim、If、For、Cell操作)

オフィスソフト
オフィスソフト
この記事は約4分で読めます。
スポンサーリンク

これまでの復習

前回の記事では、VBAマクロを始めるための準備として、拡張子の設定、開発タブの表示、マクロの有効化方法を紹介しました。

Excel VBA マクロの基礎講座①!拡張子の設定から開発タブの表示まで
ExcelのVBA(Visual Basic for Applications)を使うと、作業を自動化し、業務効率を向上させることができます。しかし、VBAを使うためには事前の設定が必要です。本記事では、VBAマクロを始めるための準備として...

本記事では、VBAの基礎文法として、変数の宣言(Dim文)、条件分岐(If文)、ループ処理(For文)、セルの操作( Cells(1, 1) )の基礎を解説します。

標準モジュールをしようする想定で書いていきます。


スポンサーリンク

セルの操作(Cells(1,1))

セルに値を入力する方法は以下の通りです。実行すると、アクティブなタブのA1に「こんにちは」と入力されると思います。

Sub セルA1の文字を変更する()
Cells(1,1).Value = "こんにちは"
End Sub
  • Cells(1,1) → A1セルを指す
  • .Value = “こんにちは” → A1セルの文字(Value)を「こんにちは」に変更する

たとえば、B3セルに数値を入力する場合は Cells(3,2).Value = 100 のように書きます。

数値には””がつかないのが特徴です!慣れないうちは全てに””をつけとくと無難です。


変数の宣言(Dim文)

VBAを含め、プログラミング言語には変数という考え方があります。一般的に数学で使うxのようなものです。例を使って紹介します。

Sub Dimの例()
  Dim x 'xという変数を使うことを宣言
  x = "こんにちは" 'xにこんにちはという文字列を代入
  
  Cells(1, 1).Value = x

End Sub

Dimで変数を宣言して、=で変数に文字や数値を代入し、変数を使うことができます。変数は次のIf文やFor文で使うので、何となくでも理解しておくと楽になります。

変数の名称は好きな文字列を使うことができます。好みにもよりますが、私のよく使う変数を紹介します。

  • i :For文で使用
  • k :For文の中のFor文で使用
  • tmp:一時的に保存する時に使用
  • num:引数に使用

条件分岐(If文)

VBAで条件によって処理を分岐する場合は If ~ Then ~ ElseIf ~ Else ~ End If を使います。

Sub If文の例()
Dim x, time
time = 18

If time < 10 Then
x = "おはようございます"
ElseIf time < 17 Then
x = "こんにちは"
Else
x = "こんばんは"
End If

Cells(1, 1).Value = x

End Sub
  • timeという変数が10未満なら、「おはようございます」をxに代入
  • time変数が17未満なら「こんにちは」をxに代入
  • time変数がそれ以外なら「こんばんは」をxに代入
  • A1セルにxを入力

このように、時間によって表示内容を変更したい時などIf文を使えば条件ごとの変更が可能です。


繰り返し処理(For文)

Excel VBAで繰り返し処理を行うには For ~ Next を使います。

Sub For文の例()
Dim i

For i = 1 To 10 Step 1 'i変数に1を代入して、1ずつ増加させ、10まで続ける。
Cells(i, 1).Value = i 'i変数をセルのi行1列目に代入
Next i 'iの値が10以下ならForに戻る

End Sub
  • 1行目から10行目のA列に数値を入力するプログラム
  • For i = 1 To 10iが1から10まで繰り返す
  • Step 1 →1ずつiを増加させる
  • Cells(i,1).Value = i → A列の1行目から10行目までに1~10の値を代入

For文は少し難しいですが、形だけ知っておけば、目的の挙動になるまで数字を微調整できるのでOKです。


【練習】簡単なマクロを作成して実行する

実際にVBAでプログラムを作成し、動作を確認してみましょう。

1~10の数値を2乗してB列に表示する

Sub 数値を2乗する()
Dim i
For i = 1 To 10 Step 1
Cells(i, 1).Value = i ' A列に1~10の数字を入力
Cells(i, 2).Value = i * i ' B列にその2乗を入力
Next i
End Sub

このマクロを実行すると、A列には1~10の数値が、B列にはその2乗の値が入力されます。


まとめ

今回は、VBAの始め方から基本文法 If文、For文、Cells(1,1) の使い方まで解説しました。

基本構文の解説

  • Cells(1,1).Value → セルの値を取得・設定
  • Dim → 変数の宣言
  • If ~ Then ~ Else → 条件分岐
  • For ~ Next → 繰り返し処理

これでVBAの基本をマスターできました!
次のステップとして、配列・関数・ユーザーフォームなどを学び、より高度なマクロを作成していきましょう!

コメント

タイトルとURLをコピーしました