powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Bookmark в Word
3 сообщений из 3, страница 1 из 1
Bookmark в Word
    #34015861
Saaleb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Из Access происходит вывод протоколов различной формы и сложности. Простые протоколы выводились в Excel посредством Range("Field_name") = rs!data. Т.е. создавался экселевский шаблон с таблице, в него ПРОГРАММНО заносились имена ячеек, потому что ячеек очень много и имена однотипны, типа dg1sx2d3, где 1, 2, 3 - числа от 1 до 10, например.

Теперь следующая ситуация - требуется создавать сложный отчет, на основе некоторого количества шаблонов таблиц компоновать отчет, содержащий эти таблицы. Предыдущий способ отпал после того, как при формировании общего листа терялись размеры таблиц, таблицы все разные. Пробовал заносить сначала данные в Эксель а потом копировать в Word - опять теряются размеры таблиц и их расположение.

Поискал по форуму, нашел такую штуку в Word как закладки, насколько я понял - аналог именованных ячеек в Excel. Появилась следующая идея - нарисовать шаблон в Word и заносить данные уже туда, удаляя ненужные таблицы. Вопрос в следующем, есть ли аналог в Word экселевского способа генерации именованных ячеек, типа

Код: plaintext
ActiveWorkbook.Names.Add Name:="head3", RefersToR1C1:="=head!R6C1:R21C13"

Т.е. могу ли я ПРОГРАММНО назначать закладки ячейкам таблицы Word?
Пробовал через запись макросов, но там навигация идет через курсор, а мне нужно через координаты таблицы.
...
Рейтинг: 0 / 0
Bookmark в Word
    #34016221
Saaleb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо, нашел сам.

Код: plaintext
1.
2.
3.
ActiveDocument.Tables( 1 ).Cell( 1 ,  1 ).Select 
Selection.Bookmarks.Add ("ddd")
ActiveDocument.Bookmarks("ddd").Range.Text = "ddd"

Один из способов.
...
Рейтинг: 0 / 0
Bookmark в Word
    #34018144
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создание меню из закладок. Меню помещается на панели инструментов.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
Option Explicit

Sub CreateBookMarkMenu()

Dim oBookmark As Bookmark
Dim oBar As CommandBar
Dim oPopup As CommandBarPopup
Dim oButton As CommandBarButton
Dim ShowHiddenStatus As Boolean

'Find out whether hidden bookmarks set as "visible" or not,
'storing this setting in a variable so it can be returned to at the end.
'Then make the hidden bookmarks invisible
'(we don't want cross-refs etc to appear in our menu)
ShowHiddenStatus = ActiveDocument.Bookmarks.ShowHidden
ActiveDocument.Bookmarks.ShowHidden = False

CustomizationContext = ActiveDocument
Set oBar = CommandBars.ActiveMenuBar

'First delete Bookmark menu if it already exists
Set oPopup = CommandBars.FindControl(Tag:="Recreate")
If Not oPopup Is Nothing Then
    oPopup.Delete
End If


If ActiveDocument.Bookmarks.Count >  0  Then

      Set oPopup = oBar.Controls.Add(Type:=msoControlPopup, _
               Before:=oBar.Controls.Count +  1 )

      With oPopup
          .Caption = "Bookmarks"
          .Tag = "Recreate"
      End With

      For Each oBookmark In ActiveDocument.Bookmarks
          Set oButton = oPopup.Controls.Add(Type:=msoControlButton)

          With oButton
              .Caption = oBookmark.Name
              .Style = msoButtonCaption
              .OnAction = "BookMarkSelect"
          End With

      Next

      'Add a Refresh button at the bottom
      Set oButton = oPopup.Controls.Add(Type:=msoControlButton)

      With oButton
          .Caption = "Refresh list"
          .Style = msoButtonCaption
          .OnAction = "CreateBookMarkMenu"
          .BeginGroup = True
      End With

End If

ActiveDocument.Bookmarks.ShowHidden = ShowHiddenStatus

Set oButton = Nothing
Set oPopup = Nothing
Set oBar = Nothing
Set oBookmark = Nothing

End Sub


--------------------------------------------------------------------------------

Private Sub BookMarkSelect()
    If ActiveDocument.Bookmarks.Exists(CommandBars.ActionControl.Caption) Then
        ActiveDocument.Bookmarks(CommandBars.ActionControl.Caption). _
                Range.Select
    End If
End Sub


--------------------------------------------------------------------------------

Sub AutoOpen()
    'Make sure the document's menu is visible when the document opens
    'If the "customisation context" has been changed since it was last opened,
    'the document-specific menus won't be visible!
    CustomizationContext = ActiveDocument
End Sub
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Bookmark в Word
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]