Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: D5 и листы Excell  (Прочитано 9795 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
serjufa
Гость
« : 27-07-2005 11:16 » 

Проискал на многих форумах, но не нашел конкретных примеров на мои вопросы. В D5 программно

1. Определение кол-во листов в Excell
2. Удаление листа с определенным именем
3. Сортировка положений листов. Напр., [март 2002], [май 2005], [июнь 2005]
4. Запускать истинные макросы Excell. Речь идет не о простом запуске внешнего макроса, а о том, что я в программе завожу код на VB, динамически изменяя некоторые значения.

Если кто подскажет что-нибудь путное - буду очень
Записан
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 28-07-2005 13:02 » 

1. WorkBook.Sheets.Count
2. WorkBook.Sheets("Определенное имя").Delete
3. Получить имена листов ( Sheets(n).Name), отсортировать, переместить листы в нужном порядке (Sheets("Лист4").Move After:=Sheets(4)) - например.
4. Может быть  эта статья поможет? http://www.compress.ru/Temp/1773/index.htm
Записан

С уважением, Oldy.
zubr
Гость
« Ответ #2 : 28-07-2005 15:46 » 

Цитата
Запускать истинные макросы Excell. Речь идет не о простом запуске внешнего макроса, а о том, что я в программе завожу код на VB, динамически изменяя некоторые значения.
Так в чем проблема. Программно проверяете наличие нужного макроса, если он есть удаляете его, генерируете в файл свой макрос, программно его добавляете в Excel и запускаете его.
Записан
serjufa
Гость
« Ответ #3 : 29-07-2005 03:34 » 

Допустим имеем код макроса
Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 29.07.2005 (SA)
'

'
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
End Sub
Sub Макрос2()
'
' Макрос2 Макрос
' Макрос записан 29.07.2005 (SA)
'

'
    ActiveSheet.Shapes.AddLine(666.75, 400.5, 822#, 430.5).Select
    Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle
    Selection.ShapeRange.Line.EndArrowheadLength = msoArrowheadLengthMedium
    Selection.ShapeRange.Line.EndArrowheadWidth = msoArrowheadWidthMedium
    Selection.ShapeRange.Flip msoFlipVertical
    ActiveSheet.Shapes.AddShape(msoShapeRectangle, 708#, 285.75, 126#, 105.75). _
        Select
    Selection.ShapeRange.Fill.ForeColor.SchemeColor = 13
    Selection.ShapeRange.Fill.Visible = msoTrue
    Selection.ShapeRange.Fill.Solid
End Sub

теперь мне нужно его вогнать в текст проги и динамически менять цифири. И запускать так, чтоб на листе excel появился нужный результат
« Последнее редактирование: 20-12-2007 19:10 от Алексей1153++ » Записан
zubr
Гость
« Ответ #4 : 29-07-2005 04:07 » 

Чтобы ваш макрос вогнать в текст проги есть множество способов: загнать его в список TStringList, затем для добавления макроса в Excel, создать файл методом TStringList.SaveToFile; загнать данный текст в буфер, а затем создать поток TMemoryStream и записать его в поток; сразу создать файл и записывать данный текст в файл; загнать данный текст в ресурс, а затем выдрать его из ресурса с помощью TResourceStream. Как добавить сам макрос могу описать только приватно, так как у меня сейчас проект на данную тему в разработке, не хочу показывать исходники, пока со мной не рассчитаются.
Записан
serjufa
Гость
« Ответ #5 : 29-07-2005 06:57 » new

Как добавить сам макрос могу описать только приватно

Был бы очень благодарен
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines