Тема: Как открыть множество чертежей?

Имеется текстовый файл с адресами акадовских файлов.
Как посредством VBA открыть эти чертежи?

Re: Как открыть множество чертежей?

Запиши в файл, например, 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

Re: Как открыть множество чертежей?

Спасибо, Alexander! Ты мне очень здорово помог.
Но попутно возникают вопросы типа "А как сделать так, чтобы если уже открыты эти чертежи, не открывать их второй раз, т.к. они открываются только для чтения?".
Насколько я понимаю, данный код лежит далеко за пределами help'а. Где можно почитать про эти и другие функции VBA?

Re: Как открыть множество чертежей?

> Maks
>... А как сделать так, чтобы если уже открыты эти чертежи, не
> открывать их второй раз, т.к. они открываются только для
>чтения?...
- Надо просмотреть все уже открытые документы и ... :)
>Насколько я понимаю, данный код лежит далеко за
>пределами help'а. Где можно почитать про эти и другие
>функции VBA?
- Изучай Win API