注目キーワード
  1. VBA
  2. 関数
  3. ショートカット

セルや行・列の操作方法を知ろう!②

  • 2019年3月4日
  • 2019年3月15日
  • VBA
  • 43回
  • 1件
VBA NO IMAGE

①セルの値を別のセルに代入する

セルの値を取り出す操作とセルに入力する操作を組み合わせて、特定のセルに入力されている値を別のセルに入力できます。また、セルの値を変数にして別のセルに代入することもできます。

・セルの値をそのまま別のセルに入力する

特定のセルの値をRangeオブジェクトのValueプロパティで取り出し、それを別のセルを表すRangeオブジェクトのValueプロパティに設定して、そのまま対象のセルに入力します。

・実行結果

 

・1つのセルの値を複数のセルに入力する

上記では1つの値を複数のセルを含むセルに一括で入力する方法について紹介しましたが、1つのセルから取り出した値も、セル範囲内のすべてのセルに入力することもできます。

・実行結果

 

・セルの値を変数を使って別のセルに入力する

取り出したセルの値を一度変数に代入し、その変数の値を改めて別のセルに代入することもできます。変数を使用することで、同じ値を複数のセルに入力したり、入力以外のさまざまな用途に利用することもできます。

・実行結果

 

②セルの数式を別のセルに入力する

セルに入力されている数式を取り出すには、値を取り出す場合とは別のプロパティを使用します。さらに取り出した数式を別のセルに入力する場合は、その数式のセル参照を変化させるかどうかによって2つのプロパティを使い分けます。

・数式をそのまま別のセルに代入する

RangeオブジェクトのFormulaプロパティを使用すると、セルに入力された数式が文字列として取り出されます。下記の例の場合は相対参照であってもセル参照は変化しません。

・実行結果

 

・数式セルのValueプロパティ

数式が入力されてセルを表すRangeオブジェクトのValueプロパティでは、数式ではなく、その計算結果の値を取り出すことができます。これを利用して数式をその結果の値に変換することができます。

・数式の参照関係を保って別のセルに入力する

位置に応じてセル参照を変化させたい場合は、Formulaプロパティではなく、FormulaR1C1プロパティを使用します。

・実行結果

 

・セル参照R1C1形式とは?

Formulaプロパティでは、数式中のセル参照が「A1」や「$B$2」のようなA1形式のような文字列で取り出されます。このデータは文字列のため、これをそのまま別のセルに入力しても、相対参照・絶対参照であっても変化することはありません。一方FormulaR1C1プロパティでは、数式中のセル参照が「R1C1」や「RC[-1]」、「R[1]C1」のようなR1C1形式の文字列で取り出されます。「R」は行を「C」は列を表し、その後に普通の数字がつく場合は、ワークシートの左上端から絶対的な位置を表します。また [ ] で囲んだ数字は、数式が入力されたセルとの相対的な位置関係を表します。「C[-1]」なら数式セルの1列左、「R[1]」なら数s気セルの1行下を表します。数字が省略されている場合は、数式セルと同じ行または、列という意味です。

③セル範囲の値を別のセルに代入する

セル範囲からまとめて取り出した値は、そのまま2次元配列として扱うことができます。配列の値をセル範囲に入力する方法を応用して、セル範囲に入力されている値を、そのまま別のセル範囲に代入する方法を紹介します。

・セル範囲の値をそのまま他のセル範囲に入力する

1つの長方形のセル範囲に含まれている複数の値は、RangeオブジェクトのValueプロパティで、そのまま同じデータ構成の2次元配列として取り出すことができます。それを別のセル範囲を表すRangeオブジェクトのValueプロパティに設定することで、同じ内容をセル範囲に一括入力することができます。

・実行結果

 

・セル範囲の値を配列変数経由で別のセル範囲に入力する

セル範囲から取り出した配列データをそのまま別のセル範囲に入力する以外にも、一度配列変数に代入し、その配列変数の値を改めて別のセル範囲に代入する方法もあります。配列変数を利用することで、元のセル範囲と同じ形でデータを保持し、さまざまな用途に利用できます。

・実行結果

・配列変数への代入

セル範囲の値をそのまま代入するために使用する配列変数は、バリアント型の動的配列にします。変数後に付ける「( )」には何も入力せず、「As Variant」を付けるか、または省略します。

 

次のステップへ:ExcelVBA【セルや行・列の操作方法】③

Excelマクロ&VBAをマスターしよう!一覧へ

NO IMAGE
最新情報をチェックしよう!