VBA. Как выбрать директорию на жестком диске, а при неоходимости создать ее.
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA. Как выбрать директорию на жестком диске, а при неоходимости создать ее.

VBA. Как выбрать директорию на жестком диске, а при неоходимости создать ее.

Ответ
Поиск в этой теме
Непрочитано 20.11.2011, 15:26 #1
VBA. Как выбрать директорию на жестком диске, а при неоходимости создать ее.
kozaki
 
конструктор (машиностроение)
 
Минск
Регистрация: 22.07.2010
Сообщений: 532

Помогите, пожалуйста.
Нужно на форму вставить кнопку для выбора пути к папке на диске, при отсутствии папки, нужно ее создать.
Это все нужно, для определения пути для сохранения моделей из макроса SolidWorks.
Используется VBA.

Может есть специальный, контрол, только я не знаю какой
__________________
Значки Минск http://forum.dwg.ru/showthread.php?p...=1#post1110790
Просмотров: 4634
 
Непрочитано 20.11.2011, 20:34
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406


Я бы искал информацию по WScript.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.11.2011, 21:45
#3
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


На Win7 или WindowsXP можно вызвать окно диалога так:
Код:
[Выделить все]
Option Explicit
'Добавить ссылки на:
' -->  Tools  -->  Refereces  -->  Microsft Shell Controls And Automation
' -->  Tools  -->  Refereces  -->  Windows Script Host Object Model

Private Function browseForFolderF(sMsg As String, fPath As String) As String
' based on idea by Joe Earnest
Dim oShell As Shell
Dim wscript As WshShell

Set oShell = New Shell

Dim sfolder As String
Dim iColon As String
Dim fErr As Boolean
On Error Resume Next
    Dim oBFF

    Set oBFF = oShell.BrowseForFolder(0, sMsg, 17, fPath)
    If Err Then Err.Clear: wscript.Quit
On Error GoTo 0

If Not IsObject(oBFF) Then wscript.Quit
If Not (LCase(Left(Trim(TypeName(oBFF)), 6)) = "folder") Then wscript.Quit

'WinXP+ only   (Win2k ?)
'MsgBox oBFF.self.Path
'for any version of Windows in place of the above line
On Error Resume Next
    sfolder = oBFF.parentFolder.ParseName(oBFF.Title).Path
    fErr = CBool(Err)
On Error GoTo 0
If fErr Then
    sfolder = oBFF.Title
    iColon = InStr(sfolder, ":")
    If (iColon < 2) Then wscript.Quit
    sfolder = UCase(Mid(sfolder, iColon - 1, 2)) & "\"
End If
If StrComp(Right(sfolder, 1), "\", vbTextCompare) <> 0 Then
sfolder = sfolder & "\"
End If
browseForFolderF = sfolder
End Function


Sub test()
Dim fd As String
fd = browseForFolderF("Select a Folder", "C:\Test")
MsgBox fd
End Sub
Если без окна диалога можно по-другому:
Код:
[Выделить все]
Option Explicit
'Добавить ссылку на:
''-->  Tools  -->  Refereces  -->  Microsoft Scripting Runtime
Sub MkFolder()
Dim strFolder As String

Dim objFSO, objFolder

strFolder = InputBox("Enter folder name to create: ", "Create Folder", "c:\TestFolder")

On Error GoTo Err_Control

Set objFSO = CreateObject("Scripting.FileSystemObject")

If Not objFSO.FolderExists(strFolder) Then
 Set objFolder = objFSO.CreateFolder(strFolder)
Else
MsgBox "Folder already exists"
GoTo exit_Here
End If

If Not objFSO.FolderExists(strFolder) Then

MsgBox "Problem creating a folder..."

End If

exit_Here:
Set objFSO = Nothing
Exit Sub

Err_Control:
If Err.Number <> 0 Then
MsgBox "Error occurs: " & Err.Description
Err.Clear
Resume exit_Here
End If

End Sub
Олег (jr.) вне форума  
 
Непрочитано 21.11.2011, 00:31
#4
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


в функции BrowseForFolder по идее должна быть опция, показывающая в диалоге кнопку Создать папку, по крайней мере эта опция есть во всех архиваторах и инсталяторах
gomer вне форума  
 
Непрочитано 21.11.2011, 00:31
#5
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406


Милости просим в MSDN
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.11.2011, 01:17
#6
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811



запусти первый макрос и посмотри есть там кнопка "Создать папку" или нет
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 21.11.2011, 02:20
#7
kozaki

конструктор (машиностроение)
 
Регистрация: 22.07.2010
Минск
Сообщений: 532
<phrase 1=


Цитата:
Сообщение от Олег (jr.) Посмотреть сообщение
запусти первый макрос и посмотри есть там кнопка "Создать папку" или нет
запускал первый, кнопка есть. но макрос не отработал до конца. может я что-то не так делал. Еще завтра на свежую голову посмотрю
__________________
Значки Минск http://forum.dwg.ru/showthread.php?p...=1#post1110790
kozaki вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA. Как выбрать директорию на жестком диске, а при неоходимости создать ее.



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в VBA создать массив из вводимых данных в TextBox Ubivec81 Программирование 50 29.04.2011 22:59
как с помощью vba создать несколько цифр и вставить их в чертёж... vasyavip Программирование 1 02.04.2009 23:05
Выбрать полилиниюи считать ее гиперсылку на VBA gizmo_zx Программирование 1 15.12.2008 23:56