スタンダード 模擬問題

Excel VBA スタンダード 模擬問題 ① 第19問 6章-5

次のコードは、セルを検索し見つかったセルを起点に1列右に”関東”を代入するマクロである。空欄に入る適切な語句を解答しなさい。

Sub Exam1()

 Dim A As Range

 Set A = Range("A:A"). Find (What:="東京")

 If A Is Nothing Then

  MsgBox "見つかりません"

 Else

  A.【 ① 】(0, 1) = "関東"

 End If

End Sub

セルの検索とオートフィルターの操作 模擬問題

 

正解

【 ① 】offset

解説

ワークシート関数オフセット

・見つかったセルを起点にし、周囲にある別のセルを操作する時はOffsetを使用します。

構文 基点セル.Offstt(行,列)

1列下へ、または1行右へは 1 を指定する
1列上へ、または1行左へは -1(マイナス)を指定する
0は現在のセルの位置となります。

セル範囲を変更するResizeと似ているので違いを整理しますと、上下左右の値の増減は上記と同じですが、

Offset 基点セルから、セルを指定する。 基点セルの位置は(0、0)

Resize 基点セルから、セル範囲を変更する。 基点セルの位置は(1、1) です。

[コード解説]

Sub Exam1()

 Dim A As Range

' 検索結果を格納するためのRange型変数Aを宣言します。

 Set A = Range("A:A").Find(What:="東京")

' Findメソッドを使用して、列A全体から"東京"という文字列を検索します。
' 見つかったセルを変数Aに設定します。

 If A Is Nothing Then

' "東京"が見つからなかった場合、メッセージボックスで通知します。

  MsgBox "見つかりません"

Else

' "東京"が見つかった場合、そのセルの1列右のセルに"関東"を代入します。

  A.Offset(0, 1) = "関東"

 End If

End Sub