プロが教える店舗&オフィスのセキュリティ対策術

Excel2007で作った97-2003形式の請求書ファイルを使っています。自分でマクロを使って作っているのですが、今回エラーがでて、マクロが動かずに困っています。
エラーの内容は、
『実行時エラー 1004:
 この操作を行うには、すべての結合セルを同じサイズにする必要があります。』
というものです。

デバッグをクリックすると、添付画像の様に、請求書sheetの備考欄に貼付け処理を指示した部分がマーキングされています。

このファイルは6sheetあり、1枚目の入力sheetから、2枚目の売上帳sheet・3枚目の請求書sheetに入力内容がコピペで飛ぶように作っています。マクロの内容は主にコピペです。

ここで分からないのが、2枚目の売上帳sheetには問題なく、3枚目の請求書sheetに飛ばそうとすると上記のエラー表示が出て止まります。

試しに請求書sheetの結合したセルを全解除してマクロを起動させるとエラーは出ませんでした。

売上帳sheetにはマクロ操作での転記部分に結合セルはなく(同sheet内には結合セルは存在する)、入力sheetには転記の元セルには結合セルが含まれています。請求書sheetには多数結合セルが混じり、転記部分にも結合セルは含まれています。やはり結合セルが原因でしょうか?

これまでいろいろなパソコンでExcel2007~2013までは問題なく動いていました。
OSもXPからVista、win8、win8.1、アップグレードしたwin10と昨年購入した初めからのwin10とすべて問題なく動いていました。
Excel2016のデメリットでしょうか?
何か対処法はないでしょうか?

原因が受けsheet側の結合セルだとすれば、マクロに関係する部分のセルの結合をすべて解いてやらなければならないのでしょうか?
他に良い案があれば教えてください。

パソコンに詳しくなく、すべて独学で質問サイトなどで助けていただきながらやってきているので、またまた困っています。
宜しくお願いします。

「エクセルマクロで「セルのサイズを合わせて」の質問画像

質問者からの補足コメント

  • エラー部分の黄色で表示されているのは、
    Range("請求書備考NO.1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False '請求書NO.1を起点に値の貼り付け
    と表示されています。

      補足日時:2017/03/10 12:33
  • ママチャリさん、すみません。
    質問の仕方がよく分かっておらず補足させていただきます。

    Sub 請求内訳書備考1()
    Worksheets("売上入力").Activate '売上入力シートをアクティブにする
    Range("G8:G17").Copy '請求内訳書No.1への転記部分をコピー
    Worksheets("請求書").Activate '請求書シートをアクティブにする
    Range("請求書備考NO.1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False '請求書備考NO.1を起点に値の貼り付け
    End Sub

    です。

      補足日時:2017/03/10 16:07
  • 試してみました。
    2010でも2016でもエラーは出ずにうまくいきました。
    記載したプロシージャ以外に、あと三個(請求書備考2、請求書備考3、締め日)同じようなコピペのマクロがあったのですが、そちらも同じように直すと、問題なく動きました。
    調べてみると、この4個はどれも貼り付け先が結合セルになっていました。
    最後に教えていただきたいのですが、今回追記した「AndNumberFormats」にはどういう意味があるのでしょうか?
    VBAのコード表やコードの意味などで調べてみましたが、分かりません。
    今後の勉強のために教えていただけると助かります。
    お願いします。

    No.6の回答に寄せられた補足コメントです。 補足日時:2017/03/13 10:42

A 回答 (7件)

Excelのヘルプでは、次のような説明になっているのですが、どうしてうまくいくのかはわかりません。

手動でいろいろ試していたら、これでうまくいっただけなんですよね。結果オーライですいません。

xlPasteValues→値を貼り付けます
xlPasteValuesAndNumberFormats→値と数値の書式を貼り付けます。
    • good
    • 1
この回答へのお礼

そうだったんですか!
本当にお手数をかけさせてすみません!!
でも大変助かりました。
今のところは他に不具合なく動いています。
元々初心者の私が自分でソフトっぽく作ったファイルなので、バグが出ては改良して・・・、というのを繰り返して使っているので、今回も同じように使っていきます。
この度は本当にありがとうございました!

お礼日時:2017/03/14 09:36

わたしはExcel2010を使っているのですが、補足して頂いた条件で実行してみたところ、同じエラーが出ました。

「Excel2007~2013までは問題なく動いていました」とのことですが、どうしてでしょうね?
とりあえず原因は置いといて、解決策を模索してみました。
下記のようにすると一応は動いたのですが、もしかしたら他の部分に影響が出るかもしえません。その辺は自己責任でお願いします。

Paste:=xlPasteValues

Paste:=xlPasteValuesAndNumberFormats
この回答への補足あり
    • good
    • 2
この回答へのお礼

ありがとうございます!!
試してみます!

お礼日時:2017/03/10 17:19

度々なのですが、下記の件についての補足は無いのでしょうか?


>それから「請求書備考NO.1」の名前で参照しているセル範囲はどこになりますか?
    • good
    • 0
この回答へのお礼

すみません。先ほどのお礼欄に書いてしまいました。
答えとしては合っていますか?
質問に答えられているか自信がありません・・・。
私の知識不足で申し訳ないです。

お礼日時:2017/03/10 16:17

No1さんの要求通り、該当プロシージャ(Sub~End Subまで)を添付すべきです。

エラーが発生した行だけだと、難しいと思います。
それから「請求書備考NO.1」の名前で参照しているセル範囲はどこになりますか?
    • good
    • 0
この回答へのお礼

すみません。プロシージャの意味が分かっておらず、該当行のみしか記載してませんでした。
補足に追加しました。
あと、「請求書備考NO.1」は請求書sheetのJ62とK62の結合セルです。
ここを起点に、10行分が転記されるようになっています。

お礼日時:2017/03/10 16:11

再現には同じ結合状況が見えないと難しい気もしますが


最もお手軽には手動で試すことだと思います。
手動でエラーならマクロでも当然通らないでしょうし
結合セルの影響についてはコピー範囲を範囲を
徐々に狭くしていけば、どの結合が影響するか
見えてくるのでは?
    • good
    • 0
この回答へのお礼

気が遠くなるような作業ですがそうですよね・・・。
時間をかけて試してみるしかないですよね。
あと今回初めてエラーがでた原因はどなたか分かる方いないでしょうか?
やはりExcel2016になったのが原因でしょうか?

お礼日時:2017/03/10 16:13

結合されたセルをコピーして


結合されているセルと、【結合されていないセル】が混在した範囲に貼り付けている

…なんて基本的な誤りを犯している落ちを期待してみる。
    • good
    • 0
この回答へのお礼

そうですね。
ないとは言えない・・・。
ただそれだと、どんなPCを使っても動かないのではないでしょうか。
他のPC(Excel2013まで)だと問題なく動くのです・・・。

お礼日時:2017/03/10 13:42

添付の文字が読めません。


が結合セルは一致していないと貼り付け出来ない場合も
あるし、貼り付け方次第で貼れる場合もあります。
画面全体でなく、該当プロシージャだけ再度
添付お願いします。
    • good
    • 1
この回答へのお礼

ありがとうございます。
捕捉に入れさせていただきました。
宜しくお願いします!!

お礼日時:2017/03/10 12:34

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A