VBAエキスパート Excel VBA ベーシック ④ 変数と定数

値を一時的に入れておく変数と、変えない値に名前を付ける定数を学びます。Dim による宣言、Long・String・Double・Boolean・Date・Variant といったデータ型の選び方、Option Explicit を書くと未宣言の変数をエラーで検出できること、Const による定数定義が要点です。適用範囲はプロシージャ内だけで有効なものからモジュール全体、全モジュールで使えるものまで段階があります。つまずきやすいのは、セルやシートなどオブジェクトを変数に入れるときは Set が必要な点と、Dim a, b As Long と書くと a が Variant 型になる点です。

この分野の問題40問を、選択肢・正解・解説つきで掲載しています。まず自分で解答を考えてから「正解と解説を見る」を開いて答え合わせをしてください。

クイズモードで挑戦 →

第114問「データ(数値や文字列など)を一時的に記憶する仕組み」を指すVBAの用語はどれですか。

  1. A型
  2. B変数
  3. C定数
  4. Dプロシージャ
正解と解説を見る

正解:B.変数

変数とは、データ(数値や文字列など)を一時的に記憶する仕組みのことです。

この問題の解説ページを開く →

第115問「データやオブジェクトの種類」を指すVBAの用語はどれですか。

  1. A型
  2. Bプロシージャ
  3. Cスコープ
  4. D変数
正解と解説を見る

正解:A.型

型とは、データやオブジェクトの種類のことです。

この問題の解説ページを開く →

第116問VBAにおいて、文字列を扱うためのデータ型として正しいものはどれですか。

  1. ADate型
  2. BString型
  3. CLong型
  4. DDouble型
正解と解説を見る

正解:B.String型

文字列を扱う型の型名は「String」です。

この問題の解説ページを開く →

第117問VBAにおいて、日付だけでなく時刻も扱えるデータ型として正しいものはどれですか。

  1. AString型
  2. BDouble型
  3. CDate型
  4. DBoolean型
正解と解説を見る

正解:C.Date型

日付型(Date)は、日付だけでなく時刻も扱えます。

この問題の解説ページを開く →

第118問VBAにおいて、小数を扱うときに使う小数点数型として正しいものはどれですか。

  1. AInteger型
  2. BCurrency型
  3. CLong型
  4. DDouble型
正解と解説を見る

正解:D.Double型

小数点数型は「Double」であり、小数を扱うときに使います。

この問題の解説ページを開く →

第119問VBAにおいて、「True」か「False」の2つの値だけを扱うデータ型として正しいものはどれですか。

  1. ABoolean型
  2. BString型
  3. CDate型
  4. DVariant型
正解と解説を見る

正解:A.Boolean型

ブーリアン型(Boolean)はTrueかFalseの2つの値を扱います。

この問題の解説ページを開く →

第120問VBAにおいて、変数に型を指定しない場合、何型とみなされますか。

  1. AVariant型
  2. BLong型
  3. CInteger型
  4. DString型
正解と解説を見る

正解:A.Variant型

型指定しないとバリアント型(Variant)とみなされます。

この問題の解説ページを開く →

第121問数値に関するデータ型について、扱える数値の範囲が小さい順に並べたものとして正しいものはどれですか。

  1. ALong < Integer < Currency
  2. BCurrency < Long < Integer
  3. CInteger < Long < Currency
  4. DInteger < Currency < Long
正解と解説を見る

正解:C.Integer < Long < Currency

小さい順に「Integer型 < Long型 < Currency型」となります。

この問題の解説ページを開く →

第122問Integer型が扱うことができる整数の範囲として正しいものはどれですか。

  1. A-32,768 ~ 32,767
  2. B-256 ~ 255
  3. C-22億 ~ 22億くらい
  4. D制限なし
正解と解説を見る

正解:A.-32,768 ~ 32,767

Integer型が扱えるのは-32,768~32,767の整数までです。

この問題の解説ページを開く →

第123問Long型が扱うことができる数値の範囲の制限として、正しい目安はどれですか。

  1. A±3万程度まで
  2. B±32,767まで
  3. C±22億くらいまで
  4. D制限なし
正解と解説を見る

正解:C.±22億くらいまで

Long型は±22億くらいまでの数値を扱えます。

この問題の解説ページを開く →

第124問VBAで変数を宣言するために使用するキーワードとして正しいものはどれですか。

  1. AConst
  2. BSub
  3. CDim
  4. DAs
正解と解説を見る

正解:C.Dim

