ナレッジベース KB0160

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

問題

隣接していないセルを複数選択してthink-cellのデータシートにコピーすることができません。Ctrlキーを押してセルをクリックするといった操作で隣接していないセルを複数選択し、このようなセルをコピーして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 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サポート)

と述べています。

共有する