アプリ版:「スタンプのみでお礼する」機能のリリースについて

このマクロを記述した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

パスの¥マークは階層をあらわすのだと思っていましたがいくつ重ねてもなぜ開くのでしょうか?非常に初歩的な質問だと思いますが、ご教示いただければ幸いです。

A 回答 (2件)

>パスの¥マークは階層をあらわす...


階層というより単なるセパレータ記号という認識のほうが良いような気もします。(ん?同じ事?)
このセパレータ記号について、Windows NT系以降、拡張されたと読んだ記憶があります。
OSによって少し差があるようですが。
例えばドライブ直下の場合
Workbooks.Open "C:\\シート001.xls"
これはwin2000では開きません。winXPでは開くのではないでしょうか。

下記サイトも参考にされると良いですよ。
『パス名の脆弱性を回避する』
http://www.officetanaka.net/other/extra/tips05.htm
    • good
    • 3
この回答へのお礼

さっそくありがとうございます。
参考URL拝見しました。

『パスの区切りである「¥」は複数続けてもエラーになりません。
「..」などの相対パスも指定できますし、そのとき存在しないパスが含まれていてもOKです。
パスの指定はWindowsが寛容に処理してくれています』

ということですか・・・・。
知りませんでした。

お礼日時:2009/05/19 15:57

試してみました。


WindowsXPのコマンドプロンプトでは、/と\は同様に扱われ、複数続けても認識します。
WindowsXPのエクスプローラでは、/と\は同様に扱われますが、複数続けると認識しません。
Windows2000のコマンドプロンプトでは、/はディレクトリ区切りとして扱われませんが、\を複数続けても認識します。
Windows2000はしかしエクスプローラでは/と\を同様に扱います。複数続けると認識しません。
「エクセルVBAでパスの¥マークについて」の回答画像2
    • good
    • 0
この回答へのお礼

コマンドプロンプトというのは使ったことがありませんが、OSによって違いがあるんですね。
ありがとうございました。

お礼日時:2009/05/20 15:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A