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

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

  • 2019年3月11日
  • 2019年3月15日
  • VBA
  • 1件
VBA NO IMAGE

①セルをクリアする

セルに入力されているデータをクリアするコードを紹介します。通常のExcelでの「Deleteキー」に相当する操作や、書式を含めてクリアする方法や、書式のみをクリアする方法も紹介します。

・セルのデータをクリアする

特定のセルを表すRangeオブジェクトのClearContentsメソッドで、そのセルに入力されているデータをクリアできます。セルに設定されている書式はそのまま残ります。なお、このメソッドには引数は指定しません。

・実行結果

 

・書式も含めてすべてクリアする

セルのデータに加え、設定されている罫線や塗りつぶしの色などの書式をすべてクリアして初期状態に戻したい場合は、対象のセルを表すRangeオブジェクトのClearメソッドを実行します。

・実行結果

 

・セルの書式だけをクリアする

セルに入力されているデータはそのまま残し、罫線や塗りつぶしの色などの書式だけをクリアして初期設定に戻したい場合は、対象のセルを表すRangeオブジェクトのClearFormatsメソッドを実行します。

・実行結果

 

②セルを削除する

セル自体をワークシート上から削除し、その分、右側または下側にセルを詰めるには、セルの「削除」を実行します。下記では詰める方向を指定して、特定のセルを削除する方法を紹介します。

・セル範囲を削除して下から繰り上げる

特定のセル範囲を削除するには、対象のセル範囲を表すRangeオブジェクトのDeleteメソッドを実行します。削除されて位置に詰めるセルの方向は、引数ShiftにxlShitfUp(下から上に)またはxlShiftToLeft(右から左に)のいずれかを指定します。

・実行結果

 

・セルを削除する時に詰める方向

Deleteメソッドの引数Shiftを省略した場合、詰める方向は、対象のセル範囲の行数と列数に応じて自動的に決まります。列数が行数以上の場合は、下から上へセルが詰められます。逆に行数が列数より多い場合は、右から左へセルが詰められます。

・行単位で削除する

行単位のセル範囲を表すRangeオブジェクトを対象にDeleteメソッドを実行すると、引数Shiftを指定しなくても、下から上へ詰められます。Rowsプロパティを使用してRangeオブジェクトを取得し、Deleteメソッドを実行します。同様に列単位で削除する場合には、Columnプロパティで対象の列を取得します。

・実行結果

 

・選択範囲を含む列全体を削除する

選択範囲を含んだ列全体の削除方法は、Rangeオブジェクトを対象としたEntireColumnプロパティで、その列全体を表すRangeオブジェクトを取得できます。そのDeleteメソッドで、列単位で削除できます。同様に行単位で削除する場合には、EntireRowプロパティを使用します。

・実行結果

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

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

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