VBAエキスパート Excel VBA ベーシック ⑤ セルの操作

本試験でもっとも実務に直結する分野です。Range はRange("A1")やRange("A1:C3")のようにアドレスの文字列で、Cells はCells(1, 2)のように行番号・列番号の数値で指定するため、繰り返し処理と組み合わせるなら Cells が扱いやすくなります。値の取得・設定は Value、表示形式は NumberFormat で扱い、Text は画面に表示されているとおりの文字列を返す読み取り専用のプロパティです。ほかに基準セルからずらす Offset、範囲を広げる Resize、Copy による複写、End(xlUp) などで表の最終セルを特定する方法が問われます。

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

クイズモードで挑戦 →

154セルに表示されているとおりの文字列を取得するプロパティはどれか。

  1. AValue
  2. BFormula
  3. CText
  4. DDisplay
正解と解説を見る

正解:CText

Textプロパティはセルに表示されている値(文字列)を取得します。

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

155セルの実際の値(計算結果)を取得するプロパティはどれか。

  1. AText
  2. BValue
  3. CFormula
  4. DResult
正解と解説を見る

正解:BValue

Valueプロパティはセル内の実際の値(計算結果そのもの)を取得します。

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

156セルに値を入力する際、実行するとエラーになるコードはどれか。

  1. ARange("A1").Text = 1000
  2. BRange("A1") = 1000
  3. CRange("A1").Value = 1000
  4. DRange("A1").Formula = "=1+1"
正解と解説を見る

正解:ARange("A1").Text = 1000

Textプロパティは表示されている文字列を取得するため専用であり、値を入力しようとするとエラーになります。

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

157A1セルに数式「=1/3」が入力され「0.333333333」と表示されている場合、Formulaプロパティが取得する値はどれか。

  1. A=1/3
  2. B0.333333333
  3. C0.333333333333333
  4. D1/3
正解と解説を見る

正解:A=1/3

Formulaプロパティはセルに入力されている数式そのもの(=1/3)を取得します。

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

158セルに数式が入力されていない場合、Formulaプロパティはどのプロパティと同じ値を取得するか。

  1. ATextプロパティ
  2. B空白文字列を返す
  3. CActiveプロパティ
  4. DValueプロパティ
正解と解説を見る

正解:DValueプロパティ

数式がない場合は、FormulaプロパティはValueプロパティと同じ値になります。

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

159基準となるセルから相対的な位置にあるセルを指定するプロパティはどれか。

  1. AResize
  2. BPosition
  3. CMove
  4. DOffset
正解と解説を見る

正解:DOffset

Offsetプロパティは、基準セルからの位置のズレ(相対的な位置)を指定するために使います。

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

160C2セルを基準として1行下・2列右のセルを指定する正しいコードはどれか。

  1. ARange("C2").Offset(1, 2)
  2. BRange("C2").Offset(2, 1)
  3. CRange("C2").Offset(-1, -2)
  4. DRange("C2").Offset(-2, -1)
正解と解説を見る

正解:ARange("C2").Offset(1, 2)

Offset(行数, 列数)と指定するため、1行下・2列右はOffset(1, 2)と書きます。

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

161「Range("C2").Offset(-1, -2)」が指定するセルはどこか。

  1. AE3セル
  2. BE1セル
  3. CA1セル
  4. DA3セル
正解と解説を見る

正解:CA1セル

上方向・左方向に進むときはマイナスを指定するため、1行上・2列左となりA1セルを指します。

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

162Offsetプロパティの引数で指定する行数や列数が1ずつ増えるのは、どの方向に進むときか。

  1. A上方向や左方向
  2. B上方向や右方向
  3. C下方向や左方向
  4. D下方向や右方向
正解と解説を見る

正解:D下方向や右方向

基準セルから下方向や右方向に進むと、行数や列数が1ずつ増えます。

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

163セル範囲の大きさを変更するために使うプロパティはどれか。

  1. ACurrentRegion
  2. BOffset
  3. CResize
  4. DSize
