dポイントプレゼントキャンペーン実施中!

ブック1のマクロを実行すると、ブック2を開きその中のシートをコピーしてシート名を変更するように作成しました。このとき二つのブックはデスクトップ上にありました。そのファイルを会社のPCへ移しあるフォルダにいれて実行したところ、マクロが途中でエラーがでてできませんでした。これは参照する場所が違うためできないのでしょうか?よくわかりません・・
よろしくお願いします

A 回答 (4件)

同一フォルダにあるファイルを開くなら、Thisworkbook.path を使用すると良いと思います。



下記はマクロを含むブックと同じフォルダにある Book2.xls を開き、
一番左のシートのA1の値をメッセージ表示してから Book2.xls を閉じます。
Book2.xls が無い場合は何もしません。

Sub Test()
Dim fName As String, wb As Workbook
 On Error GoTo ER:
 'マクロを含むブックと同じパスにある Book2.xls を指定
 fName = ThisWorkbook.Path & "\Book2.xls"
 'ブックを開く
 Set wb = Workbooks.Open(fName)
 '一番左のシートのA1を表示
 MsgBox wb.Worksheets(1).Range("A1").Value
 'ブックを閉じる
 wb.Close SaveChanges:=False
ER:
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
マクロまで紹介してくださって感謝します

お礼日時:2006/05/17 08:09

実行途中でエラーになるのであれば、デバッグ機能を使えば、どこでエラーが発生しているのか、わかりますが。


慣れなければ、非常に見難いものです。

>これは参照する場所が違うためできないのでしょうか

この懸念があるのであれば、実行すべきファイルのカレントフォルダーが違う為と思われます。
作成された側のPCと移動側のPCに同一の場所に同一名のフォルダーを作成された上で実行すればどうでしょうか?

例えば、
c:\test_macro\book1.xls
c:\test_macro\book2.xls
のように。

ただし、book1.xls上のマクロ上にbook2.xlsのカレントフォルダーがc:\test_macroでないと同様のエラーが発生します。
    • good
    • 0

これは参照する場所が違うためです。


同じデスクトップでもCドライブからたどると別のデスクトップになることもあります。
ログインするユーザー名などは同じですか。
デスクトップではなくCドライブ上で動作するようにしてから会社で動作確認してはどうでしょう。
    • good
    • 0

>マクロが途中でエラーがでてできませんでした。



どこでどのようなエラーになったのかが不明ですので、原因はなんとも言えません。

>これは参照する場所が違うためできないのでしょうか?

そのような予測ができるのなら、ファイルを開く部分のパス設定を確認すれば簡単にわかる事ですよね?
    • good
    • 0

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