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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2009, 21:37   #1
NewFire
 
Регистрация: 26.06.2009
Сообщений: 4
Радость -> макрос для Word на Visual Basic

Доброго времени суток. Прошу помочь в следующем вопросе.

Нужно написать макрос последовательной нумерации всех формул в тексте. Формулы оформить по стандартам, т.е. формула - по центру, номер формулы - по правому краю. Номера формул выделить жирным шрифтом. Нумерация формул в тексте сквозная. Ваши предложения...

Последний раз редактировалось NewFire; 26.06.2009 в 22:00.
NewFire вне форума Ответить с цитированием
Старый 26.06.2009, 23:34   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Документ с формулами в студию! (хотя бы часть документа)
Знаю 3 (три) сравнительно простых способа это сделать.

Добавлено позже
Я так понимаю, что вы хотите получить нечто, похожее на то, что в приложении?
Вложения
Тип файла: doc 1.doc (24.5 Кб, 49 просмотров)
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 27.06.2009 в 00:22. Причина: Добавил свой файл с примером окончательного результата
viter.alex вне форума Ответить с цитированием
Старый 27.06.2009, 08:08   #3
NewFire
 
Регистрация: 26.06.2009
Сообщений: 4
По умолчанию

Да, посмотрел приложение, совершенно верно. Чем проше тем лучше.
NewFire вне форума Ответить с цитированием
Старый 27.06.2009, 11:47   #4
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Видно, примера документа я от вас не дождусь. Хорошо, даю макрос так, как я его представляю.
Код:
Sub NumberEquation()
  Dim oIShape As InlineShape
  Dim oRng As Range
  For Each oIShape In ActiveDocument.InlineShapes
    If oIShape.OLEFormat.ClassType = "Equation.3" Then
      Set oRng = oIShape.Range
      With oRng.ParagraphFormat
        .SpaceAfterAuto = False: .SpaceBeforeAuto = False
        .FirstLineIndent = 0
        .TabStops.ClearAll
        .TabStops.Add Position:=(ActiveDocument.PageSetup.PageWidth - ActiveDocument.PageSetup.LeftMargin - ActiveDocument.PageSetup.RightMargin - .LeftIndent - .RightIndent) / 2, _
                      Alignment:=wdAlignTabCenter, Leader:=wdTabLeaderSpaces
        .TabStops.Add Position:=(ActiveDocument.PageSetup.PageWidth - ActiveDocument.PageSetup.LeftMargin - ActiveDocument.PageSetup.RightMargin - .LeftIndent - .RightIndent), _
                      Alignment:=wdAlignTabRight, Leader:=wdTabLeaderSpaces
      End With
      With oRng
        .InsertBefore vbTab
        .Collapse wdCollapseEnd
        .InsertParagraphAfter
        .Select
        With Selection
          .InsertStyleSeparator
          .Font.Bold = True
          .TypeText vbTab & "("
          .Fields.Add .Range, wdFieldEmpty, "SEQ formula", True
          .TypeText ")"
        End With
      End With
    End If
  Next oIShape
End Sub
После применения макроса формулы в документе должны выглядеть так, как в примере из моего предыдущего поста. Если какую-либо формулу вы удалите или, наоборот, добавите, то нумерация изменится автоматически. Только добавлять нужно, скопировав строку со старой формулой и номером в новое место.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 27.06.2009, 12:50   #5
NewFire
 
Регистрация: 26.06.2009
Сообщений: 4
По умолчанию

Большое спасибо, работает прямо так как и хотел.
NewFire вне форума Ответить с цитированием
Старый 27.06.2009, 15:43   #6
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Пожалуйста. Одно замечание. Этот макрос я совсем чуть-чуть переделал из того, что у меня было. А был у меня макрос, который вставлял в документ формулу с нумерацией.
Можно проделать и обратный путь: из приведенного макроса, который нумерует ненумерованные формулы, получить макрос, который вставляет формулу с нумерацией.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 06.07.2009, 11:37   #7
VIDI
Пользователь
 
Регистрация: 23.06.2009
Сообщений: 12
По умолчанию

Всем привет! Viter.alex пытался добавить кнопку к твоему макросу, но связать код и кнопку не получилось. Как это сделать?:-)
VIDI вне форума Ответить с цитированием
Старый 06.07.2009, 12:14   #8
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Цитата:
Сообщение от VIDI Посмотреть сообщение
Всем привет! Viter.alex пытался добавить кнопку к твоему макросу, но связать код и кнопку не получилось. Как это сделать?:-)
Какой офис?
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 06.07.2009, 15:36   #9
VIDI
Пользователь
 
Регистрация: 23.06.2009
Сообщений: 12
По умолчанию

Офис 2003!
VIDI вне форума Ответить с цитированием
Старый 06.07.2009, 16:22   #10
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

На панели инструментов кликнуть правой кнопкой мыши и выбрать «Настройка». Перейти на вкладку «Команды» и в списке «Категории» выбрать пункт «Макросы».

При этом в правом списке «Команды» появятся все макросы, доступные для документа, например Normal.ThisDocument.NumberEquation. Это означает, что макрос с именем NumberEquation записан во встроенный модуль ThisDocument шаблона Normal.dot. Хватаете этот макрос мышкой и тащите на удобное для вас место на панели инструментов.

После того, как перетащили, правый клик по этой кнопке и можете выбрать название для кнопки, рисунок и прочее.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос для сохранения всех картинок из Word в файл Nitro Microsoft Office Word 5 24.05.2012 21:05
Код для прочистки файлов куки(Visual Basic.NET) reyn90 Помощь студентам 0 14.06.2009 04:50
Нужно написать макрос для Word. Hoomer Фриланс 2 24.09.2008 12:19
Макрос для Visual Studio 2005 idealul Общие вопросы .NET 2 28.07.2008 17:25