VBAで上下のセルの文字のみを入れ替える

上下のセルを手で入れ替えるのは面倒

Excelで値を入力している際に、間違えていることに気が付き、上下のセルの入力値を入れ替えたいことがあります。

その場合、一方を切り取って、正しい位置に挿入することになるのですが、例えば1行まるごとを入れ替えるのではなく、C列の10行目と11行目だけを入れ替えたい、という部分的に入れ替えたいことは結構あります。

こういう場合、入力文字数が少ないのであれば手で入力しなおすのが速いかもしれませんが、そうでない場合や入力誤りが気になったりと、やはり手作業は回避したいというのは多々あります。

そしてこれがとても面倒なのですが、コピペした場合は背景色などのセルの書式も引き継いでしまうため、それもやり直さないといけない、という時間が結構かかる作業になります。

以下のコードはそのようなわずらわしい作業を無くし、入力されている文字のみを入れ替えます。

ソースコード



処理説明

1列または複数列の2行を選択して「上下入れ替え」関数を実行すると、文字のみ入れ替えを行います。

選択行が2行でない場合のチェックが入っているため長く見えますが、実質的な処理は「上下入れ替え2個セル指定」関数の部分になります。

単に文字を入れ替えているだけです。

使用例

天気の表を作成している例を取ります。

気温の行を4行目と5行目に用意し、それぞれを赤色と青色にして、最高気温と最低気温を記入する欄とします。

ところが誤って最高気温と最低気温を逆に入力していました。

それを入れ替えるために、入れ替えたい部分を選択します。誤っている個所が複数の列あるためそれらを選択します。

そして「上下入れ替え」関数を実行すると、書式はそのままで文字のみが入れ替わります。

関連記事

サブコンテンツ

このページの先頭へ