スライドショースライドショー

VBAを覚えるための構文の書き方について徹底解説!


VBAを始めるときに覚えておくべき考え方・構文を知りたいな・・・
できれば、他言語経験がある人向けにVBAのクセが知りたい・・・

プログラミング経験がある人にとって、超入門からもう一度学習するのは無駄ですよね。使ったことがある言語との差分や、VBA独自の考え方・書き方だけ覚えたい人が多いのではないでしょうか。

こんにちは!フリーランスエンジニア兼テックライターの脇坂です。

この記事では、プログラミング言語経験のある人向けに、VBAの肝となる考え方・構文について解説します!

この記事はこんな人のために書きました。

  • VBA以外のプログラミング言語経験がある人
  • これからVBAを使えるようになりたいと思っている人

VBAの肝となる考え方「オブジェクト階層構造」とは?

まず、VBAの肝となる「オブジェクト階層構造」について解説します。

VBAは、次のようなオブジェクト階層構造になっています。


オブジェクト階層構造

アプリケーションはExcelのことで、ワークブックはBook1、Book2などのブック全体のことを意味します。ブックの中には複数のシートがあり、シートには複数のセルがありますよね。

このように、Application、Workbook、Worksheet、Range(Cells)の流れでオブジェクト階層構造が成り立っています。VBAで処理を書くときの基礎なので、覚えておきましょう。

具体的なVBAを書くときのイメージは、以降で詳しく解説します。

VBAで1文を書くときの考え方

次に、VBAで1文書くときの考え方について解説します。

ドット・半角スペースで書く

VBAでは、基本的にドットまたは半角スペースを使って処理を書いていきます。

わかりづらいので、簡単な例をご紹介しますね。

サンプルコード:

Sub Test()
    Workbooks("Book1.xlsm").Worksheets("データ一覧").Range("A1").Value = "データ入力"
End Sub

実行結果:

実行結果

ブック名「Book1.xlsm」の「データ一覧」シートの「A1」セルに、「データ入力」の文字を入力するサンプルです。ワークブック.シート.セルのようにドットでつないで処理を作っていくのです。

改行したいときはアンダーバー(_)を使う

また、VBAでは1文を改行して書くこともできます。長くなってしまった場合は、アンダーバー(_)を使って改行しましょう。

改行例:

Sub Test2()
    Workbooks("Book1.xlsm").Worksheets("データ一覧").Range("B1").Value _
    = Workbooks("Book1.xlsm").Worksheets("データ一覧").Range("A1").Value
End Sub

文字列を結合はアンド(&)を使う

文字列を結合する場合は、アンド(&)を使います。

文字列結合する例:

Sub Test3()
    MsgBox "文字列" & "を結合する場合は、" & "アンド(&)" & "を使います。"
End Sub

VBAのメソッド・プロパティの使い方

次に、VBAのメソッド・プロパティの使い方について解説します。

メソッドは、オブジェクトを操作するための処理です。たとえば、次のようなメソッドがあります。


■メソッド例

  • コピー:Copy
  • 挿入:Insert
  • 削除:Delete
  • 保存:Save

プロパティは、オブジェクトの値を変更するための設定値です。たとえば、次のようなプロパティがあります。


■プロパティ例

  • 値:Value
  • 背景色:BackColor
  • 太字:Bold
  • 罫線:LineStyle

「オブジェクト.メソッド」「オブジェクト.プロパティ」のように、どちらもオブジェクトを指定してから次のように使います。

サンプルコード:

Sub Test4()
    'メソッド例 A1セルの値をB2セルにコピー
    Workbooks("Book1.xlsm").Worksheets("データ一覧").Range("A1").Copy _
    Workbooks("Book1.xlsm").Worksheets("データ一覧").Range("B1")
    
    'プロパティ例 A1セルに「データ入力」をセット
    Workbooks("Book1.xlsm").Worksheets("データ一覧").Range("A1").Value = "データ入力"
End Sub

VBAの変数の書き方

次に、変数の書き方について解説します。

VBAでは、次のように書くことで変数宣言することができます。

変数宣言方法:

Dim 変数名 as 型名

数値を格納する変数:

データ型名称消費メモリ説明
Byteバイト型1バイト0~255
Integer整数型2バイト-32768~32767
Long長整数型4バイト-2147483648~2147483647
Single単精度浮動小数点数型4バイト1.401298E-45 ~
3.402823E38(絶対値)
Double倍精度浮動小数点数型8バイト4.94065645841247E-324 ~
1.79769313486232E308
(絶対値)
Currency通貨型8バイト-922337203685477.5808 ~
922337203685477.5807

そのほかの値を格納する変数:

データ型名称消費メモリ説明
String文字列型2バイト最大約20億文字まで
Date日付型8バイト西暦100 年1月1日~西暦9999年12月31日までの日付と時刻
Booleanブール型2バイト真 (True) または偽 (False)
Objecオブジェクト型4バイトオブジェクトを参照するデータ型
Variantバリアント型16バイトすべてのデータ型

他の言語と使い方はほとんど変わりませんが、詳しく使い方を知りたい方は以下を見てみてくださいね!

【VBA入門】変数をDimで宣言し、 Asでデータ型を定義する方法
更新日 : 2019年10月1日

VBAの関数とは?

次に、VBAの関数について解説します。VBAでは、大きく分けて以下3つの種類があります。


■関数の種類

  • VBA関数:VBAで最初から使える関数
  • ワークシート関数:Excelのセルで使える関数
  • ユーザー定義関数:自作した関数

Excelで普段から使っている関数も、ワークシート関数として呼び出せるのが最大のポイントですね。それぞれの違いについては、以下で詳しく解説しています。

【VBA入門】関数の使い方(VBA関数一覧、ワークシート関数の入力)
更新日 : 2019年4月28日

VBAで使える演算子とは?

if文などの条件式や、for文などのループ処理でよく使うのが演算子ですよね。

VBAでは、大きく分けて以下5つの演算子を使えます。

  • 算術演算子
  • 文字列演算子
  • 代入演算子
  • 比較演算子
  • 論理演算子

使い方を以下に詳しくまとめているので、さらっと見ておくのがおすすめです!

【ExcelVBA入門】計算や条件式を作るための演算子の使い方を徹底解説!
更新日 : 2018年12月13日

VBAのコメントの書き方とは?

最後に、コメントの書き方について解説します。

VBAでは、シングルクォーテーション(‘)を先頭につけることで、コメント化できます。

コメント例:

Sub Test5()
    'コメント1
    'コメント2
    'コメント3
    'コメント4
End Sub

他の言語にあるような、複数行を一括でコメントアウトする書き方はありません。ただ、一括で複数行をコメントするための裏技があります。VBAを書くエディタVBEにコメントを一括で書くための設定を追加する方法です。

以下で詳しく解説しているので、ぜひ見てみてくださいね!

【VBA入門】コメントアウトの書き方とセルへのコメント追加
更新日 : 2019年8月8日

まとめ

今回は、VBAの肝となる考え方・構文について解説しました。

最初は違和感を感じるかもしれませんが、オブジェクト階層構造、基礎的なコードの書き方がわかれば、あとは使っていくのみです。

ぜひ、VBAを使ってみてくださいね!

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

フリーランスエンジニア兼ライターのワキザカ サンシロウです。
ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説