スタンダード 模擬問題

Excel VBA スタンダード 模擬問題 章別出題 第1章 第3問 公開用

以下のコードは別のプロシージャを呼び出すマクロである。

空欄に入る適切な語句を選択肢の中から解答しなさい。

 

【   ①    】 Exam()

 MsgBox "OK"

End 【   ①    】

【   ②    】Numbers(a As Integer, b As Integer) As Integer

 Numbers =  a + b

End 【   ②    】

Sub Test()

 Call Exam

 Dim result As Integer

  result = Numbers(3, 7)

  MsgBox "3 + 7 の結果は " & result

End Sub

 

1.【   ①    】Sub 【   ②    】Function

2.【   ①    】Function 【   ②    】Sub

3.【   ①    】Sub 【   ②    】Sub

4.【   ①    】Function 【   ②    】Function

正解

1

解説

【1章 プロシージャ】

Subプロシージャ: 処理を行うが値を返さないプロシージャです。

Functionプロシージャ: 処理の結果を値として返すプロシージャです。

処理の内容を見ると

MsgBox "OK"は単にメッセージを表示しているだけですので値は返してはいませんので、Subプロシージャです。

・Numbers =  a + bは変数aと変数bを合算し左辺に代入して「numbers」関数で値を返していますのでFunctionプロシージャです。

excel vba プロシージャ  excel vba プロシージャ

【コード解説】

Sub Exam()

 MsgBox "OK"

'メッセージを表示する。

End Sub

Function Numbers(a As Integer, b As Integer) As Integer

’計算や処理を行い、その結果として値を返します。Numbers関数は2つの引数 aとb を受け取って値を返します。

 Numbers =  a + b

'右辺の計算結果を左辺の変数に代入する。

End Function

Sub Test()

 Call Exam

'Examプロシージャを呼びだす。

 Dim result As Integer

  result = Numbers(3, 7)

'result = Numbers(3, 7)のように呼び出し、 Functionプロシージャの結果を受け取り処理に利用できます。

  MsgBox "3 + 7 の結果は " & result

'処理の結果をメッセージで表示する。

End Sub