正解と解説を見る

正解:CResize

Resizeプロパティは、指定した行数・列数にセル範囲の大きさを変更するために使います。

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

164A1:E3のセル範囲(3行・5列)を2行・5列に変更する正しいコードはどれか。

  1. ARange("A1:E3").Resize(5, 2)
  2. BRange("A1:E3").Offset(5, 2)
  3. CRange("A1:E3").Offset(2, 5)
  4. DRange("A1:E3").Resize(2, 5)
正解と解説を見る

正解:DRange("A1:E3").Resize(2, 5)

Resize(行数, 列数)の順で指定するため、2行・5列に変更する場合はResize(2, 5)と書きます。

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

165Resizeプロパティの引数として指定するとエラーになる値はどれか。

  1. A1
  2. B0や負の値
  3. C3
  4. D2
正解と解説を見る

正解:B0や負の値

Resizeプロパティの引数に指定する値は、1以上でないとエラーになります。

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

166「Range("A1:E1").Offset(1, 0).Resize(2, 5)」の処理結果として正しいものはどれか。

  1. AA1:E1を1行上にずらして2行・5列にする
  2. BA1:E1を1行下にずらして2行・5列にする
  3. CA1:E1を1列右にずらして5行・2列にする
  4. DA1:E1をそのまま2行・5列にする
正解と解説を見る

正解:BA1:E1を1行下にずらして2行・5列にする

Offset(1, 0)で1行下にずらし、Resize(2, 5)で範囲を2行・5列に拡大します。

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

167あるセル範囲の最終行や最終列まで移動するために使うプロパティはどれか。

  1. AEnd
  2. BActiveCell
  3. CCurrentRegion
  4. DLast
正解と解説を見る

正解:AEnd

Endプロパティは、Ctrl+矢印キーと同様に最終行や最終列まで移動する際に使います。

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

168Endプロパティで上方向に移動する場合に指定する方向の定数はどれか。

  1. AxlDown
  2. BxlToRight
  3. CxlToLeft
  4. DxlUp
正解と解説を見る

正解:DxlUp

上方向への移動を表す定数は「xlUp」です。

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

169A1セルから右方向に移動するコードとして正しいものはどれか。

  1. ARange("A1").End(xlDown)
  2. BRange("A1").End(xlRight)
  3. CRange("A1").End(xlToLeft)
  4. DRange("A1").End(xlToRight)
正解と解説を見る

正解:DRange("A1").End(xlToRight)

右方向への移動は「xlToRight」を使用します。

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

170表にデータがない状態で見出し行(A1セルなど)から「Range("A1").End(xlDown)」を実行するとどうなるか。

  1. AA2セルに移動する
  2. Bシートの最終行まで移動してしまう
  3. C何も起きない
  4. Dエラーが発生する
正解と解説を見る

正解:Bシートの最終行まで移動してしまう

下方向にデータがない場合、シートの一番下(1048576行目など)まで移動してしまい、目的の場所を特定できません。

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

171シートの最終行番号を取得する正しい書き方はどれか。

  1. ARows.Count
  2. BColumns.Count
  3. CCells.Count
  4. DRange.Count
正解と解説を見る

正解:ARows.Count

シートの最終行番号は、行の数を数える「Rows.Count」と表します。

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

172シートの最終列番号を取得する正しい書き方はどれか。

  1. ARows.Count
  2. BCells.Count
  3. CColumns.Count
  4. DRange.Count
正解と解説を見る

正解:CColumns.Count

シートの最終列番号は、列の数を数える「Columns.Count」と表します。

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

173A列のデータが入力されている表の最終行番号を取得する定石のコードはどれか。

  1. ACells(Rows.Count, "A").End(xlUp).Row
  2. BCells(1, "A").End(xlUp).Row
  3. CCells(Rows.Count, "A").End(xlDown).Row
  4. DCells(1, "A").End(xlDown).Row
