質問

お世話になっております。
エクセルでセルの左上をクリックし、シート全体を選択して、他のブックに
このシートをコピーアンドペーストしようとすると、
コピー領域と貼り付け領域の形が違うというようなエラーが出て、貼りつける
事ができません。
左上の数字を見ると、片方は65536R×256C
もう片方は1048576R×16384C
となっており、明らかにセルの数が違うことが原因なのかなと思ったりもし
ます。
65536R×256Cでマクロを作成してしまっているため(エクセル2003で作成済分)
、もう片方の1048576R×16384Cのエクセルシートを65536R×256Cのセル数に変更する
ことができれば、大変ありがたいです。(現在はエクセル2007です。)
上記のような事は可能でしょうか?
可能であるならば、方法をお教えいただきたく。
よろしくお願いいたします。
なんとかして、以前作成したマクロを使えるように致したいですので。

通報する

回答 (5件)

セル結合があるやセル結合の位置が違う件
貼り付け元でセル結合があり、貼り付け先でセル結合が無い場合も、貼り付け元のシートのセル結合した姿で張り付くようだ。
ーー
違うバージョンのブックの間でのコピー貼り付けが原因だと思う。
両者に差しさわりの無いのは、xlsの方のシートの最大行数x最大列数でコピーして(Cellsにしない)、2007の方で貼り付け先シートの基点セル(左上隅のセルを)A1セルにして、旨く張り付きませんか。
ーー
自信はないが、UsedRangeを使うことで、互換性は無いかな。
テストできてないのですが。
Sub test02()
Set dest = Workbooks.Open("XXX.xls") 'コピー先のブック
Windows("Book1").Activate ' 保存前のブックの場合
ActiveWorkbook.Worksheets("Sheet1").UsedRange.Copy dest.Worksheets("Sheet1").Range("A1")
End Sub
保存してあるブックなら、そのブックを開いておいて、そのウィンドウのタイトル名にWindows("Book1").ActivateのBook1の部分を変えて、実行。どうなりますか。

この回答へのお礼

ありがとうございました。
すでに解決済でしたが、勉強になりました。

解決策1(推奨):
貼り付け先ブック(マクロが登録してある方)を,名前を付けて保存でファイルの種類を「Excelマクロ有効ブック」に変えて保存する
ファイル名が「今のブック名.xlsm」に変わるので,今のマクロを修正する



解決策2:
「シートの全部のセルをコピーする」のと「シートをコピーする」のでは,まったく意味が違います。

新しいマクロの記録を開始する
コピー元のブックを開き,
シート名タブを右クリックして「移動コピー」を開始し
コピーにチェックを入れ
移動先ブック(マクロブック)を指定してOKする

記録されたマクロを編集し,コピー元ブックをgetopenfilenameで指定できるように修正する。



解決策3:機能が劣るためあまりお奨めしません
そもそも「全セルを選んでコピー貼り付ける」なんて乱暴なことをしているので,失敗します。
コピー元がどんな大きさなのか不明なのは勿論仕方がないことですが,せめて「大体この範囲」みたいなのをつかんで仕事をしてもバチは当たりません。
もしもそれで,実際にコピー元が「IV列よりも右にはみ出して確かにデータがある」と確認できたのでしたら,それはもう今の256列のマクロブックじゃそもそも納まらないってことです。その時は解決策1に移行するしかありません。

作成例:
sub macro1()
 dim myFile
 myfile = application.getopenfilename()
 if myfile = false then exit sub
 workbooks.open filename:=myfile
 range("A:Z").copy  ’たとえば最大でもZ列止まりなら。
 thisworkbook.activate
 range("A1").select
 activesheet.paste
end sub


どーしても「全部のセル」を指定したくてしたくてシカタないなら,
range("A:IV").copy
のようになります。

この回答へのお礼

ありがとうございます。
range("A:Z").copy  ’たとえば最大でもZ列止まりなら。
を参考にマクロを訂正したところ、上手にできました。

> セルの結合をした記憶はございませんが、勝手に結合されている事があるので
しょうか?


勝手に結合されていることはないと思います。


コピーのコードがどうなっているのかわかりませんが

Cells.Copy

とかになっているのでしたら

セルの指定をRange("A1:IV65536")というような指定にしてみてはいかがでしょう。

この回答へのお礼

ありがとうございました。
おかげざまで、解決いたしました。

セルの結合とかしているところがあると、そのようなエラーが出ることがありましたがそういことはありませんか。

セルのコピー貼り付けではなくシートそのものをコピーしてみてはいかがでしょう。

この回答への補足

回答ありがとうございます。
シートそのものをコピーしようとしても、同様のエラーになります。
シート全体におけるセルの数がエクセル2003とエクセル2007で、数が違うから
なのかと思ったりもしております。
セルの結合をした記憶はございませんが、勝手に結合されている事があるので
しょうか?

貼り付けるときにセルA1に貼り付けてみてはどうでしょうか。
できなかったらすいません。

この回答への補足

ご回答ありがとうごいます。

ただ、同様のエラーメッセージが出て、できないです。

このQ&Aは役に立ちましたか?1 件

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

新しく質問する

注目の記事

フリーアナウンサー長谷川豊氏の新コーナー「このニュースどう思います?」がスタート!

元フジテレビのフリーアナウンサー長谷川豊氏から気になるニュースについておしトピの皆さんに質問します! 皆さんの意見をもとに長谷川豊氏がコラムを執筆します! アプリリリース記念として最大1万分のアマゾンギフト券プレゼントキャンペーンも実施中!


新しく質問する

このカテゴリの人気Q&Aランキング

毎日見よう!教えて!gooトゥディ

べんりQ&A特集