• 締切済み

自宅で作成したマクロが会社のPCで使えない

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

みんなの回答

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.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

381mk
質問者

お礼

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

回答No.3

実行途中でエラーになるのであれば、デバッグ機能を使えば、どこでエラーが発生しているのか、わかりますが。 慣れなければ、非常に見難いものです。 >これは参照する場所が違うためできないのでしょうか この懸念があるのであれば、実行すべきファイルのカレントフォルダーが違う為と思われます。 作成された側のPCと移動側のPCに同一の場所に同一名のフォルダーを作成された上で実行すればどうでしょうか? 例えば、 c:\test_macro\book1.xls c:\test_macro\book2.xls のように。 ただし、book1.xls上のマクロ上にbook2.xlsのカレントフォルダーがc:\test_macroでないと同様のエラーが発生します。

  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.2

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

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>マクロが途中でエラーがでてできませんでした。 どこでどのようなエラーになったのかが不明ですので、原因はなんとも言えません。 >これは参照する場所が違うためできないのでしょうか? そのような予測ができるのなら、ファイルを開く部分のパス設定を確認すれば簡単にわかる事ですよね?