• ベストアンサー

エクセルVBA

こんばんは! エクセルマクロ初心者です。 エクセルVBAについて教えてください! パス(?)を指定して、ファイルを開けてから実行する マクロを書きたいのですが、エラーになってしまいます。 Dim Filename as string (1)Workbooks.Open Filename:= "\D\MyDocument\●●.xls" (●●はファイル名) (2)Workbooks("●●").Activate (1)の部分は実行されて目的のファイルは開くのですが(2)でエラーになってしまいます。 どなたか教えてください! 以前までは、このマクロ実行できていたのですが、突然できなくなりました。 困ってます。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.3

> で表現したのですが、実際は会社のファイル用のサーバー上にあります。 > サーバーの設定とかも関係あるのでしょうか? 意味が掴めないのですが、、、 拡張子の問題は実行するPCの設定によって起こると思います。 拡張子を非表示にしたPCで Workbooks("Book1").Activate はOK 拡張子を非表示にしたPCで Workbooks("Book1.xls").Activate もOK 拡張子を表示にしたPCで Workbooks("Book1").Activate はNG 拡張子を表示にしたPCで Workbooks("Book1.xls").Activate はOK なお、Workbook型の変数にセットしてから操作するとその後の操作が楽になります。 Sub Test() Dim wb As Workbook  Set wb = Workbooks.Open("フルパス")  MsgBox "ブック名は " & wb.Name  MsgBox "フルパスは " & wb.FullName  MsgBox "最初のシート名は " & wb.Worksheets(1).Name  MsgBox "シートの数は " & wb.Worksheets.Count  MsgBox "閉じます"  wb.Close End Sub

hiromiclearcolor
質問者

お礼

ありがとうございます。 変数の宣言型にWorkbookというものがあるなんて知りませんでした。 勉強になりました! 今後も使いたいマクロなので、これを機にキチンと書き直します!

その他の回答 (2)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

Workbooks("●●").Activate  ↓ Workbooks("●●.xls").Activate にしては? 拡張子を付けた場合、拡張子の表示・非表示のどちらになっていてもOKですが、拡張子無しで指定した場合は、エクスプローラの設定によってエラーになったような。。。

hiromiclearcolor
質問者

お礼

お答えありがとうございます! 私のPCのエクスプローラの設定は確か拡張子表示になってます。 (1)は例えで "\\D\Mydocuments\●●.xls" で表現したのですが、実際は会社のファイル用のサーバー上にあります。 サーバーの設定とかも関係あるのでしょうか? 重ねての質問で申し訳ありません!

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

Workbooks("●●.xls").Activate だと思いますが? ファイルの拡張子まで指定してください。

hiromiclearcolor
質問者

お礼

さっそくのお答えありがとうございます! 今、エクセルの入ったパソコンではないので明日会社でやってみます! その後のオブジェクト全部 Workbooks("●●"). で書いてしまいました。 全部修正し直しですよね? 今まで実行されてたのは何故でしょう? 重ねての質問でごめんなさい! でも、お答えいただけたら嬉しいです。

関連するQ&A

専門家に質問してみよう