- 締切済み
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 です。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- takana_
- ベストアンサー率44% (21/47)
マクロはAのブックにあるのでしょうか? それともBのブックにあるのでしょうか? Aのブックにあるのなら Workbooks(1).Activate ↓ ThisWorkbook.Activate に変更すればOKなのですが、どうやら違うようですね。 ためしにコードの途中に Debug.print Workbooks(1).Name を入れて実行してみれば、Workbooks(1)がどのブックを指しているか わかると思います。
- jcctaira
- ベストアンサー率58% (119/204)
childalllさん こんにちは。 多分 "B.xls"が"B.xlsx"に変わったのではないでしょうか? もしそうなら Windows("B.xls").Activate ↓ Windows("B.xlsx").Activate だと思います。 また Workbooks(1).Activate のようにWorkbooksオブジェクトを使用するのなら Workbooks("B.xlsx").Activate または Workbooks(2).Activate を使用(統一)した方が良いかと思います。
- mu2011
- ベストアンサー率38% (1910/4994)
コピー元ブックより先にBブックをオープンしたからだと思いますのでコピー元ブックを先に オープンして下さい。 Workbooks(1).Activateは1番最初に開いたブックをアクティブにするので 現在のVBAを実行しているブックを選択(ThisWorkbook.Activate)したらどうでしょうか。
お礼
回答ありがとうございます。 ブックAを最初に開いて今回の結果になってしまいました。 ブックAのファイル名が随時変わるので名称指定でWorkbookが選択できず また、ブックAを最初に開かなければいけない状態です。
- FEX2053
- ベストアンサー率37% (7991/21371)
>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
お礼
回答ありがとうございます。 教えていただいたSheetsの記載を行いましたが変化ありませんでした。
お礼
回答ありがとうございます。 拡張子は2007形式で保存したり色々試してみましたができませんでした。 Windows("B.xls").Activateは機能しているようですが、Workbooks(1).Activateは機能していないようです。