変数を宣言するには、Dimというキーワードを使って「Dim 変数名」と書きます。

この問題の解説ページを開く →

第125問変数を宣言して値を使用するまでの3つのステップについて、正しい順序で並んでいるものはどれですか。

  1. A1.変数に値を入れる → 2.変数を宣言する → 3.変数を使う
  2. B1.変数を宣言する → 2.変数に値を入れる → 3.変数を使う
  3. C1.変数を宣言する → 2.変数を使う → 3.変数に値を入れる
  4. D1.変数を使う → 2.変数を宣言する → 3.変数に値を入れる
正解と解説を見る

正解:B.1.変数を宣言する → 2.変数に値を入れる → 3.変数を使う

3つのステップは「1.変数を宣言する」「2.変数に値を入れる」「3.変数を使う」の順です。

この問題の解説ページを開く →

第126問変数の宣言で型を指定する際に、変数の名前と型の間に使用するキーワードとして正しいものはどれですか。

  1. ADim
  2. BPublic
  3. CConst
  4. DAs
正解と解説を見る

正解:D.As

型を指定するには、Asというキーワードを使って「Dim 変数名 As 型」と書きます。

この問題の解説ページを開く →

第127問変数の重要な役割の1つとして、正しいものはどれですか。

  1. A計算の処理速度を高速化する
  2. Bエラーを自動で修正する
  3. C値に名前を付ける
  4. DExcelの関数を増やす
正解と解説を見る

正解:C.値に名前を付ける

変数の重要な役割の1つに、「値に名前を付ける」ことが挙げられます。

この問題の解説ページを開く →

第128問VBEで変数の宣言を強制するために、モジュールの一番上に表示される文字列はどれですか。

  1. AOption Explicit
  2. BDim Explicit
  3. CPublic Explicit
  4. DConst Explicit
正解と解説を見る

正解:A.Option Explicit

モジュールの一番上に「Option Explicit」という文字列が表示されます。

この問題の解説ページを開く →

第129問プロシージャの中だけで使える変数のことを何といいますか。

  1. Aモジュールレベル変数
  2. Bローカル変数
  3. Cパブリック変数
  4. Dユーザー定義変数
正解と解説を見る

正解:B.ローカル変数

プロシージャの中だけで使える変数は「ローカル変数」です。

この問題の解説ページを開く →

第130問モジュールの中だけで使える変数のことを何といいますか。

  1. Aローカル変数
  2. B組み込み変数
  3. Cパブリック変数
  4. Dモジュールレベル変数
正解と解説を見る

正解:D.モジュールレベル変数

モジュールの中だけで使える変数は「モジュールレベル変数」です。

この問題の解説ページを開く →

第131問すべてのモジュールで使える変数のことを何といいますか。

  1. Aモジュールレベル変数
  2. Bローカル変数
  3. Cパブリック変数
  4. D組み込み変数
正解と解説を見る

正解:C.パブリック変数

すべてのモジュールで使える変数は「パブリック変数」です。

この問題の解説ページを開く →

第132問パブリック変数を宣言するときに使用するキーワードとして正しいものはどれですか。

  1. ADim
  2. BPublic
  3. CConst
  4. DAs
正解と解説を見る

正解:B.Public

パブリック変数は「Public」で宣言します。

この問題の解説ページを開く →

第133問値にわかりやすい名前を付けるために使い、宣言したあとに値を変更できない仕組みを何といいますか。

  1. Aローカル変数
  2. B引数
  3. Cバリアント型
  4. D定数
正解と解説を見る

正解:D.定数

値にわかりやすい名前を付けるために使うのが定数で、宣言したあとに値を変更できません。

この問題の解説ページを開く →

第134問定数を宣言するときに使用するキーワードとして正しいものはどれですか。

  1. ADim
  2. BPublic
  3. CAs
  4. DConst
正解と解説を見る

正解:D.Const

定数の書き方は、Constというキーワードを使います。

この問題の解説ページを開く →

第135問VBAであらかじめ決められている定数のことを何といいますか。

  1. Aユーザー定義定数
  2. Bモジュール定数
  3. Cローカル定数
  4. D組み込み定数
正解と解説を見る

正解:D.組み込み定数

組み込み定数とは、VBAであらかじめ決められている定数のことです。

この問題の解説ページを開く →

第136問試験でよく使われる変数名・定数名のうち、文字列の型(String型)として挙げられている文字の組み合わせはどれですか。

  1. Ai, j
  2. Bcnt, n
  3. Cs, buf
  4. Dbf
正解と解説を見る

