2016-01-15 2 views
0

Все,Visual Basic, Excel VSTO: Цвет вкладки рабочего листа

Надеюсь, это вас хорошо!

В настоящее время я конвертирую код Visual C# в VSTO на Visual Basic и нахожусь в настройке проблемы Tab.Color для рабочего листа.

В настоящее время я делаю это:

Dim c As Color 
c = System.Drawing.Color.Blue 

Dim w As Excel.Worksheet 
w = Me.Application.Worksheets.Add() 
w.Tab.Color = c 

Однако, независимо от значения C, вкладка всегда черный. Это отлично работает в Visual C#, но я не смог вычислить эквивалент Visual Basic.

Любая помощь очень ценится! Благодаря!

+0

Проверить это http://stackoverflow.com/questions/12464457/changing-color-of-tabs-in-excel- using-vba – Kiru

ответ

0

Try w.Tab.Color = &hFF0000 Цвета в VSTO являются хлопотными. Первоначально они находятся в формате BGR в отличие от System.Drawing.Color. Поэтому я предполагаю, что C# каким-то образом его обрабатывает. Во всяком случае, вы можете использовать простую функцию для преобразования цвета из System.Drawing в целое:

Function ConvertColor(ByVal color As System.Drawing.Color) As Integer 
    Return ((color.B * &h10000) + ((color.G * &h100) + color.R)) 
End Function 
+0

Не удалось получить эту работу - вкладки все еще выходят как черные - спасибо, хотя! – Jay

+0

@McThunderThighs Я только что проверил. Код работает. И даже более того, ваш код работает хорошо. Возможно, у вас есть другой код, изменяющий изменение цвета вкладок (или некоторые экспериментальные надстройки, которые вы забыли удалить из excel, это случается со мной часто) –

+0

Вы действительно правы - 'c' устанавливался в' 0', когда он падал из-за границы, поэтому вкладки были черными. – Jay