Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 08.05.2008, 14:03   #1
ereality
Пользователь
 
Аватар для ereality
 
Регистрация: 18.07.2007
Сообщений: 22
Печаль Работа с MS Word с помощью VBA. Нужна помощь.

В программировании не разбираюсь вообще... но препод гад дал всем задания.. и установил конечную дату. Как кто делать будет его не волнует. Вот поэтому обращаюсь к вам господа. Может ли кто помочь?

Задания следующие:

1. Работа с документами и текстом в MS Word с помощью VBA.
Задание. Операции: Добавление пустого абзаца, установка различных типов выравнивания абзаца, отступа первой строки, установка межстрочного ин-тервала.

2. Интегрирование приложений MS Office с помощью VBA.
Задание. Таблица имеет следующую структуру: код, название книги, автор, цена, кол-во листов

3. Использование графики в VBA.
Задание. Нарисовать с помощью графических элементов произвольную открытку. Она должна содержать минимум 7 элементов, надписи и произвольный рисунок.

Т.е. 3 разных задания (а НЕ 3 в 1). Буду признателен!

К примеру.. пробовал делать 1 задание.. получилось только выравнивание.. остальное увы не выходило

Код:
Private Sub CommandButton1_Click()   
Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft   
End Sub   
  
Private Sub CommandButton2_Click()   
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter   
End Sub   
  
Private Sub CommandButton3_Click()   
Selection.ParagraphFormat.Alignment = wdAlignParagraphRight   
End Sub   
  
Private Sub CommandButton4_Click()   
Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify   
End Sub
ereality вне форума
Старый 21.05.2008, 06:31   #2
madmot
Форумчанин
 
Регистрация: 04.09.2007
Сообщений: 155
По умолчанию

Используй макрорекордер, запиши произведенные действия типа 1 или 2 задания, и в VBA посмотри полученный код.
а открытку можно просто нарисовать, хотя и в этом случае макрорекордер тоже может записать все действия (луше использовать библиотеку картинок самого офиса)
madmot вне форума
Старый 23.05.2008, 18:00   #3
ereality
Пользователь
 
Аватар для ereality
 
Регистрация: 18.07.2007
Сообщений: 22
По умолчанию

1 и 3 задания сделал.. а вот со 2 разобраться не могу.. тут помогли, дали код:

Код:
Option Explicit

Sub CopyExcelTable()
'//' используется позднее связывание с приложением
'//' поэтому ссылка на библитеку MS Excel не нужна
    Dim xlApp As Object
    Dim xlBook As Object
    Dim xlSheet As Object
    Dim xlRange As Object
    Dim xlFileName As String
    '//' имя файла Эксель
    xlFileName = "С:\Темп\Пример.xls"
     '//' проверка на то что Эксель уже открыт
    If Tasks.Exists(Name:="Microsoft Excel") = False Then
         '//' если не открыт то создаем ссылку на объект Эксель
        Set xlApp = CreateObject("Excel.Application")
    ElseIf Tasks.Exists(Name:="Microsoft Excel") = True Then
         '//' если уже открыт получаем ссылку на него
        Set xlApp = GetObject(, "Excel.Application")
    Else
         '//' если Эксель не найден в системе генерируем сообщение
        MsgBox "Приложение Excel не найдено."
         '//' останавливаем процедуру
        End
    End If
     '//' делаем Эксель видимым
    xlApp.Application.Visible = True
     '//' открываем рабочую кникгу
    Set xlBook = xlApp.workbooks.Open(xlFileName)
    '//' получаем ссылку на нужный рабочий лист
    Set xlSheet = xlBook.WorkSheets("Sheet2")
    '//' активируем рабочий лист
    xlSheet.Activate
    '//' получаем ссылку на нужный диапазон
    Set xlRange = xlSheet.Range("A1:B10")
    '//' выделяем его (необязательное действие)
    xlRange.Select
    '//' копируем диапазон
    xlRange.Copy
    '//' вставляем таблицу Эксель в конец документа Word
    ThisDocument.Bookmarks("\endofdoc").Range.PasteExcelTable _
        LinkedToExcel:=True, _
        WordFormatting:=False, _
        RTF:=True

   '//' закрываем книгу,делаем уборку мусора
   Set xlRange = Nothing
   Set xlSheet = Nothing
   xlBook.Close
   Set xlRange = Nothing
   xlApp.Quit
   Set xlApp = Nothing

