Страница 1 из 1

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

Добавлено: 19 май 2009, 07:11
burref
Добрый день!

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

Заранее спасибо.

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

Добавлено: 19 май 2009, 11:04
mc-black
Насчет выделения цветом пока не знаю, как сделать, а вот этот макрос

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

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.

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

Добавлено: 19 май 2009, 11:36
burref
Спасибо, все добавило и в 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

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

Добавлено: 19 май 2009, 12:49
mc-black
А можно как-нибудь реализовать чтобы текст вставлялся не в конец примечания, а в начало?

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

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

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

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

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

Добавлено: 19 май 2009, 12:58
burref
Спасибо, я поставил 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