Тема: Изменение текстовой информации углового штампа через диалоговое окно VB.

Здравствуйте,
у меня вот такая задача.
У меня есть dwg файл с заполненным угловым штампом (штамп состоит из примитивов), а мне надо создать апликацию через диалоговое окно, заполняя поля которого я бы смог менять текстовую инфомацию углового штампа. То есть я открываю exe файлик, передо мной появляется диалоговое окно с графами: "Название проекта", "начальник проекта", "номер аттестата", "дата" и т. д. Я заполняю эти графы, нажимаю кнопку сгенерировать шаблон и у меня в определенной директории появляется dwg файл с соответственно заполненным угловым штампом. Можно диалоговое окно создать и как макрос в среде Autocad, если реализация exe файла гораздо сложнее (сам я не знаю).
Сам я начинающий програмист и это у меня, можно сказать, первая серьезная встреча с программированием, поэтому дело у меня идет туго. Вот и хотелось бы услышать мнение специалистов о решении этой задачи, их предложения и замечания.
Из того, что я вычитал на форумах, высмотрел в обучающих программах, я решил что сначала мне надо создать базу данных аттрибутов текстовых объектов Автокада, с помощью которой в дальнейшем смогу изменять текст в угловом штампе.
Так вот, может кто может мне подсказать как создать эту базу данных, текстовый файл, эксель и как потом с ним работать. Или же предложит другую альтернативу решения проблемы???
Не знаю, удалось ли мне доходчиво объяснить свою проблему, но очень надеюсь, что тема не останется незамеченной.
Заранее огромное спасибо всем учавствующим!!!

Re: Изменение текстовой информации углового штампа через диалоговое окно VB.

> -still alive-
В качестве базы данных для такой несложной
задачи вполне подойдет файл Эксель
Для начала создай форму с комбобоксами
в необходимом количестве, для некоторых данных
например номер листа или стадия проекта
можно обойтись тестбоксами
Небольшой пример как считывать данные и
выводить результат на форму

Option Explicit
' requires : Microsoft Excell XX.0 Object Library
' Set checkbox in Tools->Options->General->Break on Unhandled Errors
Private Sub CommandButton1_Click()
MsgBox "Revison Number:" & vbTab & ComboBox1.Text & vbCr & _
        "Drawn By:" & vbTab & ComboBox2.Text
Unload Me
End Sub
Private Sub UserForm_Initialize()
Dim ExcelAppl As Excel.Application
Dim objWrkBook As Excel.Workbook
Dim objSheet As Excel.Worksheet
Dim objRange As Excel.Range
Dim lngRows As Long
Dim lngCols As Long
Dim indx As Long
Dim jndx As Long
On Error Resume Next
     Err.Clear ' clear any errors
       Set ExcelAppl = GetObject(, "Excel.application")      ' See if Excel is running
          If Err <> 0 Then   '                              ' If Excel not running start a new session
               Err.Clear
              Set ExcelAppl = CreateObject("Excel.application") ' Start Excel if excel is not running
                   If Err <> 0 Then
                        MsgBox " Could not start Excel ! , Is Excel Installed ? ", vbCritical, " Excel Error ! "
                      Err.Clear
                  End If
          End If
 Err.Clear
ExcelAppl.Visible = True   ' Make excel application visible (optional)
ExcelAppl.WindowState = xlMinimized  ' Minimize application window so we don't see it
' Make Autocad window maximum
AcadApplication.WindowState = acMax
' open book
' change full path for your data file
Set objWrkBook = ExcelAppl.Workbooks.Open(FileName:="C:\MyVBA\TitleBlockInfo.xls")
' get the first spreadsheet in the workbook
Set objSheet = objWrkBook.Worksheets(1) '
objSheet.Activate ' make sheet #1 the active sheet
Set objRange = objSheet.Range("A1:J100") ' change address of the desired range here
lngRows = objRange.Rows.Count
lngCols = objRange.Columns.Count
' you can use UsedRange object also:
'lngRows = objWrkBook.ActiveSheet.UsedRange.Rows.Count
'lngCols = objWrkBook.ActiveSheet.UsedRange.Columns.Count
ReDim dataarr(lngRows - 1, lngCols - 1)
For indx = 1 To lngRows
For jndx = 0 To lngCols
      dataarr(indx - 1, jndx - 1) = objSheet.Cells(indx, jndx)
Next
Next
ReDim RevNo(0 To UBound(dataarr, 1)) As String
ReDim DrawnBy(0 To UBound(dataarr, 1)) As String
For indx = 0 To UBound(dataarr, 1)
RevNo(indx) = dataarr(indx, 0): DrawnBy(indx) = dataarr(indx, 1)
'' etc, etc ...
Next
' close Excel
objWrkBook.Close Savechanges:=False ' close book w/o saving changes
ExcelAppl.WindowState = xlNormal
' quit Excel application
ExcelAppl.Quit
' clean up in the reversed hyerarchical order
Set objRange = Nothing
Set objSheet = Nothing
Set objWrkBook = Nothing
Set ExcelAppl = Nothing
'
ComboBox1.List() = RevNo: ComboBox2.List() = DrawnBy 'etc,etc....
ComboBox1.ListIndex = 0: ComboBox2.ListIndex = 0 'etc,etc....
End Sub

Измени в коде полный путь файла Эксель, название
листа и адрес диапазона данных
~'J'~

Re: Изменение текстовой информации углового штампа через диалоговое окно VB.

Спасибо за ответ. А можно краткое описание действия этого кода??
Например вот эта часть кода:
Private Sub CommandButton1_Click()
MsgBox "Revison Number:" & vbTab & ComboBox1.Text & vbCr & _
        "Drawn By:" & vbTab & ComboBox2.Text
Unload Me
End Sub
и еще поподробнее о названии листа и адресе диапазона данных. Спасибо!

Re: Изменение текстовой информации углового штампа через диалоговое окно VB.

Название листа Эксель например "Лист1"
Диапазон - это в общем случае прямоугольный
кусок листа, первый элемент - адрес верхней
левой ячейки, и через двоеточие - адрес нижней
правой ячейки, напр. "A1:C100"
функция MsgBox выводит информацию на экран,
здесь просто использована для наглядности
Все это можно найти в Help
~'J'~

Re: Изменение текстовой информации углового штампа через диалоговое окно VB.

> -still alive-
Попозже гляну
~'J'~