プロが教える店舗&オフィスのセキュリティ対策術

下記のマクロを記述を記載していますが
Open path + finame For Input As #1→でファイルがありませんという
エラーがでます。c:\aa着色加工計画\testにファイル(T_Sort.csv)はあるみたいなのですが
教えてください。何が原因でしょうか



Sub Do_shukei()
Dim 処方(1) As String, 品名(1) As String
Dim 倉庫(1) As String
Dim tuki(15) As String, sort(1) As String, st As Integer
Dim sihan(8) As Long, zaiko As Long, suryo(15) As Long
Dim ryo(6) As Long, a As Integer, i As Integer
Dim path As String, finame As String, foname As String
st = 1
a = 1
For i = 1 To 15
suryo(i) = 0
Next i
path = "c:\aa着色加工計画\test"
finame = "T_Sort.csv"
foname = "T_shukei.csv"
Open path + foname For Output As #2
Open path + finame For Input As #1
Do Until EOF(1) = True
If a = 1 Then
Input #1, sort(0), 倉庫(0), 処方(0), 品名(0), tuki(1), tuki(2), tuki(3), tuki(4), tuki(5), tuki(6), tuki(7), tuki(8), tuki(9), tuki(10), tuki(11), tuki(12), tuki(13), tuki(14), tuki(15)
Write #2, sort(0), 倉庫(0), 処方(0), 品名(0), tuki(1), tuki(2), tuki(3), tuki(4), tuki(5), tuki(6), tuki(7), tuki(8), tuki(9), tuki(10), tuki(11), tuki(12), tuki(13), tuki(14), tuki(15)
a = 0
GoTo l
下記省略

A 回答 (2件)

path = "c:\aa着色加工計画\test"


はフォルダですよね。

Open path & "\" & foname For Output As #2
Open path & "\" & finame For Input As #1

foname も変な指定になっているはずです。
    • good
    • 0

こんにちは。

maruru01です。
原因はNo.1の方の通りなので、ちょっと付け足しですが。
フォルダ名は、今回のように直接パスを書く場合以外にも、関数などで取得する場合もあります。
その場合、取得するフォルダ名はドライブ名(c:\)のように末尾に"\"が付く場合と、付かない場合があります。そこで下記のような処理を常にすると、今回のようなエラーは出なくなります。

If Right(path, 1) <> "\" Then
  path = path & "\"
End If

では。
    • good
    • 0

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