ナレッジ ベース KB0160

隣接していないセルの複数選択をコピーできない

問題

隣接していないセルを複数選択してthink-cellのデータシートにコピーすることができません。controlキーを押してセルをクリックするといった操作で隣接していないセルを複数選択し、このようなセルをコピーしてthink-cellの内部データシートに貼り付けると、その間にある選択されていないセルも貼り付けられます。

コピー/貼り付け後の複数選択の表示
  • ソース シート:セルA1、A3、A5をコピー → コピー先シート:A1:A5が貼り付けられます

説明

これはExcelの設計の限界です。think-cellの内部データシートはExcelに基づいていますが、別個のExcelプロセスです。この問題は、隣接していないセルをコピーして別個のExcelプロセスに貼り付けると、think-cellなしでも再現できます。

think-cellなしで再現:

  1. Excelを開き、何らかの数字をセルA1~A5に入力します。
  2. セルA1、A3、A5を選択します。Ctrlキーを押したまま、これらのセルをクリックしてください(上記のスクリーンショット参照)。選択した項目をコピーします。
  3. タスク バーのExcel記号を右クリックし、Microsoft Excel 20…別個のExcelプロセスを開始する方法をクリックして別個のExcelプロセスを開始します。Excel 2013以降では、同時にALTキーを押したまま別個のプロセスを開始します。[新しいExcelのインスタンスを開始しますか?] というメッセージが表示されたら[はい] で確定します。
  4. 貼り付けます(例:Ctrl + Vを押します)。

結果:選択されていないセルA2とA4も貼り付けられます。

弊社はこの問題についてMicrosoft Officeサポートに報告しました。(ケース112021442496011) Microsoft Officeサポートは、この動作はこれまで記録されていないが「設計上」そうなっていると回答しています。

“この動作は設計上、意図されています。

コピーと貼り付けでクリップボードを使用すると、あらゆるOfficeのアプリケーションで使えるよう意図された機能を使用していることになります。その場合、クリップボードはHTMLコードを使用してデータを保管し、その後、データを貼り付けます。HTMLコードは範囲の選択に限定されており、選択していないセルを含む範囲にあるすべてのデータを取得します。HTMLコードでテーブルを作成し、このテーブルを貼り付け操作で使用します。これにより、クリップボードはExcelからのデータを他のOfficeアプリケーション(Word、Power Point、その他、このワークブック外のExcelのインスタンス)と共有できます。

Ctrl-Cを使い、クリップボードを使用してCtrl-Vでフォローアップすると、Excel内部の単一のインスタンス コピー機能を使用していることになります。Excelは選択されたセルのみをコピーできます。これで希望する動作になります。クリップボードはあらゆるOfficeアプリケーションと共有するため、限度があります。クリップボードの限界は、シンプルなコピー/貼り付け操作を行う必要のあるデータが大量にあるため、意図的に計画されたものです。何度もコピー動作を行えば、システムが圧倒され、パフォーマンスが大幅に低下する原因になります。HTMLコピーは内部コピーを簡素化したバージョンなので、差異と限度があります。”(Microsoft Officeサポート)