正解と解説を見る

正解:ACells(Rows.Count, "A").End(xlUp).Row

シートの最終行から上方向(xlUp)に移動し、データがある最終行の行番号(Row)を取得するのが一般的です。

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

174「Cells(1, Columns.Count).End(xlToLeft).Column」は何を取得するコードか。

  1. A表の最終列番号
  2. B表の最終行番号
  3. Cシートの最終列番号
  4. DA1セルの列番号
正解と解説を見る

正解:A表の最終列番号

シートの最終列の1行目から左方向に移動し、データのある表の最終列番号を取得します。

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

175選択したセルを含む表全体(空白セルに囲まれた範囲)を選択するプロパティはどれか。

  1. AEntireTable
  2. BCurrentRegion
  3. CActiveRegion
  4. DSelection
正解と解説を見る

正解:BCurrentRegion

空白セルに囲まれた表全体を選択するにはCurrentRegionプロパティを使います。

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

176CurrentRegionプロパティの挙動は、Excelのどのショートカットキーと同じか。

  1. ACtrl + Shift + *
  2. BCtrl + A
  3. CShift + Space
  4. DCtrl + Space
正解と解説を見る

正解:ACtrl + Shift + *

CurrentRegionプロパティは、Excel上で Ctrl + Shift + *(アスタリスク)を押すのと同じ挙動です。

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

177ActiveCellに関する説明として正しいものはどれか。

  1. A常に複数セルになる
  2. B複数セルを選択した場合は存在しない
  3. C常に単一のセルである
  4. D選択範囲の右下のセルを指す
正解と解説を見る

正解:C常に単一のセルである

複数セルを選択した場合でも、ActiveCellは文字入力の対象となる常に単一のセルです。

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

178Excelが操作対象と認識している単一のセルを指す用語はどれか。

  1. ACurrentRegion
  2. BSelection
  3. CActiveCell
  4. DBaseCell
正解と解説を見る

正解:CActiveCell

キーを打った時に文字が入力される単一のセルをActiveCell(アクティブセル)と呼びます。

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

179アクティブセルを移動するために使うメソッドはどれか。

  1. ASelect
  2. BMove
  3. CActivate
  4. DShift
正解と解説を見る

正解:CActivate

Activateメソッドは、選択範囲を変えずにアクティブセルだけを移動するために使います。

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

180B2:C3が選択された状態で「Range("C3").Activate」を実行するとどうなるか。

  1. AB2:C3の選択が解除されC3のみ選択される
  2. B表全体が選択される
  3. Cエラーになる
  4. D選択範囲はB2:C3のままでアクティブセルがC3に移動する
正解と解説を見る

正解:D選択範囲はB2:C3のままでアクティブセルがC3に移動する

Activateは選択範囲(Selection)はそのままに、アクティブセルだけを指定セルに移動します。

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

181セルをコピーするメソッドはどれか。

  1. ADuplicate
  2. BCopy
  3. CClone
  4. DPaste
正解と解説を見る

正解:BCopy

セルをコピーするにはCopyメソッドを使います。

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

182「Range("B3:D3").Copy Range("B6")」において、省略されている引数名はどれか。

  1. ASource:=
  2. BOrigin:=
  3. CLocation:=
  4. DDestination:=
正解と解説を見る

正解:DDestination:=

Copyメソッドの引数は1つしかないため、貼り付け先を指定する「Destination:=」を省略できます。

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

183値のみをコピーしたい場合、Copyメソッドの代わりに使用できるプロパティはどれか。

  1. AValue
  2. BText
  3. CFormula
  4. DFormat
正解と解説を見る

正解:AValue

「コピー先のセル.Value = コピー元のセル.Value」と書くことで、値のみをコピーできます。

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

184セルの値(数式や文字列)だけをクリアし、書式は残すメソッドはどれか。

  1. AClear
  2. BClearContents
  3. CClearFormats
  4. DDelete
正解と解説を見る

正解:BClearContents

