2016-11-14 7 views
2

Accessデータベースのテキストボックスの背景色の設定に問題があります。特定の条件が満たされたら、色を赤に変更したい。VBAでのアクセスカラーコードの設定

デザインビューでは、テキストボックスのバックカラープロパティを赤に設定しました。これは '#ED1C24'として表示されます。フォームビューでフォームを表示すると、コントロールは正しく選択された赤色で表示されます。

しかし、この値をVBAコード(Text1.Backcolor = "#ED1C24")に入れると、型の不一致エラーが発生します。

これを16進数(Text1.Backcolor = & HED1C24)に変更しようとしましたが、コントロールが青色に変わりました。

ご協力いただければ幸いです。ありがとう。

+0

の可能性のある重複した[?私はエクセル/ VBAでRGBの色の対応する16進値を取得するにはどうすればよいです](http://stackoverflow.com/questions/6003324/how-do-i- rgb-color-in-eの対応するhex値を取得するxcel-vba) – Andre

答えて

1

VBAでのカラーコードの形式は、あなたの場合はHEX

をRGBまたはロングではなく、最も簡単な方法は、HEXからロングに変換する関数を呼び出すことです:

Public Function Color_Hex_To_Long(strColor As String) As Long 
    Dim iRed As Integer 
    Dim iGreen As Integer 
    Dim iBlue As Integer 

    strColor = Replace(strColor, "#", "") 
    strColor = Right("000000" & strColor, 6) 
    iBlue = Val("&H" & Mid(strColor, 1, 2)) 
    iGreen = Val("&H" & Mid(strColor, 3, 2)) 
    iRed = Val("&H" & Mid(strColor, 5, 2)) 

    Color_Hex_To_Long = RGB(iRed, iGreen, iBlue) 
End Function 

は、それを使用しますこのような:

Text1.BackColor = Color_Hex_To_Long("#ED1C24") 
1

私はあなたの質問に答えなければならないこのまさにこの問題に関するブログを書きました。

http://www.jht.co.uk/access-colour-color-codes/

ここではコードです。

Public Function HTMLColour(HTMLCode As String, Optional Red As Variant, _ 
Optional Green As Variant, Optional Blue As Variant) As Long 
On Error GoTo HTMLColour_Error 

‘Converts an HTML colour code number to a long interger 
‘Also returns the constituent R,G & B components through supplied parameters 

Dim intR As Integer, intG As Integer, intB As Integer 
Dim strHTML As String 

‘Strip # prefix if supplied 
If Len(HTMLCode) < 6 Then Exit Function 
strHTML = Right(HTMLCode, 6) 

‘Extract R, G, B values 
intR = CInt(“&H” & Mid(strHTML, 1, 2)) 
intG = CInt(“&H” & Mid(strHTML, 3, 2)) 
intB = CInt(“&H” & Mid(strHTML, 5, 2)) 

‘Return optional parameters 
If Not IsMissing(Red) Then Red = intR 
If Not IsMissing(Green) Then Green = intG 
If Not IsMissing(Blue) Then Blue = intB 

‘Convert RGB to Long integer 
HTMLColour = RGB(intR, intG, intB) 

HTMLColour_Exit: 
Exit Function 

HTMLColour_Error: 
MsgBox Err.Description, vbExclamation, “Function HTMLColour” 
Resume HTMLColour_Exit 

エンド機能

は、この情報がお役に立てば幸いです。

+0

これは素晴らしいことですが、多くの感謝です –

+0

潜在的な解決策へのリンクはいつでも歓迎ですが、[リンクの前後にコンテキストを追加](http://meta.stackoverflow.com/a/8259/169503)ユーザーはそれが何であるか、なぜそれが存在するのか、いくつかの考えを持っています。ターゲットサイトに到達できない場合や、永続的にオフラインになる場合は、常に重要なリンクの最も関連性の高い部分を引用してください。外部サイトへのリンクよりも多すぎることを考慮すると、[なぜ、どのように答えが削除されるのですか?](http://stackoverflow.com/help/deleted-answers)の理由が考えられます。 –

関連する問題