[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/11/21(Tue) 20:42
投稿者名:たけ
Eメール:
URL :
タイトル:
選択した色で背景色を変更
タイトルの通り、リストボックスから選択した色で
背景色を変更しようとしているのですが、
BackColor への設定でエラーになります。

プロシージャの呼び出し、または、引数が不正です。
が表示されます。

---------------------------------------
Dim arr_color As New Collection
Private Sub Form_Load()
    List1.Clear
    Call list1_set
End Sub
Private Sub list1_set()
    With List1
        .Clear
        .AddItem "黒", 0
        .AddItem "赤", 1
        .AddItem "緑", 2
        .AddItem "黄", 3
        .AddItem "青", 4
        .AddItem "マゼンダ", 5
        .AddItem "シアン", 6
        .AddItem "白", 7
        .ListIndex = 0
    End With
    arr_color.Add "vbBlack"
    arr_color.Add "vbRed"
    arr_color.Add "vbGreen"
    arr_color.Add "vbYellow"
    arr_color.Add "vbBlue"
    arr_color.Add "vbMagenta"
    arr_color.Add "vbCyan"
    arr_color.Add "vbWhite"
End Sub

Private Sub List1_Click()
    BackColor = arr_color.Item(1)
End Sub
-----------------------------------------------

投稿時間:2006/11/21(Tue) 22:55
投稿者名:Starfish
Eメール:
URL :
タイトル:
Re: 選択した色で背景色を変更
 このプログラムには、2つの問題があります。

1.arr_color.Addの前に、.ListIndex = 0でList1_Clickが動いてしまう。
 F8キーで、ステップ実行してみてください。

2.BackColor プロパティに文字列をセットしようとしている

 こんなのでは、どうでしょうか?

Private Sub Form_Load()
    Call list1_set
End Sub
Private Sub list1_set()
    With List1
        .Clear
        .AddItem "黒"
        .AddItem "青"
        .AddItem "緑"
        .AddItem "シアン"
        .AddItem "赤"
        .AddItem "マゼンダ"
        .AddItem "黄"
        .AddItem "白"
        .AddItem "灰色"
        .AddItem "明るい青"
        .AddItem "明るい緑"
        .AddItem "明るいシアン"
        .AddItem "明るい赤"
        .AddItem "明るいマゼンダ"
        .AddItem "明るい黄"
        .AddItem "明るい白"
        .ListIndex = 0
    End With
End Sub

Private Sub List1_Click()
    BackColor = QBColor(List1.ListIndex)
End Sub

投稿時間:2006/11/22(Wed) 10:27
投稿者名:たけ
Eメール:
URL :
タイトル:
Re^2: 選択した色で背景色を変更
ありがとうございます。
上手くいきました。

本当は、赤、緑、青の3色組み合わせ使用して細かく設定したかったのですが、
16進や10進でやりたかったのですが。

投稿時間:2006/11/22(Wed) 12:03
投稿者名:たけ
Eメール:
URL :
タイトル:
Re^3: 選択した色で背景色を変更
> ありがとうございます。
> 上手くいきました。
>
> 本当は、赤、緑、青の3色組み合わせ使用して細かく設定したかったのですが、
> 16進や10進でやりたかったのですが。


まずは、スクロールを使用してやってみました。

Private Sub HScroll1_Change()
    BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)
End Sub

Private Sub HScroll2_Change()
    BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)
End Sub

Private Sub HScroll3_Change()
    BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)
End Sub