Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


62038 / 76732 ←次へ | 前へ→

【19304】Re:固定長のテキストをスマートに切りだしながら取り込みたい
回答  Hirofumi  - 04/10/27(水) 20:57 -

引用なし
パスワード
   >なりました、なりました、バッチリです。
>で、欲が出てきたとたん、いきなり壁に激突です、助けて下さい。
>というのは、読み込むファイル名が固定なので、せっかく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 に変えました。
は、する必要が有りません

2 hits

【19205】固定長のテキストをスマートに切りだしながら取り込みたい ackkn 04/10/25(月) 16:01 質問
【19207】Re:固定長のテキストをスマートに切りだし... Kein 04/10/25(月) 16:34 回答
【19210】Re:固定長のテキストをスマートに切りだし... ackkn 04/10/25(月) 17:19 発言
【19209】Re:固定長のテキストをスマートに切りだし... Jaka 04/10/25(月) 17:04 回答
【19211】Re:固定長のテキストをスマートに切りだし... ackkn 04/10/25(月) 17:29 発言
【19212】Re:固定長のテキストをスマートに切りだし... Jaka 04/10/25(月) 17:41 回答
【19214】Re:固定長のテキストをスマートに切りだし... ackkn 04/10/25(月) 19:14 質問
【19215】Re:固定長のテキストをスマートに切りだし... ackkn 04/10/25(月) 20:12 質問
【19230】Re:固定長のテキストをスマートに切りだし... Jaka 04/10/26(火) 9:43 回答
【19233】Re:固定長のテキストをスマートに切りだし... ackkn 04/10/26(火) 12:06 発言
【19256】Re:固定長のテキストをスマートに切りだし... Jaka 04/10/26(火) 16:54 発言
【19282】Re:固定長のテキストをスマートに切りだし... ackkn 04/10/27(水) 12:08 質問
【19283】Re:固定長のテキストをスマートに切りだし... Jaka 04/10/27(水) 12:37 発言
【19303】Re:固定長のテキストをスマートに切りだし... ackkn 04/10/27(水) 20:11 お礼
【19216】Re:固定長のテキストをスマートに切りだし... Hirofumi 04/10/25(月) 20:18 回答
【19223】Re:固定長のテキストをスマートに切りだし... ackkn 04/10/25(月) 22:50 発言
【19270】Re:固定長のテキストをスマートに切りだし... ackkn 04/10/27(水) 9:48 質問
【19304】Re:固定長のテキストをスマートに切りだし... Hirofumi 04/10/27(水) 20:57 回答
【19434】Re:固定長のテキストをスマートに切りだし... ackkn 04/11/2(火) 18:35 お礼

62038 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free