LoginSignup
5
1

More than 5 years have passed since last update.

[Excel Office365]コピーを保持する新機能が追加されたためにInsertの動きが変わる

Last updated at Posted at 2017-08-30

対象:Office365 Excel バージョン 1705 (ビルド 8201.xxxx) 以降

2017年5月の更新で「コピーを保持する機能」が追加され、セルをコピーしたあとでセルの選択や編集をしてもコピーした情報を貼り付けられるようになった。
行挿入も同様に、行のコピー後に連続で「コピーしたセルの挿入」ができるようになった。
個人的に大変重宝している。

しかし、この機能によりRange.Insertの動きが変わってしまった。

詳細

コピーの保持機能がないバージョン
Sub sample()
    Rows("1:1").Copy
    Rows("4:4").Insert Shift:=xlDown '1行目のコピーが行挿入される
    Rows("4:4").Insert Shift:=xlDown '空行が挿入される
End Sub

これまでは1度でもInsertすればコピー情報はクリアされていた。

ところがコピーの保持機能があると2回目以降のInsertでもコピーが行挿入されてしまう。

コピーの保持機能がある場合
Sub sample()
    Rows("1:1").Copy
    Rows("4:4").Insert Shift:=xlDown '1行目のコピーが行挿入される
    Rows("4:4").Insert Shift:=xlDown '1行目のコピーが行挿入される
End Sub

コピー状態(セルが緑色の点線で光っている状態)を解除しないと空行のコピーができなくなっている。

同様に、例えば下記コードはコピー元と挿入先の形が違うため、コピー状態を意図的に解除しないと1004エラー「コピー領域と貼り付け領域のサイズが違うため、これをここに貼り付けることができません。」となる。

Sub sample()
    Columns("A:A").Copy
    Columns("B:B").Insert Shift:=xlToRight
    Rows("4:4").Insert Shift:=xlDown
End Sub

個人的にこれまであまり意識していないところであったため、Insertしているところは見直していく所存。

回避

Insert前にコピー状態を解除すればよい。

    Application.CutCopyMode = False

参考

2018/9/20 追記

この仕様変更が不要だったらしく9/17に機能を一旦取り下げたようだ。
https://excel.uservoice.com/forums/304921-excel-for-windows-desktop-application/suggestions/20324245-may-2017-update-which-keeps-the-copied-item-active

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1