Перейти к содержимому


VBA для Excel


  • Войдите для ответа
Сообщений в теме: 9

#1 Serveladkin

Serveladkin

    Монстр общения


  • Траст
  • Сообщений 1031
  • Торрентов 116
  • Мудрец 2011

Отправлено 29 January 2014 - 10:09

Нужна консультация специалиста по VBA. Задача приблизительно следующая: на компьютере постоянно открыт Excel. В нем в какую-нибудь неприметную ячейку периодически (примерно раз в полминуты) должно через OPC считываться значение. Пока 0 - продолжаем пинать груши. Как только появляется 1 - открываем с винта определенный файл, отправляем его на определенный принтер (не по умолчанию), файл закрываем, удаляем и так ad infinitum.
Вопрос - задача реализуема средствами VBA, макросами и прочими внутренними экселовскими примочками или нет? Если да - буду делать, если нет - придется отказаться ибо никакого софта ставить нельзя.
No more reseed. Sorry.

#2 DeSex

DeSex

    Пользователь

  • Сообщений 26
  • ГородПохвистнево

Отправлено 29 January 2014 - 10:57

Я не очень большой спец, но кажется, в VBA такие средства есть. А что такое ОРС?

#3 Serveladkin

Serveladkin

    Монстр общения


  • Траст
  • Сообщений 1031
  • Торрентов 116
  • Мудрец 2011

Отправлено 29 January 2014 - 11:16

OPC сервер.
No more reseed. Sorry.

#4 DeSex

DeSex

    Пользователь

  • Сообщений 26
  • ГородПохвистнево

Отправлено 29 January 2014 - 11:24

Банкомат что-ли? А как он сигнал передает? На какой-то порт?
Я не знаю, как работает ОРС, поэтому ничего не могу сказать об обработке входного сигнала. А вот все остальное можно реализовать на VBA.

#5 Serveladkin

Serveladkin

    Монстр общения


  • Траст
  • Сообщений 1031
  • Торрентов 116
  • Мудрец 2011

Отправлено 29 January 2014 - 12:14

С входным как раз проблем нет, вполне решаемо, главное - чтобы можно было раз в полминуты скрипт запускать. Если можно - гут.
No more reseed. Sorry.

#6 DeSex

DeSex

    Пользователь

  • Сообщений 26
  • ГородПохвистнево

Отправлено 29 January 2014 - 13:15

Exсel - это обязательное условие? Я бы воспользовался Access, там более проще все это организовать.

#7 Serveladkin

Serveladkin

    Монстр общения


  • Траст
  • Сообщений 1031
  • Торрентов 116
  • Мудрец 2011

Отправлено 29 January 2014 - 13:52

Excel - обязательно, да.
No more reseed. Sorry.

#8 DeSex

DeSex

    Пользователь

  • Сообщений 26
  • ГородПохвистнево

Отправлено 29 January 2014 - 15:20

Если сигнал принимается в ячейку InpBox, то что-то типа этого:
Private Sub InpBox_Change()
If InpBox = 1 Then
  Dim Doc1 As Object
  Dim App1 As Object
  Set App1 = CreateObject("Word.Application")
  Set Doc1 = App1.Documents.Open("C:\Users\ИмяФайла.docx")
  Doc1.PrintOut (, , , prewiev:=False, ActivePrinter:="Имя принтера")
End If
End Sub


#9 Serveladkin

Serveladkin

    Монстр общения


  • Траст
  • Сообщений 1031
  • Торрентов 116
  • Мудрец 2011

Отправлено 29 January 2014 - 15:39

Спасибо, попробую.
No more reseed. Sorry.

#10 DeSex

DeSex

    Пользователь

  • Сообщений 26
  • ГородПохвистнево

Отправлено 29 January 2014 - 15:51

Забыл, ведь файл еще и удалить надо:
kill "Имя файла"

В слове  Preview опечатку сделал)))




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных