Excel VBA質問箱 IV

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

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


10195 / 13644 ツリー ←次へ | 前へ→

【23201】On error構文で 05/3/16(水) 8:48 質問[未読]
【23202】Re:On error構文で kazu 05/3/16(水) 8:59 発言[未読]
【23204】Re:On error構文で 05/3/16(水) 9:12 お礼[未読]

【23201】On error構文で
質問   E-MAIL  - 05/3/16(水) 8:48 -

引用なし
パスワード
   以下のような形でU.Range(”B3”)というフォルダがだめだったらTodayという名前のフォルダを読みに行くようにしたいのですがデバッグしてしまいます。
識者の方、どうしたらよいのかご教授ください。よろしくお願いします。

P = "V:\" & U.Range("B3") & "\UNAUTH.DAT"
On Error GoTo TODAYFOLDER
Workbooks.OpenText P, STARTROW:=2, _
DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, OtherChar:=""
ActiveWorkbook.ActiveSheet.Range("A:A").Font.Name = "COURIER NEW"
ActiveWorkbook.ActiveSheet.Range("A:A").Copy
U.Range("A1").PasteSpecial xlValues
ActiveWorkbook.Close
TODAYFOLDER:

P = "V:\TODAY\UNAUTH.DAT"

Workbooks.OpenText P, STARTROW:=2, _
DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, OtherChar:=""
ActiveWorkbook.ActiveSheet.Range("A:A").Font.Name = "COURIER NEW"
ActiveWorkbook.ActiveSheet.Range("A:A").Copy
U.Range("A1").PasteSpecial xlValue

【23202】Re:On error構文で
発言  kazu  - 05/3/16(水) 8:59 -

引用なし
パスワード
   ▼う さん:

おはようございます。

On Errorを使うよりもファイルが存在するか否かを確認して
ファイルが無ければTodayフォルダをパスに割り当てた方がスマートかと思います。

P = "V:\" & U.Range("B3") & "\UNAUTH.DAT"
On Error GoTo TODAYFOLDER
Workbooks.OpenText P, STARTROW:=2, _
DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, OtherChar:=""



P = "V:\" & U.Range("B3") & "\UNAUTH.DAT"
If Dir("V:\" & U.Range("B3") & "\UNAUTH.DAT") = "" Then
  P = "V:\" & FldNm & "\UNAUTH.DAT"
End If
Workbooks.OpenText P, STARTROW:=2, _
DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, OtherChar:=""


又、
On Error GoTo TODAYFOLDER はTODAYFOLDER という行ラベルにジャンプする
という意味なので、TODAYFOLDER という行ラベルが無いとエラーになってしまいますよ。

On Errorで書きたいならこんな感じでいいのでは・・・。と思います。

On Error Resume Next
P = "V:\" & U.Range("B3") & "\UNAUTH.DAT"

Workbooks.OpenText P, STARTROW:=2, _
DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, OtherChar:=""

If Err Then
  P = "V:\" & FldNm & "\UNAUTH.DAT"
  Workbooks.OpenText P, STARTROW:=2, _
  DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
  Semicolon:=False, Comma:=False, Space:=False, Other:=False, OtherChar:=""
  On Error GoTo 0
  Err.Clear
End If

【23204】Re:On error構文で
お礼   E-MAIL  - 05/3/16(水) 9:12 -

引用なし
パスワード
   ▼kazu さん:
さっそくのご返信ありがとうございます!
見事にできました。本当に助かりました。

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