Excel2010搭載のPCで使っていたVBAを2016搭載のPCで実行した時、結合セルのコピーがうまくいかないパターンがあります。
Book1.xlsmとBook2.xlsmを用意し、それぞれのSheet1にA1からA3までを結合したセルを用意しました。
以下のテストコードは、Book1の結合セルの値をBook2の結合セルにコピーするものです。
test1とtest2は同じことをしています。
VBA
1Sub test1() 2 ThisWorkbook.Worksheets("Sheet1").Range("A1").Copy 3 Workbooks("Book2.xlsm").Worksheets("Sheet1").Range("A1").PasteSpecial Paste:=xlPasteValues 4End Sub 5 6Sub test2() 7 ThisWorkbook.Worksheets("Sheet1").Range("A1:A3").Copy 8 Workbooks("Book2.xlsm").Worksheets("Sheet1").Range("A1:A3").PasteSpecial Paste:=xlPasteValues 9End Sub 10
2016のVBAで実行した場合、Test1は結合セルの指定エラーになります。
2010で実行した場合、1と2は問題なく処理されます。
範囲を指定した方が正しく動くことは当たり前ですが、2016ではtest1のような記述ができなくなったのでしょうか?
もしくはVBAの参照設定やPCそれぞれの動作環境に原因があるのかもしれませんが、とりあえず互換性の問題かPCの問題かだけ確かめたいです。
2016をお持ちで時間のある方、上記のテストコード試してもらえませんでしょうか。
※Copyじゃなくても「Value = Value」でできるというのはわかっています。あくまで、この動作がなぜ動かないかの原因を探っています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/06/15 01:18 編集