Тема: Как открыть множество чертежей?
Имеется текстовый файл с адресами акадовских файлов.
Как посредством VBA открыть эти чертежи?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Как открыть множество чертежей?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Имеется текстовый файл с адресами акадовских файлов.
Как посредством VBA открыть эти чертежи?
Запиши в файл, например, C:\dwg.txt полные пути к файлам (разделитель ? символ абзаца) и запусти этот код:
Option Explicit
Public Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, ByVal lpOverlapped As Long) As Long
Public Sub OpenDwg() Dim hFile As Long, dwNumberOfBytesRead As Long Dim strTxtFile As String Dim strDwgFileName As String Dim char As Long strTxtFile = "C:\dwg.txt" hFile = CreateFile(strTxtFile, &H80000000, &H3, 0, 3, &H80, 0) If hFile <> -1 Then strDwgFileName = "" Do char = 0 ReadFile hFile, char, 1, dwNumberOfBytesRead, 0 If dwNumberOfBytesRead = 1 Then If char = 13 Then Application.Documents.Open strDwgFileName MsgBox strDwgFileName strDwgFileName = "" End If If char <> 13 And char <> 10 Then strDwgFileName = strDwgFileName + String(1, char) End If End If Loop While dwNumberOfBytesRead = 1 CloseHandle hFile End If End Sub
Спасибо, Alexander! Ты мне очень здорово помог.
Но попутно возникают вопросы типа "А как сделать так, чтобы если уже открыты эти чертежи, не открывать их второй раз, т.к. они открываются только для чтения?".
Насколько я понимаю, данный код лежит далеко за пределами help'а. Где можно почитать про эти и другие функции VBA?
> Maks
>... А как сделать так, чтобы если уже открыты эти чертежи, не
> открывать их второй раз, т.к. они открываются только для
>чтения?...
- Надо просмотреть все уже открытые документы и ... :)
>Насколько я понимаю, данный код лежит далеко за
>пределами help'а. Где можно почитать про эти и другие
>функции VBA?
- Изучай Win API
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Как открыть множество чертежей?
Форум работает на PunBB, при поддержке Informer Technologies, Inc