正解:C.s, buf

文字列の変数名・定数名の例として「s, buf」が挙げられています。

この問題の解説ページを開く →

第137問ダイアログボックスにユーザーが入力した値を取得するなど、どんな値を受け取るのかわからない場合に使う型として最も適しているものはどれですか。

  1. AVariant型
  2. BString型
  3. CDouble型
  4. DLong型
正解と解説を見る

正解:A.Variant型

どんな値を受け取るのかわからないような場合はVariant型を使います。

この問題の解説ページを開く →

第138問VBEの「オプション」ダイアログボックスにおいて、エラーメッセージが頻繁に表示されてコード入力の妨げになるのを防ぐためのオススメ設定はどれですか。

  1. A「変数の宣言を強制する」のチェックを外す
  2. B「自動構文チェック」のチェックを外す
  3. C「自動構文チェック」にチェックを入れる
  4. D「変数の宣言を強制する」にチェックを入れる
正解と解説を見る

正解:B.「自動構文チェック」のチェックを外す

「自動構文チェック」はエラーメッセージが頻繁に表示されるため、チェックを外すのがオススメ設定です。

この問題の解説ページを開く →

第139問次のコードを実行したとき、どのような結果になりますか。\nSub Sample()\n Dim 売上 As Long, 従業員数 As Long\n 売上 = 550000\n 従業員数 = 55\n MsgBox 売上 / 従業員数\nEnd Sub

  1. A画面に「550000」と表示される
  2. B画面に「55」と表示される
  3. Cコンパイルエラーが発生する
  4. D画面に「10000」と表示される
正解と解説を見る

正解:D.画面に「10000」と表示される

売上(550000)を従業員数(55)で割った結果である10000がメッセージボックスで表示されます。

この問題の解説ページを開く →

第140問「Option Explicit」が記述されたモジュールで、変数を宣言せずにマクロを実行しようとした場合、どうなりますか。

  1. A変数が自動的にLong型として作成され、処理が続行される
  2. Bエラーが表示される
  3. Cマクロは何もせずに正常終了する
  4. D変数が自動的に定数に変更される
正解と解説を見る

正解:B.エラーが表示される

Option Explicitを書くと、変数を宣言せずに変数を使ったときエラーが表示されます。

この問題の解説ページを開く →

第141問変数のスコープ(適用範囲)について、使用できる範囲が「狭い順」に正しく並んでいるものはどれですか。

  1. Aローカル変数 < モジュールレベル変数 < パブリック変数
  2. Bモジュールレベル変数 < ローカル変数 < パブリック変数
  3. Cパブリック変数 < モジュールレベル変数 < ローカル変数
  4. Dローカル変数 < パブリック変数 < モジュールレベル変数
正解と解説を見る

正解:A.ローカル変数 < モジュールレベル変数 < パブリック変数

スコープが狭い順に並べると、ローカル変数 < モジュールレベル変数 < パブリック変数となります。

この問題の解説ページを開く →

第142問定数と変数の違いに関する記述として、正しいものはどれですか。

  1. A定数は宣言したあとに値を変更できるが、変数は変更できない
  2. B定数は宣言するときに値を設定するが、変数は宣言したあとで値を設定する
  3. C定数はDimキーワードで宣言するが、変数はConstキーワードで宣言する
  4. D定数は型を指定できないが、変数は型を指定できる
正解と解説を見る

正解:B.定数は宣言するときに値を設定するが、変数は宣言したあとで値を設定する

定数は宣言するときに値を設定し、変数は宣言したあとで値を設定します。

この問題の解説ページを開く →

第143問次の定数宣言のうち、「ユーザー定義定数」の正しい書き方はどれですか。

  1. A開始行 = 4 As Const
  2. BDim 開始行 As Long = 4
  3. CConst 開始行 = 4
  4. DConst 開始行 As Long = 4
正解と解説を見る

正解:D.Const 開始行 As Long = 4

定数の書き方は「Const 定数名 As 型 = 値」であり、「Const 開始行 As Long = 4」が正しい書き方です。

この問題の解説ページを開く →

第144問数値に関する型について、業務で「会計などで、±22億を超えるような大きい数を扱うとき」に使うべき型として推奨されるものはどれですか。

  1. ACurrency型
  2. BInteger型
  3. CDouble型
  4. DLong型
正解と解説を見る

正解:A.Currency型

会計などの業務では、22億を超える数値も扱えるCurrency型を使います。Long型は22億までなのでひっかけです。

この問題の解説ページを開く →

