• ベストアンサー

Excel2000のマクロが上手くいきません

はじめまして、よろしくお願いします。 仕事で下記のような条件のマクロを作っています。 全くの初心者ですが、 いろんなHPを見て例文を書き写したりしながらなんとか作ってみたのですが、 ですが、どうしても上手く実行されません。 お恥ずかしい話ですが、 ものすごく根本的な簡単なミスをしているだと思うのですが、 どの部分が間違っているかも正直分からなくなってきました。 ご教授いただければ幸いです。 「AAファイルのS1シートのA2~B10をBBファイルのS2シートA2~B10へコピーし、 BBのS2シートB2~B10までの中でデータの入っていない行は削除する」 マクロはBBファイルに書き込んでいます。 また、AAとBBの両方を開いて実行もしています。 Sub Workbooks("AA.xls").Worksheets("S1").Range("A2:B10").Copy _ Workbooks("BB.xls").Worksheets("S2").Range("A2") Application.ScreenUpdating = False On Error Resume Next With Columns("A2:A10") .SpecialCells(xlCellTypeConstants).EntireRow.Hidden = True .SpecialCells(xlCellTypeFormulas).EntireRow.Hidden = True .SpecialCells(xlCellTypeVisible).EntireRow.Delete .EntireRow.Hidden = False End With Application.ScreenUpdating = True End Sub お手数おかけいたしますが、よろしくお願いいたします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

'AAファイルのS1シートのA2~B10をBBファイルのS2シートA2~B10へコピーし、 'BBのS2シートB2~B10までの中でデータの入っていない行は削除する」 'マクロはBBファイルに書き込んでいます。 これを単純に考えたら、以下のようになるはずですが、何か他に残るものがあるのでしょうか??ご質問のコードは、どこかで見た覚えがあるのですが、何のためにそうしなければならなかったのか、よく分かりません。勘違いでしたら、すみません。 '----------------------------------------------------------- Sub test2() Workbooks("AA.xls").Worksheets("S1").Range("A2:B10").Copy _ Workbooks("BB.xls").Worksheets("S2").Range("A2") Application.ScreenUpdating = False With Workbooks("BB.xls").Worksheets("S2").Range("B2:B10")   On Error Resume Next   .SpecialCells(xlCellTypeBlanks).EntireRow.Delete   On Error GoTo 0 End With Application.ScreenUpdating = True End Sub '-----------------------------------------------------------

may_way
質問者

お礼

早速のレスありがとうございました。 また、仕事の都合にてお返事が遅くなり申し訳ありません。 >ご質問のコードは、どこかで見た覚えがあるのですが いろんなHPで例文が出ていたので、それを書き写したりしていましたので、それで見覚えがおありなのかもしれませんね。 修正していただいた内容でもう一度手直ししてみます。 とても勉強になりました。 本当にありがとうございました。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

#1>Withが抜けてました With Workbooks("BB.xls").Worksheets("S2").Range("B2:B10")

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

Sub → Sub subName() With Columns("A2:A10") → Workbooks("BB.xls").Worksheets("S2").Range("B2:B10")

may_way
質問者

お礼

早速のレスありがとうございました。 また、仕事の都合にてお返事が遅くなり申し訳ありません。 お返事の内容、参考にさせていただき書き直してみます。 ありがとうございました。

関連するQ&A

専門家に質問してみよう