- ベストアンサー
エクセルVBAでパスの¥マークについて
このマクロを記述したBOOKと同じフォルダー内にある、シート001.xls を開くマクロです。 同一フォルダーにあるのですから、このような記述になると思います。 Sub kakunin1() Workbooks.Open (ThisWorkbook.Path & "\" & "シート001.xls") End Sub しかし、以下の3つはすべてシート001.xls を開くことができました。 Sub kakunin2() Workbooks.Open (ThisWorkbook.Path & "\" & "\" & "シート001.xls") End Sub Sub kakunin3() Workbooks.Open (ThisWorkbook.Path & "\" & "\" & "\" & "シート001.xls") End Sub Sub kakunin4() Workbooks.Open (ThisWorkbook.Path & "\" & "\" & "\" & "\" & "\" & "\" & "シート001.xls") End Sub パスの¥マークは階層をあらわすのだと思っていましたがいくつ重ねてもなぜ開くのでしょうか?非常に初歩的な質問だと思いますが、ご教示いただければ幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>パスの¥マークは階層をあらわす... 階層というより単なるセパレータ記号という認識のほうが良いような気もします。(ん?同じ事?) このセパレータ記号について、Windows NT系以降、拡張されたと読んだ記憶があります。 OSによって少し差があるようですが。 例えばドライブ直下の場合 Workbooks.Open "C:\\シート001.xls" これはwin2000では開きません。winXPでは開くのではないでしょうか。 下記サイトも参考にされると良いですよ。 『パス名の脆弱性を回避する』 http://www.officetanaka.net/other/extra/tips05.htm
その他の回答 (1)
- SortaNerd
- ベストアンサー率43% (1185/2748)
お礼
さっそくありがとうございます。 参考URL拝見しました。 『パスの区切りである「¥」は複数続けてもエラーになりません。 「..」などの相対パスも指定できますし、そのとき存在しないパスが含まれていてもOKです。 パスの指定はWindowsが寛容に処理してくれています』 ということですか・・・・。 知りませんでした。