第145問コード内に「Dim 売上, 従業員数 As Long」のように、複数の変数を1つのDimで宣言したとき、型を指定していない「売上」という変数の型はどう判断されますか。

  1. ALong型
  2. BInteger型
  3. CVariant型
  4. Dエラーになり宣言できない
正解と解説を見る

正解:C.Variant型

型が指定されていない売上はVariant型になります。一見両方Long型に見えるためひっかけです。

この問題の解説ページを開く →

第146問複数の変数を同じ行で並べて宣言する場合、エラーになってしまう書き方はどれですか。

  1. ADim 売上 As Long, Dim 従業員数 As Long
  2. BDim 売上 As Long, 従業員数 As Long
  3. CDim 売上 As Variant, 従業員数 As Long
  4. DDim 売上, 従業員数 As Long
正解と解説を見る

正解:A.Dim 売上 As Long, Dim 従業員数 As Long

同じ行に2つ以上「Dim」を書くとエラーになります。

この問題の解説ページを開く →

第147問マクロのコード内で「Dim i As Long」と宣言したローカル変数を、別のプロシージャから呼び出して使用しようとした場合、どうなりますか。

  1. Aエラーが起きる
  2. B自動的にモジュールレベル変数に格上げされて使用できる
  3. C値が「0」のリセットされた状態で使用できる
  4. DPublic変数として処理される
正解と解説を見る

正解:A.エラーが起きる

あるプロシージャの中で宣言した変数は、別のプロシージャで使おうとするとエラーが起きます。

この問題の解説ページを開く →

第148問定数「開始行」を「Const 開始行 As Long = 4」と宣言したあと、次の行で「開始行 = 5」と値を変更しようとするコードを実行した場合、どうなりますか。

  1. A開始行の値が5に変更されて処理が続く
  2. B変数のVariant型に自動変換される
  3. C値は4のまま無視されて処理が続く
  4. Dエラーが起きる
正解と解説を見る

正解:D.エラーが起きる

定数は宣言後に値を変更できないため、「開始行 = 5」と書くとエラーが起きます。

この問題の解説ページを開く →

第149問VBAの「組み込み定数」の例として、正しくないものはどれですか。

  1. AvbYellow
  2. BvbYellowColor
  3. CxlDown
  4. DxlUp
正解と解説を見る

正解:B.vbYellowColor

組み込み定数は「vbYellow」「vbRed」「xlUp」「xlDown」などであり、「vbYellowColor」という定数は存在しません。

この問題の解説ページを開く →

第150問「精度が低いので通常は使わない」とされる小数点数型はどれですか。

  1. ADouble型
  2. BInteger型
  3. CSingle型
  4. DLong型
正解と解説を見る

正解:C.Single型

Single型は精度が低いため、通常は使いません。

この問題の解説ページを開く →

第151問業務でコードを書くとき、「i」や「j」などの代わりに「行番号」や「RowNo」といった名前を付けることを推奨している理由として、ものはどれですか。

  1. A使用するメモリの容量を削減するため
  2. Bプログラムの実行速度を向上させるため
  3. C値の意味が明確に伝わる名前を付けるため
  4. DVBAのコンパイルエラーを防ぐため
正解と解説を見る

正解:C.値の意味が明確に伝わる名前を付けるため

値の意味が明確に伝わる名前を付けることが推奨されます。

この問題の解説ページを開く →

第152問変数の宣言に関する説明として正しいものはどれですか。

  1. A変数は使う前に必ず値を設定しなければ宣言できない
  2. B1つのDimでは1つの変数しか宣言できない
  3. C変数名には数字を一切使用できない
  4. DDimで宣言した変数は型を指定しないとVariant型になる
正解と解説を見る

正解:D.Dimで宣言した変数は型を指定しないとVariant型になる

Dimで宣言した変数に型(As 型)を指定しないと、Variant型とみなされます。

この問題の解説ページを開く →

第153問組み込み定数を利用するメリットとして最も適切なものはどれですか。

  1. A処理速度が必ず2倍になる
  2. B自分で値を設定せずにVBAが用意した意味のある名前を使える
  3. C変数の宣言が不要になる
  4. Dエラーが一切発生しなくなる
正解と解説を見る

正解:B.自分で値を設定せずにVBAが用意した意味のある名前を使える

組み込み定数はVBAがあらかじめ用意した定数で、意味のある名前をそのまま使えます。

この問題の解説ページを開く →
← VBAエキスパート Excel VBA ベーシックの全分野一覧へ戻る