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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2015, 16:25   #1
Wicort
Форумчанин
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Сообщений: 684
По умолчанию Вставка компонента textbox в word

Добрый день.

Запускаю в Word 2013 макрос для добавления компонента TextBox в правый нижний угол каждой страницы документа. Но при этом если в документе есть перенос ячейки таблицы с одной страницы на другую, то TextBox добавляется на предыдущую страницу в указанное место. В остальных случаях все работает отлично.
При этом никаких изменений с документом, кроме добавления компонента TextBox, делать нельзя.

Во вложении - проблемный файл (с переносом ячеек таблицы с одной страницы на другую).

Подскажите пожалуйста как выпутаться из данной ситуации?

Макрос следующего содержания:
Код:
Sub InsertBlankFieldToBottomRightConerOfEveryPageNew()
   Dim PagesCount%, i%, oRng As Range, DocUnit%, iWidth#, iHeight#, iLeft#, iTop#, iNum#, iPosL#, iPosT#, iRow#, iCol#, EndT As Boolean, iShL#, iShT#
   PagesCount = ActiveDocument.Content.ComputeStatistics(wdStatisticPages)
   Set oRng = ActiveDocument.Content
   With Selection
     .GoTo What:=wdGoToPage, Which:=wdGoToFirst
   End With
   DocUnit = Options.MeasurementUnit: Options.MeasurementUnit = wdPoints
   For i = 1 To PagesCount
     With oRng.Sections(1).PageSetup
       iWidth = .PageWidth
       iHeight = .PageHeight
     End With
     With Selection
       iNum = .Information(wdActiveEndPageNumber)
       EndT = .Information(wdWithInTable)
       iShL = iWidth - 190
       iShT = iHeight - 30
     End With
     With ActiveDocument.Shapes.AddTextbox _
               (msoTextOrientationHorizontal, _
               0, _
               0, _
               150, _
               25, _
               oRng)
       .Name = "Blank" & i
       .Line.Visible = False
       .Fill.Visible = False
       .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
       .RelativeVerticalPosition = wdRelativeVerticalPositionPage
       If .LayoutInCell Then
         .LayoutInCell = False
       End If
       iLeft = .Left
       iTop = .Top
       If iLeft <> iShL Then
         .Left = iShL
       End If
       If iTop <> iShT Then
         .Top = iShT
       End If
       With .TextFrame
         .MarginLeft = 0
         .MarginRight = 0
         With .TextRange
           .Text = "684193942 / 684727321"
           With .Font
             .Name = "Arial"
             .Size = 10
           End With
           .ParagraphFormat.Alignment = wdAlignParagraphRight
         End With
       End With
     End With
     Set oRng = oRng.GoToNext(1)
     With Selection
       .GoTo What:=wdGoToPage, Which:=wdGoToNext
     End With
   Next i
   Options.MeasurementUnit = DocUnit
End Sub
Вложения
Тип файла: docx 300546266.docx (28.9 Кб, 7 просмотров)
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой?
Wicort вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка в TextBox > вывод в яцейку (диапазон) Евгений Таб Microsoft Office Excel 7 20.04.2015 10:23
EasyListView - вставка своего компонента куда-нибудь, или аналог компонента ListView Человек_Борща Компоненты Delphi 12 11.02.2013 00:01
Вставка картинки в Word GBAXA Общие вопросы Delphi 1 02.07.2010 23:56
Вставка данных в word :eek: ahvahsky2008 Microsoft Office Word 1 06.05.2010 08:01
вставка в Word начинающий1 Общие вопросы Delphi 5 03.04.2010 00:49