• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルでコピー領域と貼り付け領域の形が違うエラー)

エクセルでコピー領域と貼り付け領域の形が違うエラー

このQ&Aのポイント
  • エクセルでセルのコピー&ペーストをする際に、コピー領域と貼り付け領域の形が異なるエラーが発生します。
  • このエラーは、セルの数が異なるために起こる可能性があります。
  • マクロを使用することで、エクセルシートのセル数を変更することができ、以前作成したマクロを使用できるようになります。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

解決策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 のようになります。

fasdsfa
質問者

お礼

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

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.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の部分を変えて、実行。どうなりますか。

fasdsfa
質問者

お礼

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

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.3

> セルの結合をした記憶はございませんが、勝手に結合されている事があるので しょうか? 勝手に結合されていることはないと思います。 コピーのコードがどうなっているのかわかりませんが Cells.Copy とかになっているのでしたら セルの指定をRange("A1:IV65536")というような指定にしてみてはいかがでしょう。

fasdsfa
質問者

お礼

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

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

セルの結合とかしているところがあると、そのようなエラーが出ることがありましたがそういことはありませんか。 セルのコピー貼り付けではなくシートそのものをコピーしてみてはいかがでしょう。

fasdsfa
質問者

補足

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

  • mar00
  • ベストアンサー率36% (158/430)
回答No.1

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

fasdsfa
質問者

補足

ご回答ありがとうごいます。 ただ、同様のエラーメッセージが出て、できないです。

関連するQ&A