
離れたセル(飛び飛びのセル)をコピーしようとして「この操作は複数の選択範囲に対しては機能しません」という警告が出て困った経験はありませんか。この記事では、その対処法を分かりやすく解説します。
なぜ飛び飛びのセルはコピーできないのか
飛び飛びのセルとは、たとえばA1セルとB4セルのように、連続していない離れたセルのことです。連続した範囲のセルとは区別されます。

Ctrlキーを押しながらA1セルとB4セルを選択すると複数選択ができます。しかし、その状態でコピー(Ctrl+C、右クリック→コピー、リボンの「コピー」ボタンのいずれでも)を実行すると、次の警告が表示されます。

この操作は複数の選択範囲に対しては機能しません
つまり、離れた複数の選択範囲はそのままではコピーできず、当然ペーストもできない、というわけです。ただし、ちょっとした工夫で実現する方法があります。
飛び飛びのセルをコピペする手順
ここでは、コピー元の値を、コピー先にすでに入力されている値(例:0)を上書きせずに貼り付ける方法を紹介します。下の画像でいうと、左側の黄色いセルの数字を、右側の黄色いセルにコピペするイメージです。ポイントは「空白セルを無視する」機能を使うことです。

コピーしたい飛び飛びのセルを「含む」連続した範囲を、まとめて選択します。

Ctrlキーを押しながら、コピーしたい飛び飛びのセルだけを選択します(範囲の中から不要なセルを除いていくイメージ)。

Deleteキーを押します。すると、コピーしたいセルだけが残り、それ以外は空白になります。

もう一度、最初の連続した範囲を選択し直します。

その範囲をコピーします(Ctrl+C)。この時点では、中身は「コピーしたいセル+空白セル」という状態です。

貼り付け先を選び、右クリック→「形式を選択して貼り付け」を開きます。

ダイアログ下部にある「空白セルを無視する」にチェックを入れてOKをクリックします。

これで、空白部分は貼り付けがスキップされ、値の入っているセルだけが貼り付けられます。結果として、飛び飛びのセルをコピペできたのと同じ状態になります。

ポイントは「空白セルを無視する」
このテクニックの核心は「空白セルを無視する」という貼り付けオプションです。コピー範囲の中の空白セルを「なかったこと」として扱い、貼り付け先の既存の値を残してくれるため、上書きしたくないデータを守りながら必要な値だけを移せます。
意外と目立たない場所にあるオプションですが、知っておくと作業の幅が大きく広がります。
もっと手軽な方法はある?
毎回この手順を踏むのが面倒な場合、状況によっては次の方法も検討できます。
① 関数で参照する
貼り付け先のセルに「=A1」のような参照式や、INDEX・VLOOKUPなどの関数を入れておけば、元データの飛び飛びの値を自動で引っ張ってこられます。レイアウトが固定されているなら、こちらのほうが繰り返し作業に向いています。
② マクロ(VBA)で自動化する
頻繁に同じ操作を行うなら、マクロを組んでボタン一つで処理する方法もあります。ただし設定の手間を考えると、たまにしか使わない人には今回紹介した「空白セルを無視する」方式が最も手軽でおすすめです。
ぜひこのテクニックを覚えて、エクセル作業を効率化してください。












コメント
この動作のコード教えてください
VBで書いてボタンで動作制御したいので