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

VBAの予約語とは?コーディング中に予約語を調べる方法も解説!


VBAでエラーが出たけど、予約語ってなんだろう・・・
VBAの予約語の意味や一覧を知りたいな・・・
できれば、コーディング中に調べる方法も知りたい・・・

VBAがある程度書けるようになってくると、さまざまなエラーがでてきますよね。調べて解決できることもありますが、予約語を変数に使ってしまったときにおこるエラーのように、予約語の意味や一覧を知らないと対処しづらいエラーがあります。

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

この記事では、VBAの予約語の概要・エラーになる例について解説します。コーディング中に予約語を調べる方法についても解説しているので、ぜひ最後まで見てみてくださいね!

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

  • VBAで予約語を使ったエラーが出てしまった人
  • VBAの予約語の意味や一覧を知りたい人
  • コーディング中に予約語を確認できるようになりたい人

VBAの予約語とは?

はじめに、予約語について解説します。

Wikipediaでは、以下のように解説されています。

予約語(よやくご、英: reserved word)とは、プログラミング言語において字句的には識別子(変数名、関数名、クラス名など)としてのルールを満たしているにもかかわらず、識別子にならない字句要素。

わかりやすく言うと、VBAで既に使われている名前のことです。変数やマクロ名を設定するときに、既に使われている予約語は使うことができません。具体的には、次のような名前は変数名、マクロ名、クラス名などに使うことができないのです。

  • 変数宣言に使うDim、As
  • 条件式に使うIf、Switch
  • ループ処理に使う、For、Each、While

予約語の一覧は、以下Microsoftの公式サイトがおすすめです!
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/language-reference/keywords/

では、具体的にどんなエラーが起こるのでしょうか?

わかりやすくイメージしてもらうために、サンプルを解説しますね!

VBAの予約語を使ってエラーになる例

次に、VBAの予約語を使ってエラーになる例について解説します。

サンプルコード:

Sub Test()
    Dim dim as Integer         '変数宣言に使うDimのためエラー
    Dim integer as Integer    '変数の型Integerのためエラー
    Dim Each as Integer       'For EachのEachのためエラー
    Dim Sub as Integer        'SubプロシージャのSubのためエラー
End Sub

実行結果:

実行結果

変数宣言に使うDim、型に使うInteger、ループ処理に使うEach、マクロを作るときに使うSubのように、予約語を使うとエラーになってしまいます。

エラーメッセージが「コンパイルエラー: 構文エラー」なので、エラー文だけ見るとわかりづらいですよね。ただ、予約語を使ってしまったときにエラーがでることを知っておけば、対処しやすくなります。まずは、どんなエラーが出るか覚えておくことがおすすめです。

プログラミング中に予約語を確認する方法

ただ、Microsoftのように予約語一覧のサイトがあるとはいえ、コーディング中にいちいちサイトを開きたくないですよね。変数宣言に使うDim、型名のIntegerなどは使っていくうちに覚えてくるかもしれませんが、既に使われているプロパティ名・メソッド名などを全て網羅することは難しいです。

そんなときは、オブジェクトブラウザの使い方を覚えておくと便利です!

1. 変数名でエラーを確認

エラーを確認

2. 表示タブ→オブジェクトブラウザ(F2)を選択

オブジェクトブラウザを開く

3. VBA、CStrを入力してEnterキーを押す

検索条件を入力

この例では、値を文字列に変換するCStr関数を例に、オブジェクトブラウザで検索しています。このように、簡単に関数が使われていないか確認することができるのです。

全てに対応しているわけではありませんが、変数名でコンパイルエラーがでたときは「F2キー + 変数名を入れて検索」と覚えておくことで、エラー解決までの時間が早くなります。ちょっとしたことかもしれませんが、覚えておくととても便利です!

まとめ

今回は、VBAの予約語の意味、エラーのサンプルについて解説しました。

予約語は、VBAを覚えていくと自然と変数名には使わなくなってきます。ただ、関数やプロパティは膨大なので、最後に解説したオブジェクトブラウザも覚えておくと、エラー解決が速くなります。

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

LINEで送る
Pocket

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



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

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

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

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

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

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

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

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

おすすめコンテンツ

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

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