Excel VBA質問箱 IV

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

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


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

【26401】ファイル名の禁則文字エラーについて まめ 05/7/4(月) 15:09 質問[未読]
【26402】Re:ファイル名の禁則文字エラーについて IROC 05/7/4(月) 15:29 回答[未読]
【26407】Re:ファイル名の禁則文字エラーについて まめ 05/7/4(月) 16:10 質問[未読]
【26418】Re:ファイル名の禁則文字エラーについて IROC 05/7/5(火) 10:57 回答[未読]
【26419】Re:ファイル名の禁則文字エラーについて 小僧 05/7/5(火) 11:10 回答[未読]

【26401】ファイル名の禁則文字エラーについて
質問  まめ  - 05/7/4(月) 15:09 -

引用なし
パスワード
   ファイル名を付けるInputBoxを表示しています。
入力されたファイル名に禁則文字があった場合には、エラーが出てしまいます。
禁則文字があった場合には、再度InputBoxを表示させて処理をしたいのですが、
うまくいきません。

教えて下さい。よろしくお願い致します。

【26402】Re:ファイル名の禁則文字エラーについて
回答  IROC  - 05/7/4(月) 15:29 -

引用なし
パスワード
   エラー処理で対応できます。


Dim f As String

ReStart:
  f = Application.InputBox("ファイル名入力", Type:=2)
    
  If f = "False" Then Exit Sub
    
  On Error Resume Next
  ThisWorkbook.SaveAs "c:\" & f & ".xls"
  
  If Err.Number <> 0 Then
    MsgBox "ファイル名が不正", vbExclamation, "エラー"
    GoTo ReStart
  End If
  On Error Goto 0
  
  MsgBox "OK"

【26407】Re:ファイル名の禁則文字エラーについて
質問  まめ  - 05/7/4(月) 16:10 -

引用なし
パスワード
   返信ありがとうございます。

エラーが出た場合に、エラー処理を行うというのではなく
「禁則文字があるのでファイル名を付け直す」という内容を
明確にして処理を行いたいのです。
エラーが出る可能性としては、保存先にファイル名が
重複してしまう場合なども考えられるので、その場合は
別にエラー処理をしています。

いい方法があれば、教えて下さい。
よろしくお願い致します。

【26418】Re:ファイル名の禁則文字エラーについて
回答  IROC  - 05/7/5(火) 10:57 -

引用なし
パスワード
   Dir関数などでファイルの有無やパスの指定の良否を判定した後であれば、
問題点はファイル名だけと断定できないでしょうか?
それともすべて不正文字について、
Instr関数で有無をチェックするしたほうがよいのでしょうか・・?

【26419】Re:ファイル名の禁則文字エラーについて
回答  小僧  - 05/7/5(火) 11:10 -

引用なし
パスワード
   ▼まめ さん、IROC さん:
こんにちは。

>それともすべて不正文字について、
>Instr関数で有無をチェックするしたほうがよいのでしょうか・・?

禁則文字を配列に持たせてチェックしてみました。

Sub 禁則()
Dim strInp As String
Dim Kinsoku() As Variant
Dim S As Variant

  Kinsoku = Array("\", "/", ":", "?", """", "<", ">", "|")
  strInp = Application.InputBox("ファイル名入力")

  For Each S In Kinsoku
    If InStr(1, strInp, S) <> 0 Then
      MsgBox "禁則文字あり"
      Exit Sub
    End If
  Next
End Sub

基本的には IROC さんの仰られている通りだと思われるのですが、
どうしても先に禁則文字をチェックしたいという場合もあるかな?と
思いまして作ってみました。

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