背景:我正在为我的 web 应用程序做一个重要的新功能版本,我认为通过更新用户界面来“庆祝”会很好。由于我没有专业重新设计的预算,我想我可以对 style.css 表进行一些细微的更改。
理想情况下,会有一个程序可以导入我的 style.css 表(颜色是围绕 Windows XP 设计的)并以 Windows 7 的样式导出新的 style.css 表。虽然我见过允许您导入 css 表的程序并自己玩每种颜色然后导出[我既没有时间也没有时间做的事情],我还没有看到任何东西会自动改变你的整个css表,同时保持你的颜色之间的某种相关性。
我编写了以下 VBA 代码 [我知道它可以改进很多,但我只是将它放在一起进行实验] 这将改变 style.css 工作表的所有颜色(如果它被粘贴到活动 Excel 工作表的 A 列中) . 假设 CSS 颜色以十六进制表示,例如 #123456(其中 12 是红色分量,34 是绿色分量,56 代表蓝色分量)当前的代码使颜色的红色分量更大,和蓝色成分较少。[查看函数makeWarmer]
Sub changeCSSColors()
For j = 1 To 1390 'number of rows
a = Cells(j, 1)
b = InStr(a, "#")
If b > 0 Then
aHex = UCase(Mid(a, b + 1, 6))
If isHexS(aHex) Then
a = Left(a, b) + makeWarmer(aHex) + Mid(a, b + 7)
Cells(j, 1) = a
End If
End If
Next j
End Sub
Function isHex(aChar)
If InStr("ABCDEFabcdef01234567890", aChar) > 0 Then isHex = True Else isHex = False
End Function
Function isHexS(aString)
For j = 1 To Len(aString)
b = Mid(aString, j, 1)
If Not isHex(b) Then isHexS = False: Exit Function
Next j
isHexS = True
End Function
Function makeWarmer(aString)
b = addOneToChar(Mid(aString, 1, 1))
c = subOneToChar(Mid(aString, 5, 1))
makeWarmer = addOneToChar(Mid(aString, 1, 1)) + Mid(aString, 2, 1) + addOneToChar(Mid(aString, 3, 1)) + Mid(aString, 4, 1) + addOneToChar(Mid(aString, 5, 1)) + Mid(aString, 6, 1)
End Function
Function swapBlueGreen(aString)
swapBlueGreen = Mid(aString, 3, 2) + Mid(aString, 1, 2) + Mid(aString, 5, 2)
End Function
Function addOneToChar(aChar)
If (aChar >= "0" And aChar <= "8") Or (aChar >= "A" And aChar <= "E") Then
aChar = Chr(Asc(aChar) + 1)
ElseIf aChar = "9" Then
aChar = "A"
ElseIf aChar = "F" Then
aChar = "F"
End If
addOneToChar = aChar
End Function
Function subOneToChar(aChar)
If (aChar >= "1" And aChar <= "9") Or (aChar >= "B" And aChar <= "F") Then
aChar = Chr(Asc(aChar) - 1)
ElseIf aChar = "A" Then
aChar = "9"
ElseIf aChar = "0" Then
aChar = "0"
End If
subOneToChar = aChar
End Function
我还尝试使用函数 SwapBlueGreen 更改蓝色和绿色组件。但是,这两种功能我都没有得到令人满意的视觉效果。[Web 应用程序看起来很奇怪]
有没有人有其他关于函数的想法,而不是我可以使用的 makeWarmer 或 SwapBlueGreen,也许是某种掩蔽。或者,也许有一些软件可以满足我的需求。