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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.07.2009, 23:17   #1
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию Невидимый буфер в документе ворд.

Подскажите можно ли создать в ворде не видимый буфер, например таблицу в которую передадутся данные из сторонней программы через OLE, но таблица должна быть не видимой так как данные из нее возьмутся чисто для рассчетови не имеют другой информативности?
Страх это слабость и потому, кто испугался уже побежден.
Mixasik вне форума Ответить с цитированием
Старый 19.07.2009, 23:44   #2
CaptainNemo
Пользователь
 
Аватар для CaptainNemo
 
Регистрация: 02.06.2009
Сообщений: 49
По умолчанию

Двумерный массив создать в коде попробуйте. Двумерный массив в моём понимании - это и есть таблица… Будете использовать данные массива для расчётов.
Android & Linux
CaptainNemo вне форума Ответить с цитированием
Старый 20.07.2009, 00:29   #3
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Во многих случаях для передачи данных между приложениями MS OFFICE удобно использовать не OLE а переменные окружения (ENVIRONMENT)
Код:
'Установка массива в текстовой строке окружения в передающем приложении
    Dim WshEnvironment As Object
    Dim WshShell As Object

    Set WshShell = CreateObject("Wscript.Shell")
    Set WshEnvironment = WshShell.Environment("User")
    WshEnvironment("MyArray") = Join(Array(1,2.4,5,8.77,9),";")
В принимающем приложении
Код:
    Dim WshEnvironment As Object
    Dim WshShell As Object
    Dim s as String,i as Long
    Dim v()

    Set WshShell = CreateObject("Wscript.Shell")
    Set WshEnvironment = WshShell.Environment("User")
    s= WshEnvironment("MyArray")
    s= Replace(s,",",".")
    v = Split(s,";")
    for i = LBound(v) to UBound(v)
         Debug.Print  cSng(v(i)) 
    Next i
В примере используются объекты Windows Script Host.

Последний раз редактировалось Aent; 20.07.2009 в 00:38.
Aent вне форума Ответить с цитированием
Старый 20.07.2009, 00:38   #4
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию

Проблема в том, что исходные данные я получаю в среде не MS и закладываю их в таблицы ворд, но как напрямую из среды передать в VBA? Вот я и поумал о буферной таблицы.
Страх это слабость и потому, кто испугался уже побежден.
Mixasik вне форума Ответить с цитированием
Старый 20.07.2009, 01:01   #5
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Если вы можете использовать OLE (например через Wine), можно поместить данные в документ в коллекцию Variables. Массив легко эмулировать текстовой строкой с разделителями (примерно так как в моём примере выше)
Ещё можно поместить таблицу в поле(fields) COMMENTS.
Доставать только данные может быть несколько напряжно
Aent вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Делфи и ворд Droniwe Помощь студентам 5 12.06.2009 23:40
Задание ворд dr.Chas Microsoft Office Word 2 16.12.2008 00:51
Как мне сделать невидимый текст и сослаться на ячейку ? Droid HTML и CSS 9 31.10.2008 10:35
Просмотр ворд доков Airou Общие вопросы Delphi 10 02.06.2008 19:36