Страницы: 1
RSS
AddLabel - как выполнить заливку?, что нужно добавить в макрос?
 
Доброго времени суток, нужна помощь. как с помощью VBA выполнить заливку красным цветом Shapes в эксель?

Sub zalivka()

Dim cur_range As Range
With ActiveSheet
Set cur_range = Selection
cur_range.Activate
'Worksheets("схема"  ;)  .Activate
For x = 1 To cur_range.Rows.Count

If cur_range(x, 2) <> "" Then Str_0 = Int(cur_range(x, 2) / 100)

Set myDocument = Worksheets("схема"  ;)  

If cur_range(x, 2) <> "" And cur_range(x, 3) <> "" Then myDocument.Shapes.AddLabel(msoTextOrientationHorizontal, cur_range(x, 2) * 10 - Str_0 * 1000, Str_0 * 120 + 30, cur_range(x, 3) * 10 - cur_range(x, 2) * 10, 30).TextFrame.Characters.Text = cur_range(x, 4)

Next x
End With
Изменено: Variant - 09.02.2013 23:54:30
 
Для общего случая - заливаем автофигуру (прямоугольник 2) тем цветом, которым залита ячейка А1:
Код
1
2
3
4
5
Sub Test()
    Dim x As Shape
    Set x = ActiveSheet.Shapes("Rectangle 2")
    x.Fill.ForeColor.RGB = Range("A1").Interior.Color
End Sub
 
Проблема в том что не знаю как именно в моем случае выполнить заливку, не обращаться, а сразу определенного цвета вставить на лист:

myDocument.Shapes.AddLabel(msoTextOrientationHorizontal, 10, 10, 10, 30).TextFrame.Characters.Text = "проба"
 
Так и вставляйте, а затем .Fill.ForeColor.RGB
 
Цитата
не обращаться, а сразу определенного цвета вставить на лист
так не получится, чтобы одной строкой кода всё сделать.

Не экономьте буквы в коде - и все получится:
Код
1
2
3
4
with myDocument.Shapes.AddLabel(msoTextOrientationHorizontal, 10, 10, 10, 30)
  .TextFrame.Characters.Text = "проба"
  .Fill.ForeColor.RGB = Range("A1").Interior.Color
end with
 
спасибо, помогло  )
Страницы: 1
Читают тему
Наверх
Loading...