powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не могу разобраться с видимостью переменных, объектов и процедур при создании процедуры
5 сообщений из 5, страница 1 из 1
Не могу разобраться с видимостью переменных, объектов и процедур при создании процедуры
    #32815528
Фотография REBUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ситуация такая:

1) Есть форма с кнопкой "Сформировать отчет в Excel"
2) Есть процедура BtnReportExcel_Click(), где программно создается Excel-файл

Упрощенно:
Блок А - начало процедуры
Код: plaintext
1.
2.
3.
4.
Dim xlApp As Object
Dim xlsheet1 As Object
Set xlApp = CreateObject("Excel.Application")
Set xlsheet1 = xlApp.worksheets("Лист1")
icolor =  34 
Блок В - текст
Код: plaintext
1.
2.
3.
4.
xlsheet1.cells( 91 ,  1 ).interior.colorindex = icolor
xlsheet1.cells( 92 ,  1 ).interior.colorindex = icolor
xlsheet1.cells( 93 ,  1 ).interior.colorindex = icolor
xlsheet1.cells( 94 ,  1 ).interior.colorindex = icolor
xlsheet1.cells( 95 ,  1 ).interior.colorindex = icolor

необходимо чтобы Блок В вы глядел в таком виде, т.е. вызов процедуры

Код: plaintext
1.
2.
3.
4.
SetColCell( 91 )
SetColCell( 92 )
SetColCell( 93 )
SetColCell( 94 )
SetColCell( 95 )

Как написать процедуру SetColCell(),
где аргументом номер строки,
и чтобы она заносила значение цвета в xlsheet1

Т.е. не могу разобраться с видимостью переменных, объектов(xlsheet1) и процедур

Знающие люди откликнитесь...
...
Рейтинг: 0 / 0
Не могу разобраться с видимостью переменных, объектов и процедур при создании процедуры
    #32815608
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если реализовывать через функции, то либо надо делать объект лист или книга глобальным, либо все время нужно будет передавать их в качестве параметров.

Я бы выбрал другой способ.

Создать модуль класса. В нем свойство Sheet, которое будет создавать/открывать нужный объект по имени или еще как-нибудь, как вам захочется.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Public Property Set Sheet(Name as String)

   Set xlApp = CreateObject("Excel.Application")
   Set xlsheet = xlApp.worksheets("Name")

End Property

Public Property Color
...

Public Function CellColor(iCol as Integer, iRow as Integer)
...


А потом добавить к этому классу функций по вкусу. По занесению, форматированию. Удобно бывает внутри такого класса хранить номер текущей строки, с которой идет работа. И нечто вроде NewLine для изменения этого счетчика на +1
...
Рейтинг: 0 / 0
Не могу разобраться с видимостью переменных, объектов и процедур при создании процедуры
    #32815808
Фотография REBUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример хороший.

С классами я не работал - надо пробовать.

У меня мало времени - надо сдавать программу.

Поэтому мне сейчас нужно:

Если реализовывать через функции, то либо надо делать объект лист или книга глобальным, либо все время нужно будет передавать их в качестве параметров
...
Рейтинг: 0 / 0
Не могу разобраться с видимостью переменных, объектов и процедур при создании процедуры
    #32815872
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
'В начале модуля
Private xlsheet1 As Object  '!!!
Private icolor

'процедура
private sub SetColCell ( row as integer )
  xlsheet1.cells(row,  1 ).interior.colorindex = icolor
end sub 


'использование:
SetColCell( 91 )

...
Рейтинг: 0 / 0
Не могу разобраться с видимостью переменных, объектов и процедур при создании процедуры
    #32816121
Фотография REBUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все получается.

Благадарю за помощь.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не могу разобраться с видимостью переменных, объектов и процедур при создании процедуры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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