名称未設

【ExcelVBA公開模試】セルを表す変数か、値を表す変数か

文法を無視して、とりあえず動けばいいという邪道ExcelVBA講座こと「速読VBA単語」に準拠した問題を出題します。

問題

セルB1の値が10、セルB2の値が20になっている状態で、次のコードを実行しようとしている。

Sub moshi()
   Dim r As Range
   Set r = Range("B1")
   v = Range("B1")
   [ ??? ]
End Sub

(1)~(6)で、コード中の空欄[ ??? ]に記述して実行できるものは〇、エラーになるものは×と答えなさい。また、〇の場合は実行後のセルB1の値、×の場合はエラーになる理由をそれぞれ述べなさい。

(1)r.Value = Range("B2")
(2)v.Value = Range("B2")
(3)v = Range("B2")
(4)Set r = Range("B2")
(5)r.ClearContents
(6)v.ClearContents

わえなび式 正解例

(このページの下にあります)

目標回答時間

回答時間無制限です。6個とも全部正確に答えられたら合格です。

この問題の出題範囲

「速読VBA単語」Program3-5まで

ご案内

ExcelVBAをなんとなく理解できればいいという初心者のための「速読VBA単語」を受講希望の方はカリキュラムをご覧ください。

正解例

はセルを表す変数であり、Range("B2")の代わりとして用いることができます。v は単なる値を表す変数であり、代入してもセルそのものに影響はありません。まず、それぞれの式の意味が正確に言えるかどうかが大事です。

(1)〇 r つまりセルB1に、B2の値を代入
(2)× 「.Value」はExcelに実際に存在するセル範囲の後ろにつけなければならない。値の後ろにつけることができない。
(3)〇 変数v に、B2の値を代入
(4)〇 変数r を セルB2とする(Setし直すのはOK)
(5)〇 r つまりセルB1の文字列を消す
(6)× 「.ClearContents」はExcelに実際に存在するセル範囲の後ろにつけなければならない。値の後ろにつけることができない。

B1の値
(1)20
(3)10 変数への代入なので変わらない
(4)10 Setしただけなので変わらない
(5)空白

バックナンバー



この記事が気に入ったらサポートをしてみませんか?