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

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

  • 2019年3月6日
  • 2019年3月15日
  • VBA
  • 1回
  • 0件
VBA NO IMAGE

①セルをコピー・切り取りして挿入する

コピーまたは切り取りをしたセルやセル範囲は通常、目的のセルに上書きされる形で貼り付けられますが、目的の位置に挿入する形で貼り付けることもできます。この機能を利用すれば、表の特定の行を、別の行と入れ替えることも可能です。

・表の特定の行を挿入モードで移動する

特定のセル範囲の内容を、別の位置に挿入モードで移動するには、まず元のセル範囲を表すRangeオブジェクトのCutメソッドで「切り取り」の操作をし、移動先のRangeオブジェクトを取得し、そのInsertメソッドを実行します。

・実行結果

 

・挿入モードで移動する

セル範囲の挿入モードでの移動をExcelの操作で行う場合は「ホーム」タブの「クリップボード」グループの「切り取り」を実行してから、目的の位置を選択し、「ホーム」タブの「セル」グループの「挿入」をクリックします。

 

・表の特定の行を挿入モードで複製する

特定のセル範囲の内容を、別の位置に挿入モードで複製するには、まず元のセル範囲を表すRangeオブジェクトのCopyメソッドで「コピー」の操作を行います。そして、複製先のセルを表すRangeオブジェクトを取得してInsertメソッドを実行します。

・実行結果

 

②空白のセルを挿入する

セル範囲に空白のセルを挿入し、その位置にもともとあったセルを右方向または下方向へずらすことができます。その場合、既存のセルをずらす方向を指定しておくのが確実です。また、行単位または列単位で空白セルを挿入することもできます。

・空白セルを挿入して右方向へずらす

表の範囲に3行×2列の空白のセルを挿入し、その位置にもともとあったセルの内容を右方向へずらします。この操作は、対象のセル範囲を表すRangeオブジェクトのInsertメソッドで行います。既存のセルをずらす方向は、引数Shiftに定数xlShiftDown(下方向)かxlShiftToRight(右方向)のいずれかで指定します。また引数を省略した場合は、対象範囲の行数が列数以上なら下方向、列数が行数以上なら右方向にセルがずれます。

・実行結果

 

・コピーした内容を挿入しないようにする

空白セルを挿入するコードは、事前にセル範囲のコピーを行っていない場合(コピーモードでない)が前提です。コピーモードの状態では、空白セルではなくコピーした内容が挿入されます。確実にコピーモードを解除してから挿入するには、「Application.CutCopyMode = False」を挿入前に追加します。

・空白の列を挿入する

セル単位ではなく、列単位のセル範囲を表すRangeオブジェクトを対象にInsertメソッドを実行すると、空白の列が挿入され、引数Shiftをしていしなくても右方向にずれます。ここでは、Columnプロパティを使用して列単位のRangeオブジェクトを取得し、Insertメソッドを実行しています。また、行単位で空白セルを挿入したい場合はRowsプロパティを使って対象の行の範囲を取得します。

・実行結果

 

・選択範囲を含む行全体に空白セルを挿入する

選択範囲を含む行全体を対象に空白行を挿入します。まずRangeオブジェクトのEntireRowプロパティで、その行全体を表すRangeオブジェクトを取得します。そのInsertメソッドを実行すると、行単位の空白セルが挿入されます。同様の操作を列単位で行いたい場合は、EntireColumnプロパティを使用します。

・実行結果

 

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

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

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