Excel VBA質問箱 IV

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

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


8095 / 13645 ツリー ←次へ | 前へ→

【35121】リストボックス Cuore=Tane 06/2/21(火) 22:23 質問[未読]
【35125】Re:リストボックス Blue 06/2/22(水) 0:25 回答[未読]
【35174】Re:リストボックス Cuore=Tane 06/2/22(水) 21:28 お礼[未読]

【35121】リストボックス
質問  Cuore=Tane  - 06/2/21(火) 22:23 -

引用なし
パスワード
   リストボックス全体の色を変えることはできますけど、
部分的(例:1行目〜5行目)だけ色を変えるといった方法ができるのでしょうか?

いろいろVBAを組んでいましたが…

Private Sub UserForm_Initialize()
  
  ListBox1.List(ListBox1.ListIndex, 0) = ListBox1.BackColor("&H00C0C0FF&")
  
End Sub

これでもいかないし…。何か手立てはあるのでしょうか?

【35125】Re:リストボックス
回答  Blue  - 06/2/22(水) 0:25 -

引用なし
パスワード
   通常出来ません。

サブクラス化してオーナードローすればいけるかもとおもってやったことはあります。
が、MSForm.ListBox では LBS_OWNERDRAWFIXED をスタイルに設定できませんので、CreateWindowEx API でつくることになります。
これで通常の ListBox の動作は全て出来なくなります。
(AddItemやItem等は全て自分で SendMessage API をつかってつくりこまないといけない)

さらに、サブクラス化をするとEXEファイルに出来ないVBAではデバッグもロクにできなくなります。
変なところでブレイクしたら、Excelが死んだり変な動きをシマス。
(Windowsアプリがどのように動いているか理解していればこうなるのは周知のことですけど)

よって、やめておいたほうが良いでしょう。

【35174】Re:リストボックス
お礼  Cuore=Tane  - 06/2/22(水) 21:28 -

引用なし
パスワード
   ▼Blue さん:
>通常出来ません。
>
>サブクラス化してオーナードローすればいけるかもとおもってやったことはあります。
>が、MSForm.ListBox では LBS_OWNERDRAWFIXED をスタイルに設定できませんので、CreateWindowEx API でつくることになります。
>これで通常の ListBox の動作は全て出来なくなります。
>(AddItemやItem等は全て自分で SendMessage API をつかってつくりこまないといけない)
>
>さらに、サブクラス化をするとEXEファイルに出来ないVBAではデバッグもロクにできなくなります。
>変なところでブレイクしたら、Excelが死んだり変な動きをシマス。
>(Windowsアプリがどのように動いているか理解していればこうなるのは周知のことですけど)
>
>よって、やめておいたほうが良いでしょう。

やっぱり無理ですか…(T_T)
何かしら方法があるのでは?と思ったのですが…。

とりあえず、Excelシート上でしてみます。

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