Excel ベーシック 問題 6 – 15
次の図の状態で、マクロ「Test1」を実行したところ、セルA2~D2の値がセルG2にコピーされた。このとき、【 1 】【 2 】に入る適切な内容を答えなさい。
Sub Test1()
【 1 】(Range("A2"), Range("A2").【 2 】).Copy Range("G2")
End Sub
選択肢
- 【1】 Range 【2】 End(xlToRight)
- 【1】 Range 【2】 End(xlDown)
- 【1】 Cells 【2】 End(xlToRight)
- 【1】 Cells 【2】 End(xlDown)
正解を見る
正解
1. 【1】 Range 【2】 End(xlToRight)
解説
「Rangeプロパティ」で複数のセルを指定する場合、
・「Range("A1:A2")」のように「:(コロン)」で区切る書き方
・「Range("A1”,”A2")」のように「, (カンマ)」で区切る書き方
の2種類があります。
また、「, (カンマ)」で区切る書き方の場合、「Range(Range("A1"), Range("A2"))」「Range(Cells(1, 1), Cells(2, 1))」のように、「Range」「Cells」を含むかたちでセルを指定することもできます。
この問題では、上記の書き方になっているため、【1】は「Range」が正解になります。
「Endプロパティ」は、「Ctrl+矢印キー」を押した場合と同じく、値が入力されている範囲の終端セルを取得することできます。
この問題で「Range("A2").End(xlToRight)」と記述した場合、セルA2で「Ctrl」+「→」を押した場合と同じく、セルD2を取得します。
そのため、「Range(Range("A2"), Range("A2").End(xlToRight))」は、「Range(Range("A2"), Range("D2"))」と同じ結果になります。
したがって、この問題は「セルA2~D2の値」をコピー元にする内容のため、【2】は「End(xlToRight)」が正解になります。
「End(xlToRight)」含めて、「Endプロパティ」で指定できる4つの方向については覚えておきましょう。
基準となるセル.End(xlToRight) →右方向に移動
基準となるセル.End(xlToLeft) →左方向に移動
基準となるセル.End(xlUp) →上方向に移動
基準となるセル.End(xlDown) →下方向に移動