Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5076 / 13646 ツリー ←次へ | 前へ→

【52712】テキストボックスをカラーパレットの色で塗る けにち 07/11/27(火) 14:51 質問[未読]
【52715】Re:テキストボックスをカラーパレットの色... ichinose 07/11/27(火) 20:17 発言[未読]
【52737】Re:テキストボックスをカラーパレットの色... けにち 07/11/29(木) 19:59 お礼[未読]

【52712】テキストボックスをカラーパレットの色で...
質問  けにち  - 07/11/27(火) 14:51 -

引用なし
パスワード
   Userformにtextboxを配置して、そこに数字を入れるとそのtextboxが
指定したカラーパレットの番号の色に変更されるようにしたいのですが、
.backcolorプロパティに数字を指定してもうまくいきません。

たとえば、下記のようにすると

Private Sub TextBox1_Change()
  TextBox1.BackColor = 3
End Sub

赤にならずに黒くなります。
("3"はカラーパレットでは赤ですが、RGBでは黒に近い色です。)

そこで質問ですが、
(1) textboxにカラーパレットの番号を直接指定して色を変える方法はあるか?
(2) カラーパレットの色をRGBに変換する関数などはあるか?

以上、よろしくお願いします。

【52715】Re:テキストボックスをカラーパレットの...
発言  ichinose  - 07/11/27(火) 20:17 -

引用なし
パスワード
   ▼けにち さん:
こんばんは。

>Userformにtextboxを配置して、そこに数字を入れるとそのtextboxが
>指定したカラーパレットの番号の色に変更されるようにしたいのですが、
>.backcolorプロパティに数字を指定してもうまくいきません。
>
>たとえば、下記のようにすると
>
>Private Sub TextBox1_Change()
>  TextBox1.BackColor = 3
>End Sub
>
>赤にならずに黒くなります。
>("3"はカラーパレットでは赤ですが、RGBでは黒に近い色です。)

このChangeイベントが妥当か否かは???ですが、

Private Sub TextBox1_Change()
  With TextBox1
    If Val(.Value) >= 1 And Val(.Value) <= 56 Then
     .BackColor = ActiveWorkbook.Colors(Val(.Value))
     End If
    End With
End Sub
これで試してみてください

【52737】Re:テキストボックスをカラーパレットの...
お礼  けにち  - 07/11/29(木) 19:59 -

引用なし
パスワード
   ichinose さん

教えていただいたとおりやってみて、
色を変えることができました。
Changeイベントでは使いにくいのでほかの方法で
変更できるようにやってみます。

ありがとうございました。

5076 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free