こんにちは。
標題の通りです。
現在、エクセルのVBAを使用してちょっとしたものを作成しているのですが、
相対パスを使用して他のファイル(DATファイル)を読みこませようとしています。
しかし、どうにもうまくいかなかったのです。
最初は問題なく読み込めていましたが、あるとき突然パスが見つかりませんとの
エラーメッセージが出るようになりました。
結局、開いているブックの絶対パスを取得するという方法にして思っている結果
は得られることができましたが、どうにも不思議なので質問しました。
コードは以下のように記述していました。
Open "..\ディレクトリ\ファイル.dat" For Input As #1
上記ではだめなのでしょうか?
VBでは問題なかったような気がします。
No.1ベストアンサー
- 回答日時:
相対指定はカレントフォルダから始まります。
デフォルトでは「C:\My Documents」になってるはずですが。
「ツール」→「オプション」
「全般」タブ
カレントフォルダ名
で、指定します。
ありがとうございます。
カレントフォルダが指定されていたのですか。
今確認しました。
でも普通はデフォルトのカレントフォルダなんて指定されてませんよね?
エクセルだけなのでしょうか?
ということは今作っているブックだけをファイルサーバ上に置いて共有しよう
と思っていたのですが、エクセル自体でカレントフォルダが指定されているの
では普通に相対パスを切ってもだめですね。
結局ActiveWorkbook.pathでブック自体の絶対パスを取得する方法にしています。
No.3
- 回答日時:
こんにちは。
そのマクロを含むブックのパスなら、単純に下記で取れますが、、、(但し、一度でも保存済みならばです。)
そんなに単純じゃないかな?
Sub Test1()
MsgBox ThisWorkbook.Path
MsgBox ThisWorkbook.FullName
MsgBox Dir(ThisWorkbook.FullName)
End Sub
No.2
- 回答日時:
ファイルを掴まえる点に関して、下記を検討して役立てられませんか。
小生最近調べたもので。感じるものがなければ、忘れてください。
(1)Dirの利用
Sub test01()
On Error GoTo p02
Worksheets("sheet1").Activate
i = 1
MsgBox Dir("c:\My Documents\")
p01:
Cells(i, 1) = Dir()
i = i + 1
GoTo p01
p02:
MsgBox "終わり"
End Sub
(2)CommonDialogのShowOpen
の利用
(3)GetOpenFilenameの利用
Sub test02()
Dim objXL, temp, opFilter, opTitle
opFilter = "データベース,*.mdb,テキスト,*.txt, 全て,*.*"
opTitle = "タイトル"
Set objXL = CreateObject("Excel.Application")
temp = objXL.GetOpenFilename(opFilter, , opTitle)
objXL.Quit
If temp <> False Then Path1 = temp
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Android VBA、フォルダのパスに環境文字 ㉑ があり、VBAが機能しません。 2 2022/07/27 09:16
- HTML・CSS Dreamweaver のテンプレートでの相対パスの設定について 2 2023/06/13 17:28
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- その他(プログラミング・Web制作) 図に示す階層構造で,現在のディレクトリ(カレントディレクトリという)が*印のディレクトリであるとき, 2 2022/11/16 10:55
- Visual Basic(VBA) VBSで作成した相対パスのショートカットが他者と共有できません。 1 2022/09/05 11:20
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- その他(プログラミング・Web制作) IT初心者です 仕事で、vb.netで作成されたdllをvbaで呼び出すプログラムを作成しろと言われ 1 2023/03/27 08:22
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
EXcelのマクロで相対パスでファイルを開く
その他(Microsoft Office)
-
相対パスが使えない
Visual Basic(VBA)
-
vba dir の相対パス
Visual Basic(VBA)
-
-
4
会社のネットワーク上のファイルを開けない こんにちわ 今大変困ってます 会社のネットワーク上のファイ
Visual Basic(VBA)
-
5
ExcelVBAでカレントディレクトリのファイルを開く方法は?
Excel(エクセル)
-
6
【Excel VBA】ネットワーク上の共有フォルダにあるExcelを開く
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
どんなプログラムを書いても指...
-
マイクラでPythonのプログラミ...
-
FTPでputすると空ファイルが出...
-
windows.hがincludeされない
-
絶対パスの絶対て英語で何でし...
-
フルパスから最後のディレクト...
-
ネットワーク上のコンピュータ...
-
C#でカレントディレクトリの取...
-
[asp/vbs]FileExistsのパスの指...
-
ExcelVBAでカレントディレクト...
-
「UNCパスはサポートされません...
-
エクセルVBAで相対パスでファイ...
-
GetPrivateProfileStringでini...
-
fopenで別ディレクトリにファイ...
-
C言語からC++の関数をコールす...
-
AfxLoadLibrary関数で、DLLのハ...
-
Windowsファイルパスはスラッシ...
-
ファイルやディレクトリの存在...
-
[VC]VCのデバッグ実行で落ちる...
-
Ubuntu テキストファイルをどこ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
どんなプログラムを書いても指...
-
フルパスから最後のディレクト...
-
FTPでputすると空ファイルが出...
-
windows.hがincludeされない
-
ExcelVBAでカレントディレクト...
-
「UNCパスはサポートされません...
-
マイクラでPythonのプログラミ...
-
C言語を用いたファイルの一括削...
-
fopenで別ディレクトリにファイ...
-
GetPrivateProfileStringでini...
-
ファイルやディレクトリの存在...
-
ネットワーク上のコンピュータ...
-
ExcelVBA サーバーの(共有フォ...
-
エクセルVBAで相対パスでファイ...
-
pythonでの日本語操作
-
VBAで自身のファイル名を取得す...
-
webアプリケーションでの画像フ...
-
絶対パスの絶対て英語で何でし...
-
ファイルダイアログのカレント...
-
圧縮(Zip)について
おすすめ情報