- ベストアンサー
エクセルVBA
こんばんは! エクセルマクロ初心者です。 エクセルVBAについて教えてください! パス(?)を指定して、ファイルを開けてから実行する マクロを書きたいのですが、エラーになってしまいます。 Dim Filename as string (1)Workbooks.Open Filename:= "\D\MyDocument\●●.xls" (●●はファイル名) (2)Workbooks("●●").Activate (1)の部分は実行されて目的のファイルは開くのですが(2)でエラーになってしまいます。 どなたか教えてください! 以前までは、このマクロ実行できていたのですが、突然できなくなりました。 困ってます。
- みんなの回答 (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
その他の回答 (2)
- papayuka
- ベストアンサー率45% (1388/3066)
Workbooks("●●").Activate ↓ Workbooks("●●.xls").Activate にしては? 拡張子を付けた場合、拡張子の表示・非表示のどちらになっていてもOKですが、拡張子無しで指定した場合は、エクスプローラの設定によってエラーになったような。。。
お礼
お答えありがとうございます! 私のPCのエクスプローラの設定は確か拡張子表示になってます。 (1)は例えで "\\D\Mydocuments\●●.xls" で表現したのですが、実際は会社のファイル用のサーバー上にあります。 サーバーの設定とかも関係あるのでしょうか? 重ねての質問で申し訳ありません!
- hana-hana3
- ベストアンサー率31% (4940/15541)
Workbooks("●●.xls").Activate だと思いますが? ファイルの拡張子まで指定してください。
お礼
さっそくのお答えありがとうございます! 今、エクセルの入ったパソコンではないので明日会社でやってみます! その後のオブジェクト全部 Workbooks("●●"). で書いてしまいました。 全部修正し直しですよね? 今まで実行されてたのは何故でしょう? 重ねての質問でごめんなさい! でも、お答えいただけたら嬉しいです。
お礼
ありがとうございます。 変数の宣言型にWorkbookというものがあるなんて知りませんでした。 勉強になりました! 今後も使いたいマクロなので、これを機にキチンと書き直します!