• 締切済み

excel2003マクロの2007での使い方

OS:windowsXP excel2003で作成したマクロがexcel2007で動かなく困っております。 マクロでやりたいことは 1つ目のブック(以降A)の内容を、2つ目(以降B)のブックに行列を反転しコピー です。Aのブックの列数は不変ですが行数、ファイル名は毎回変化します。 excel2003では動いていたのですが2007ではコピー元がBのブックになってしまいます。 実際のマクロは Workbooks(1).Activate Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlToRight)).Select Selection.Copy Windows("B.xls").Activate Sheets("sheet2").Select Range("B1").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True です。 よろしくお願いいたします。

みんなの回答

  • takana_
  • ベストアンサー率44% (21/47)
回答No.4

マクロはAのブックにあるのでしょうか? それともBのブックにあるのでしょうか? Aのブックにあるのなら Workbooks(1).Activate ↓ ThisWorkbook.Activate に変更すればOKなのですが、どうやら違うようですね。 ためしにコードの途中に Debug.print Workbooks(1).Name を入れて実行してみれば、Workbooks(1)がどのブックを指しているか わかると思います。

  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.3

childalllさん こんにちは。 多分 "B.xls"が"B.xlsx"に変わったのではないでしょうか? もしそうなら  Windows("B.xls").Activate        ↓  Windows("B.xlsx").Activate だと思います。 また Workbooks(1).Activate のようにWorkbooksオブジェクトを使用するのなら Workbooks("B.xlsx").Activate または Workbooks(2).Activate  を使用(統一)した方が良いかと思います。

childalll
質問者

お礼

回答ありがとうございます。 拡張子は2007形式で保存したり色々試してみましたができませんでした。 Windows("B.xls").Activateは機能しているようですが、Workbooks(1).Activateは機能していないようです。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

コピー元ブックより先にBブックをオープンしたからだと思いますのでコピー元ブックを先に オープンして下さい。 Workbooks(1).Activateは1番最初に開いたブックをアクティブにするので 現在のVBAを実行しているブックを選択(ThisWorkbook.Activate)したらどうでしょうか。

childalll
質問者

お礼

回答ありがとうございます。 ブックAを最初に開いて今回の結果になってしまいました。 ブックAのファイル名が随時変わるので名称指定でWorkbookが選択できず また、ブックAを最初に開かなければいけない状態です。

  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.1

>excel2003では動いていたのですが2007ではコピー元がBのブックになってしまいます。 Workbooks(1).Activate Sheets("sheet1").Select  ・・・・・・・・単純にこれが抜けてるだけとか? Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlToRight)).Select Selection.Copy Windows("B.xls").Activate Sheets("sheet2").Select Range("B1").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True

childalll
質問者

お礼

回答ありがとうございます。 教えていただいたSheetsの記載を行いましたが変化ありませんでした。

関連するQ&A

専門家に質問してみよう