以前以下のVBAを教えていただいたham-kamoさんに質問があります。もちろん違う方でも構いません。
「同じフォルダ内のブックを開くマクロ」についてですが、以下のVBAだとカレントフォルダをオプションで違うドライブに設定しているとうまく動作しないのですが、解決法はありますでしょうか?
例えば\\AAAA\BBというアドレスのフォルダ内にマクロを起動するファイルがあり、C:\Documents and Settings\XXXXがカレントフォルダに設定されるとC:\Documents and Settings\XXXX内のExcelファイルが開かれてしまうということです。
--------------------------
Sub OpenAllBooks()
Dim FileName As String
Dim OpenedBook As Workbook
Dim IsBookOpen As Boolean
ChDir (ThisWorkbook.Path)
FileName = Dir("*.xls")
Do While FileName <> ""
IsBookOpen = False
For Each OpenedBook In Workbooks
If OpenedBook.Name = FileName Then
IsBookOpen = True
Exit For
End If
Next
If IsBookOpen = False Then
Workbooks.Open (FileName)
End If
FileName = Dir()
Loop
End Sub
No.4ベストアンサー
- 回答日時:
こんにちは。
前回回答したham_kamoです。いろいろ試しているうちに他の方々が回答してくれましたが、一応私の回答は以下の通りです。
まず、
ChDir (ThisWorkbook.Path)
FileName = Dir("*.xls")
を
FileName = Dir(ThisWorkbook.Path & "\*.xls")
に変更し、さらに
Workbooks.Open (FileName)
の部分(前回エラーが出た場所です)を、
Workbooks.Open (ThisWorkbook.Path & "\" & FileName)
に変更してみてください。
有難うございます。
ham_kamoさんのやり方で、思う通りの動作が実現できました。
他のPCで試しても問題ありません。
いろいろな方に返答いただき有難うございます。
質問がうまく出来ていなかったため混乱させてしまったようで
申し訳ありませんでした!
No.3
- 回答日時:
'ChDir (ThisWorkbook.Path)
をコメントにし、以下の一行を実行してください。
Application.DefaultFilePath = ThisWorkbook.Path
No.2
- 回答日時:
別のところでも書きましたが、UNC名や別ドライブに対するchdirは機能しません。
APIを使用して切り替える方法も有りますが、
単にファイルを開きたいだけならカレントディレクトリを移動する必要は無いと思います。
ChDir (ThisWorkbook.Path)
FileName = Dir("*.xls")
↓
FileName = Dir(ThisWorkbook.Path & "\*.xls")
で良いのではないでしょうか?
この回答への補足
>FileName = Dir(ThisWorkbook.Path & "\*.xls")
このやり方も試したのですがエラーが出てしまいます。
実行時エラー1004「ファイル名およびファイルの保存場所が正しいかどうか確認して下さい」というようなエラーです。
ドライブ名も指定せずにファイルをどんなドライブに移動しても対応できるようにしたいのですが…。
No.1
- 回答日時:
>カレントフォルダをオプションで違うドライブに設定しているとうまく動作しないのですが
このマクロはアクティブなブックの保存先ディレクトリにある全てのブックを開く仕様になっていると思います。ですから上記の意味がよく理解できません。
「\\AAAA\BB」とありますが、今の仕様をネットワークドライブのフォルダにあるエクセルファイルを開くように変えたいということでしょうか? もしそうなら、
ChDir (ThisWorkbook.Path)はカレントディレクトリを変更する命令ですから、意味が分かれば簡単だと思います
ChDir ("\\AAAA\BB")
にすればリモートドライブを指定できます。またローカルディスクなら
ChDir ("D:\AAAA\BB")
のようにフルパスで指定すれば良いと思います。
質問の意味が正確に理解できていませんので、的はずれならご容赦ください。
この回答への補足
>「\\AAAA\BB」とありますが、今の仕様をネットワークドライブのフォルダにあるエクセルファイルを開くように変えたいということでしょうか?
ネットワークドライブ、ローカルディスク両方に対応したいということです。パスは特定でなく、マクロを実行するファイルを別のフォルダに移動したらその移動先のフォルダ内のファイルを開けるようにしたいということです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/06 13:01
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PDFが開けない!!!
-
ゲーミングPCなんですが起動す...
-
BATファイル内で、他のネットワ...
-
HDDのローカルディスク(E)が消...
-
iTunesでディスク作成できない!?
-
VBAのGetOpenFilenameについて
-
GドライブとFドライブが入れ替...
-
ネットワークドライブ割り当て...
-
ドライブの順番(DとE)を変え...
-
ネットワークドライブの割り当...
-
ショートカットエラーの直し方
-
緊急!外付けHDDのドライブが変...
-
ログインしない状態でネットワ...
-
DドライブがEドライブになって...
-
Windows2000起動時に仮想メモリ...
-
ネットワークドライブ 何が...
-
空のCD-Rを認識させる方法について
-
EドライブをCドライブに変更したい
-
ネットワークドライブの文字を...
-
PS4のエラーでSU-42118-6という...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ゲーミングPCなんですが起動す...
-
PDFが開けない!!!
-
BATファイル内で、他のネットワ...
-
DドライブがEドライブになって...
-
HDDのローカルディスク(E)が消...
-
突然Dドライブにアクセスできな...
-
ログインしない状態でネットワ...
-
OS(windowsXP)が入ってる状態か...
-
USBメモリのドライブレターを固...
-
Javaでなぜ共通ディスクは認識...
-
EドライブをCドライブに変更したい
-
iTunesでディスク作成できない!?
-
ネットワークドライブの割り当...
-
ショートカットエラーの直し方
-
ネットワークドライブ上ファイ...
-
複数のHDDを一つのドライブに
-
ダイナミックディスク変換でデ...
-
powershellネットワークドライ...
-
空のCD-RWを入れたとき”サポー...
-
ネットワークドライブ 何が...
おすすめ情報