2015-05-30 4 views
1

Я создаю приложение в Excel 2013, которое рисует графики, а затем заполняет область под графиком, используя AddPolyline для создания фигур. Затем я окрашиваю эти фигуры с помощью RGB и прозрачности.Excel 2013, игнорируя прозрачность строки для формы

Все работает отлично, за исключением того, что Excel полностью игнорирует коэффициент прозрачности для линии.

myShape.Fill.ForeColor.RGB = RGB(R, G, B) 
myShape.Fill.Transparency = T 

myShape.Line.ForeColor.RGB = RGB(R, G, B) 
myShape.Line.Transparency = T 

В настоящее время я имею жить в решение для резервного копирования, которая просто сделать линию невидимой с помощью:

myShape.Line.Visible = False 

Однако, это оставляет маленькие белые маркера между моими формами, которые должны в противном случае идеально выровненные ,

Я попытался вещи, как сделать вес линии небольшой и т.д.

Может кто-то подтвердить это поведение как ошибка, или указать на то, что я делаю не так?

Edit:

Прикрепленный скриншот выпуска.

white borders

+0

это возможно для Вас, чтобы загрузить картинку с whitemarkers? – bonCodigo

+1

@bonCodigo Я отредактировал OP с скриншотом. Это после того, как я изменил «False» на «msoFalse», который не повлиял. – ignition

ответ

1

Убедитесь, что вы имеете дело не граница, а истинный line. Проверьте на LineFormat свойства.

Для строки объект LineFormat содержит информацию о форматировании самой строки; для формы с границей этот объект содержит информацию о форматировании для границы формы.

Попробуйте myShape.Line.Visible = msoFalse

Не следует забывать, что Transparency свойство LineFormat объект Infact относится к указанной fill формы.

Вы также можете записать макрос, следуя this tutorial to check the exact properties of polylines.

На другой ноте, почему бы вам не сделать цвет линии, как же, как и цвет формы? В этом случае между линией и фигурой не будет различий. Однако это явно зависит от вашего использования и намерения.

Несколько ссылок рассмотреть относительно buggy & awakward shape, line properties.

+0

Я хочу, чтобы цвет линии был точно таким же, как цвет заливки, но, учитывая, что Excel игнорирует коэффициент прозрачности, цвет выходит совсем по-другому. – ignition

+1

Кроме того, изменение myshape.line.forecolor определенно меняет границу формы, поэтому я считаю, что это правильный параметр, с которым нужно взаимодействовать. – ignition

+0

Очевидно, что у вас есть компонент границы. Если вы заметили первую ссылку: «строка», представленная в моем ответе, пример VBA ясно показывает, что цвет линии, стиль достигается с помощью свойства 'forecolor'. – bonCodigo

Смежные вопросы