|
▼kazu さん:
>こんな感じでどうでしょうか?
>
>
>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
kazu さん 返信ありがとうございます。やはり無理でした。なぜ無理なのか考えてみたところもしかすると、バージョンの問題ではないか?という結論に達しました。
ちなみにWin98でExcel2000を使用。
しかし考え方のヒントにはなりました。ありがとうございます。
|
|