ClearContentsメソッドはセルの値だけをクリアし、色や罫線などの書式は残します。

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

185ClearメソッドとClearContentsメソッドの違いとして正しいものはどれか。

  1. AClearは値のみクリアする
  2. BClearContentsは書式もクリアする
  3. CClearは値と書式の両方をクリアする
  4. D両者に違いは全くない
正解と解説を見る

正解:CClearは値と書式の両方をクリアする

Clearメソッドは値だけでなく書式まで全てクリアするため、書式を残したい場合はClearContentsを使います。

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

186セルを削除するメソッドはどれか。

  1. AClear
  2. BRemove
  3. CDelete
  4. DErase
正解と解説を見る

正解:CDelete

セルを削除するにはDeleteメソッドを使います。

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

187Deleteメソッドでセルを削除したあと、上方向にシフトする場合に指定する定数はどれか。

  1. AxlShiftUp
  2. BxlUp
  3. CxlShiftToLeft
  4. DxlToTop
正解と解説を見る

正解:AxlShiftUp

削除後にセルを上方向へシフトするための定数は「xlShiftUp」です。

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

188VBAのDeleteメソッドにおいて、Shift引数(シフトする方向)として指定できないものはどれか。

  1. A左方向にシフト
  2. B上方向にシフト
  3. C指定できないものはない
  4. D行全体・列全体
正解と解説を見る

正解:D行全体・列全体

Excelのダイアログでは行全体・列全体を選べますが、VBAのShift引数では左方向と上方向の2種類しか指定できません。

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

189「Range("A5:D5").Delete xlShiftUp」において、省略されている引数名はどれか。

  1. ADirection:=
  2. BAction:=
  3. CMove:=
  4. DShift:=
正解と解説を見る

正解:DShift:=

Deleteメソッドの引数が1つしかないため、「Shift:=xlShiftUp」の「Shift:=」を省略できます。

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

190始点セルと終点セルを使ってセル範囲を指定する場合、区切り文字として使われる記号はどれか。

  1. Aカンマ(,)
  2. Bセミコロン(;)
  3. Cコロン(:)
  4. Dピリオド(.)
正解と解説を見る

正解:Aカンマ(,)

「Range(始点セル, 終点セル)」のように、始点と終点をカンマで区切って記述します。

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

191「Range("A1, C2").Select」が指定しているセル範囲はどれか。

  1. AA1セルからC2セルまでの四角い範囲
  2. Bエラーになる
  3. CA1セルのみ
  4. DA1セルとC2セルの2つの単一セル
正解と解説を見る

正解:DA1セルとC2セルの2つの単一セル

ダブルクォーテーション内でカンマを使うと、離れた複数セル(この場合A1とC2の2つ)を指定することになります。

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

192A1セルからC2セルまでの範囲を、Cellsを組み合わせて指定する正しいコードはどれか。

  1. ARange(Cells(1, 1):Cells(2, 3))
  2. BRange("Cells(1, 1), Cells(2, 3)")
  3. CRange(Cells(1, 1), Cells(2, 3))
  4. DCells(Range(1, 1), Range(2, 3))
正解と解説を見る

正解:CRange(Cells(1, 1), Cells(2, 3))

Rangeの引数として、始点のCellsと終点のCellsをカンマで区切って記述します。

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

193行のオブジェクト(コレクション)を表す用語はどれか。

  1. AColumns
  2. BLines
  3. CRecords
  4. DRows
正解と解説を見る

正解:DRows

行を表すオブジェクトは「Rows」です。

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

194列のオブジェクト(コレクション)を表す用語はどれか。

  1. AColumns
  2. BRows
  3. CFields
  4. DLists
正解と解説を見る

正解:AColumns

列を表すオブジェクトは「Columns」です。

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

195複数列(C列からD列)を指定する正しい書き方はどれか。

  1. AColumns("C:D")
  2. BColumns("3:4")
  3. CColumns(C:D)
  4. DColumns(3:4)
