Excel VBA 2007 - добавление данных в существующее примечание

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
burref
Сообщения: 3
Зарегистрирован: 21 апр 2009, 07:37

Добрый день!

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

Заранее спасибо.
Аватара пользователя
mc-black
Сообщения: 250
Зарегистрирован: 08 май 2008, 16:09
Откуда: Россия, Нижний Новгород
Контактная информация:

Насчет выделения цветом пока не знаю, как сделать, а вот этот макрос

Код: Выделить всё

Option Explicit

Sub AddComments()
    Dim cmt As Comment
    For Each cmt In ThisWorkbook.Worksheets(1).Comments
        cmt.Text Chr(10) & "qwerty", Len(cmt.Text)
    Next cmt
End Sub
Добавляет к каждому комментарию на первом листе с новой строки текст "qwerty". Проверял в Office 2003, поэтому не известно, будет ли работать в Office 2007.
На заказ: VBA, Excel mc-black@yandex.ru
burref
Сообщения: 3
Зарегистрирован: 21 апр 2009, 07:37

Спасибо, все добавило и в 2007.

А можно как-нибудь реализовать чтобы текст вставлялся не в конец примечания, а в начало?
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Попытался ее применить не ко всем примечаниям, а только к конкретному после чего выдало ошибку. Подскажите где я допустил ошибку.


Option Explicit

Function ChangeBankomat()
Dim iComment As Comment

'Добавляем комментарии
iComment = ThisWorkbook.Sheets(n_FilialsPosle).Cells(n_FindCity + 1, "G").Comments
iComment.Text "- перемещен по распоряжению №" & txtNumberDoc & " от " & txtDataDoc & Chr(10), 0
iComment.Shape.TextFrame.AutoSize = True
iComment.Shape.Height = iComment.Shape.Height + 10
iComment.Shape.Width = iComment.Shape.Width + 5

End Function
Аватара пользователя
mc-black
Сообщения: 250
Зарегистрирован: 08 май 2008, 16:09
Откуда: Россия, Нижний Новгород
Контактная информация:

А можно как-нибудь реализовать чтобы текст вставлялся не в конец примечания, а в начало?

Код: Выделить всё

cmt.Text "qwerty" & Chr(10), 0
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Подскажите где я допустил ошибку.

Код: Выделить всё

Set iComment = ThisWorkbook.Sheets(n_FilialsPosle).Cells(n_FindCity + 1, "G").Comments(1)
'...
Set iComment = Nothing
На заказ: VBA, Excel mc-black@yandex.ru
burref
Сообщения: 3
Зарегистрирован: 21 апр 2009, 07:37

Спасибо, я поставил 0

А еще объясните как привязать это все к примечанию конкретной ячейки.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Пока писал уже ответили :) . Спасибо, сейчас проверю
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Вот что получилось, но он меняет во всем примечании цвет, а нужно чтобы каждая строчка была своего цвета.

Set iComment = ThisWorkbook.Sheets(n_FilialsPosle).Cells(n_FindCity + 1, "G").Comment

With iComment
.Text "- перемещен по распоряжению №" & txtNumberDoc & " от " & txtDataDoc & iComment.Text
.Shape.TextFrame.Characters.Font.Color = 4
.Shape.TextFrame.AutoSize = True
.Shape.Height = iComment.Shape.Height + 10
.Shape.Width = iComment.Shape.Width + 5
End With
Set iComment = Nothing
Ответить