質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

Q&A

解決済

1回答

3155閲覧

実行時エラー”76” パスが見つかりません。

pichipichi1

総合スコア1

VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

0グッド

0クリップ

投稿2021/10/28 08:41

前提・実現したいこと

Visual Basic 6.0を使用しています。
やりたいことは下記二点です。

①「読込みファイル」に指定されたファイルを読込む。
②「ファイル内容」のリストボックスに、ファイルから読み込んだ内容を出力する。

エラーの修正ができず困っています。
パスは指定できているはずなんですが、
何がいけないのでしょうか。

初心者かつ、曖昧な表現ですみません。

発生している問題・エラーメッセージ

実行時エラー”76” パスが見つかりません。 Open strFileName For Input As #iFileNumber

該当のソースコード

VB6

1Private Sub cmdRead_Click() 2 3 Dim iFileNumber As Integer 4 iFileNumber = FileSystem.FreeFile() 5 6 Dim cFso As FileSystemObject 7 Set cFso = New FileSystemObject 8 9 10 ' ファイルパスからファイル名を取得する 11 Dim stFileName As String 12 stFileName = cFso.GetFileName("c:\tmp\read.txt") 13 14 ' 不要になった時点で参照を解放する (Terminate イベントを早めに起こす) 15 Set cFso = Nothing 16 17 ' ファイル名を表示する 18 Call MsgBox(stFileName) 19 20 21 ' ファイルを開く 22 strFileName = "c:\tmp\read.txt" 23 24 ' ファイルオープン 25 intNo = FreeFile() 26 Open strFileName For Input As #iFileNumber 27 28 Dim stResult As String 29 30 ' ファイルを 1 行ずつ読み込む 31 Do While (Not FileSystem.EOF(iFileNumber)) 32 33 Dim stBuffer As String 34 Line Input #iFileNumber, stBuffer 35 stResult = stResult & stBuffer & vbNewLine 36 MsgBox stBuffer 37 ListBox1.AddItem stBuffer, stResult 38 Loop 39 40 Close #iFileNumber 41 Call MsgBox(stResult) 42 43 44 45End Sub 46

試したこと

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YAmaGNZ

2021/10/28 10:26

C:\tmpってフォルダがありますか? C:\tmp\read.txtってファイルがありますか?
pichipichi1

2021/10/28 16:28

YAmaGNZさん コメントありがとうございます。 ご質問の回答ですが、 フォルダ、ファイルともにあります!
guest

回答1

0

ベストアンサー

実際に提示されたコードを実行しましたが、ファイルやフォルダが正しく存在した場合エラーは出ませんでした。
指定しているフォルダがない場合(今回の場合は「c:\tmp」)に「パスが見つかりません」のエラーとなります。
フォルダは存在するがファイルがない場合は「ファイルが見つかりません」となります。

下記ソースは全体の存在のチェックしかしていませんが、

VB6

1 2 ' ファイルを開く 3 strFileName = "c:\tmp\read.txt" 4 5 ' ファイルが存在しているかどうか確認する 6 If Dir(strFileName) = "" Then 7 Call MsgBox("ファイルは存在しません") 8 End If 9 10 ' ファイルオープン 11 intNo = FreeFile() 12

としてみたらどうなりますか?

投稿2021/10/28 22:23

YAmaGNZ

総合スコア10294

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pichipichi1

2021/10/29 08:28

ファイルが存在しているかを確認するため、コードを記述いたしました。 結果は、「ファイルが存在しません。」となりました。 再度、C:\tmpってフォルダが存在しているか、C:\tmp\read.txtってファイルがあるかの二点を確認しましたが、両方存在しているんですが、、。 エラーで表示されてしまっている以上、ファイルが存在しないということなので、 もう一度最初から確認致します。
YAmaGNZ

2021/10/29 08:39 編集

例えばtmpが全角だったり、tempだったりと微妙に違ったりしませんかね? 実際に存在するフォルダをエクスプローラで開いて、アドレスバーの部分のパスをソースにコピペしてみてはどうなりますかね?
pichipichi1

2021/11/04 06:40

大変返答が遅くなってしまい申し訳ありません。 全角や半角、存在数ファイルパスをコピぺしたりと確認しましたが、やはりエラーが出てしまいました。 ファイルの読込みはできているらしく、ファイル名を画面のテキストボックスに入力されたファイルパスを指定するといいとアドバイスをいただきました。 ただ、VBAと混ざってしまいVB6での書き方がわかりません。どこを直せばいいのでしょうか。
YAmaGNZ

2021/11/04 06:53

「ファイルの読込みはできているらしく」とありますがどういう事象を確認して読込ができていると判断されたのでしょうか? 質問で書かれているのはファイルを読み込む前の Open strFileName For Input As #iFileNumber で「実行時エラー”76” パスが見つかりません。」というエラーが発生しているということですのでファイルの読込処理まで到達していません。 今一度ステップ実行などして動作や変数の中身を確認してみてはどうでしょうか?
pichipichi1

2021/11/04 09:01

YAmaGNZさんのおっしゃる通り憶測の判断です。 一度初めから全て確認致します!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問