End Sub
Только он у меня вообще запускаться не хочет
ereality вне форума
Старый 23.05.2008, 22:55   #4
Abrakadabra
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 487
По умолчанию

Цитата:
Сообщение от ereality Посмотреть сообщение
1 и 3 задания сделал.. а вот со 2 разобраться не могу.. тут помогли, дали код:

Код:
Option Explicit

Sub CopyExcelTable()
'//' используется позднее связывание с приложением
'//' поэтому ссылка на библитеку MS Excel не нужна
    Dim xlApp As Object
    Dim xlBook As Object
    Dim xlSheet As Object
    Dim xlRange As Object
    Dim xlFileName As String
    '//' имя файла Эксель
    xlFileName = "С:\Темп\Пример.xls"
     '//' проверка на то что Эксель уже открыт
    If Tasks.Exists(Name:="Microsoft Excel") = False Then
         '//' если не открыт то создаем ссылку на объект Эксель
        Set xlApp = CreateObject("Excel.Application")
    ElseIf Tasks.Exists(Name:="Microsoft Excel") = True Then
         '//' если уже открыт получаем ссылку на него
        Set xlApp = GetObject(, "Excel.Application")
    Else
         '//' если Эксель не найден в системе генерируем сообщение
        MsgBox "Приложение Excel не найдено."
         '//' останавливаем процедуру
        End
    End If
     '//' делаем Эксель видимым
    xlApp.Application.Visible = True
     '//' открываем рабочую кникгу
    Set xlBook = xlApp.workbooks.Open(xlFileName)
    '//' получаем ссылку на нужный рабочий лист
    Set xlSheet = xlBook.WorkSheets("Sheet2")
    '//' активируем рабочий лист
    xlSheet.Activate
    '//' получаем ссылку на нужный диапазон
    Set xlRange = xlSheet.Range("A1:B10")
    '//' выделяем его (необязательное действие)
    xlRange.Select
    '//' копируем диапазон
    xlRange.Copy
    '//' вставляем таблицу Эксель в конец документа Word
    ThisDocument.Bookmarks("\endofdoc").Range.PasteExcelTable _
        LinkedToExcel:=True, _
        WordFormatting:=False, _
        RTF:=True

   '//' закрываем книгу,делаем уборку мусора
   Set xlRange = Nothing
   Set xlSheet = Nothing
   xlBook.Close
   Set xlRange = Nothing
   xlApp.Quit
   Set xlApp = Nothing

End Sub
Только он у меня вообще запускаться не хочет
что значит "не хочет"? что пишет?
Abrakadabra вне форума
Старый 24.05.2008, 13:47   #5
ereality
Пользователь
 
Аватар для ereality
 
Регистрация: 18.07.2007
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Abrakadabra Посмотреть сообщение
что значит "не хочет"? что пишет?
Ворд вылетает.. мол приложение не отвечает.. или перезапускается сам.. опробовано на 6 разных компах.. как дома, так и в универе.

На двух компах из 6 вылетает защита от файрвола, о том, что пытаюсь запустить макровирус))
ereality вне форума
Старый 28.05.2008, 18:50   #6
ereality
Пользователь
 
Аватар для ereality
 
Регистрация: 18.07.2007
Сообщений: 22
По умолчанию

Запустил.. теперь выдает: Run-time error '9'. Subscript out of range
ereality вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с Word arv БД в Delphi 13 24.05.2009 10:39
Работа с файлами, нужна помощь Johnson Общие вопросы Delphi 5 19.07.2008 23:15
Работа с файлами. Нужна помощь. Corwin88 Помощь студентам 9 14.05.2008 22:37
Как с помощью xml-файла с генерировать БД в отчет MS Word quit БД в Delphi 3 21.02.2008 16:23
Работа с Word-ом grey Помощь студентам 6 25.11.2007 14:28