|
こんな感じでどうでしょうか?
On Error GoTo errmsg
Dim Obj As Object
Dim myDir As String
Dim S As String
AryNoUse = Array("\", "/", ":", ",", ";", "*", "Print", """", "<", ">", "|")
Set Obj = CreateObject("Shell.Application"). _
BrowseForFolder(0, "保存したいフォルダを選択して「OK」ボタンをクリックして下さい。", 0)
If Obj Is Nothing Then Exit Sub
myDir = Obj.Self.Path
If Obj.Title = "マイ コンピュータ" Then
MsgBox "マイコンピュータは選択しないで下さい。", vbExclamation
Exit Sub
End If
UserForm1.Show
errmsg:
'-------------------------------------------------------------------------
Fnm = UserForm1.TextBox1.Value
If Fnm = "" Then
MsgBox "ファイル名が指定されていません。"
Exit Sub
End If
For Each Chk In AryNoUse
If InStr(1, Fnm, Chk) <> 0 Then
MsgBox "ファイル名に不適切な文字が含まれています。" & vbCrLf & "処理を中止します。", vbExclamation
Exit Sub
End If
Next
Application.DisplayAlerts = False
S = myDir & "\" & Fnm & ".xls"
If Dir(S) <> "" Then
If MsgBox("既に存在します。上書きしますか", vbQuestion + vbYesNoCancel) = vbYes Then
Kill S
Else
MsgBox "Noが選択されたので処理を中止します。"
Exit Sub
End If
Else
ActiveWorkbook.SaveAs myDir & "\" & UserForm1.TextBox1.Value & ".xls"
Application.DisplayAlerts = True
Application.Quit
End If
|
|