|
>なりました、なりました、バッチリです。
>で、欲が出てきたとたん、いきなり壁に激突です、助けて下さい。
>というのは、読み込むファイル名が固定なので、せっかくGetReadFile関数でファイル名を取得するので、そこで指定できればと>思い下記の変更をしましたら、Dir関数の行で'52'(ファイル名または番号が不正です)の実行時エラーが出ます。
>Help等で調べたのですが、原因が判りません。
>
> 'ディフォルトのファイル名を指定
> vntFileName = "SinBHKaku*.txt" ←ここと
> If Not GetReadFile(vntFileName, ThisWorkbook.Path, False) Then
> Exit Sub
> End If
> 'Openするファイル名を設定
> 'vntFileName = ThisWorkbook.Path & "\" & "Test.txt"
> vntFileName = ThisWorkbook.Path & "\" & vntFileName ←ここ
> If Dir(vntFileName) = "" Then ←ここでエラーが出ます。
> Beep
> MsgBox vntFileName & vbCrLf & "ファイルが有りません"
> Exit Sub
> End If
>
> それと、Function GetReadFile(vntFileNames As Variant, _
> Optional strFilePath As String, _
> Optional blnMultiSel As Boolean _
> = False) As Boolean
> 内の vntFileNames 全てを vntFileName に変えました。
>何が悪かったのでしょうか?
>よろしくお願いします。m(_ _)m
本来、「ディフォルトのファイル名を指定」以下の部分と
「Openするファイル名を設定」の部分は別物で、
「Openするファイル名を設定」の部分をコメントアウトして出して有ったはずですが?
理由は、「ファイルを開くダイアログ」を表示した場合は、
既存のファイルを開くので、ファイルの存在確認の必要が無いので、
通常はDirで確認する必要が無いと思います
また、「Openするファイル名を設定」以下の部分は、
ファイル名が常に固定でマクロを実行すれば、
直ぐにそのファイルを読み込み始める場合に使います
この場合、固定されたファイルが無い場合が有るのでDirで確認を取っています
因って、「Openするファイル名を設定」以下を生かす場合は、
「ディフォルトのファイル名を指定」以下の部分を、コメントアウトします
ただ、「ファイルを開くダイアログ」で、
存在しないファイルを指定する可能性が有る場合(出来たかな?)は、
「If Dir(vntFileName) = "" Then」を活かしても問題はあ、有りません
しかし、この場合、
> vntFileName = ThisWorkbook.Path & "\" & vntFileName ←ここ
とすると、vntFileNameに、Pathが2重に入って来るのでエラーに成ると思います
もし、こう言う使い方をするなら以下の様にします
'ディフォルトのファイル名を指定
vntFileName = "SinBHKaku*.txt" '←ここと
If Not GetReadFile(vntFileName, ThisWorkbook.Path, False) Then
Exit Sub
End If
' 'Openするファイル名を設定 '★要らない
' 'vntFileName = ThisWorkbook.Path & "\" & "Test.txt" '★要らない
' vntFileName = ThisWorkbook.Path & "\" & vntFileName '←ここ ★要らない
If Dir(vntFileName) = "" Then '←ここでエラーが出ます。
Beep
MsgBox vntFileName & vbCrLf & "ファイルが有りません"
Exit Sub
End If
尚、
> それと、Function GetReadFile(vntFileNames As Variant, _
> Optional strFilePath As String, _
> Optional blnMultiSel As Boolean _
> = False) As Boolean
> 内の vntFileNames 全てを vntFileName に変えました。
は、する必要が有りません
|
|