正解と解説を見る

正解:AColumns("C:D")

複数列を指定するときは列記号しか使えず、ダブルクォーテーションで囲んで「Columns("C:D")」と書く必要があります。

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

196A7セルを含む「行全体」を指定する正しいプロパティはどれか。

  1. ARange("A7").AllRow
  2. BRange("A7").Rows
  3. CRange("A7").EntireRow
  4. DRange("A7").FullRow
正解と解説を見る

正解:CRange("A7").EntireRow

行全体を表すプロパティはEntireRowです。

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

197D1セルを含む「列全体」を指定する正しいプロパティはどれか。

  1. ARange("D1").AllColumn
  2. BRange("D1").EntireColumn
  3. CRange("D1").Columns
  4. DRange("D1").FullColumn
正解と解説を見る

正解:BRange("D1").EntireColumn

列全体を表すプロパティはEntireColumnです。

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

198表内のデータ行だけを選択する処理の3ステップとして正しい流れはどれか。

  1. A表全体を選択→1行上にずらす→1行増やす
  2. B表全体を選択→1行下にずらす→1行減らす
  3. C見出し行を選択→下方向に拡張→列を減らす
  4. D表全体を選択→右にずらす→1列減らす
正解と解説を見る

正解:B表全体を選択→1行下にずらす→1行減らす

CurrentRegionで表全体を選択し、Offsetで1行下にずらし、Resizeで1行減らすのがデータ行選択の基本手順です。

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

199データ行を選択する際、「Offset(1, 0)」はどのような意味を持つか。

  1. A1列分だけ右に移動する
  2. B1行分だけ下に移動して列方向には移動しない
  3. C1列分だけ左に移動する
  4. D1行分だけ上に移動する
正解と解説を見る

正解:B1行分だけ下に移動して列方向には移動しない

Offset(行数, 列数)であるため、(1, 0)は下へ1行移動し、列の移動はしないことを意味します。

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

200データの行数を取得するコード「Cells(Rows.Count, 1).End(xlUp).Row - 1」において、「- 1」をしている理由は何か。

  1. A配列のインデックスが0から始まるため
  2. B見出し行の1行分を引くため
  3. C最終行の次の空白行を引くため
  4. DOffsetでずらした分を相殺するため
正解と解説を見る

正解:B見出し行の1行分を引くため

表全体の行数から見出し行(ヘッダー)の1行分を引くことで、純粋なデータ行数を求めています。

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

201データ行や列数を取得する際、「Selection.Rows.Count」を使う場合の注意点は何か。

  1. A常にシート全体の行数が返る
  2. B複数列が選択されているとエラーになる
  3. Cコードを書く順番によりSelectionの範囲が変わり結果が異なることがある
  4. D取得処理に非常に時間がかかる
正解と解説を見る

正解:Cコードを書く順番によりSelectionの範囲が変わり結果が異なることがある

Selectionは操作によって刻々と変わるため、コードを書く位置によっては意図しない行数・列数になることがあります。

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

202表の途中に空白セルが混在する可能性がある場合、A列における表の最終行を正しく取得できる定石のコードはどれか。

  1. ARange("A1").End(xlDown).Row
  2. BCells(Rows.Count, "A").End(xlUp).Row
  3. CCells(1, "A").End(xlDown).Row
  4. DActiveCell.End(xlDown).Row
正解と解説を見る

正解:BCells(Rows.Count, "A").End(xlUp).Row

途中に空白がある場合、上からxlDownを使うと途中で止まるため、シートの最終行からxlUpで上へ移動するのが安全です。

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

203単一セルを表す正しいコードはどれか。

  1. ARange("A1:B2")
  2. BRange("A1")
  3. CRange("A1, C2")
  4. DRange(Cells(1, 1), Cells(2, 2))
正解と解説を見る

正解:BRange("A1")

Rangeプロパティのダブルクォーテーション内に単一のセル番地を記述すると、単一セルを表します。

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