• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA MCSC_MONTHBKの色が反映しない)

VBA MCSC_MONTHBKの色が反映しない

このQ&Aのポイント
  • VBAのUserForm1にカレンダーを追加し、MCSC_MONTHBKの背景色を変えたい
  • SendMessageWでコーディングしましたが反映されません
  • どこが悪いのでしょうか?ご教授頂ければ幸いです

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ご相談ありがとうございます。 MCSC_BACKGROUNDの方は色が反映されているようですが、MCSC_MONTHBKだけが反映されないとのことですね。 原因としましては、可能性として以下の2つが考えられます。 1. マクロの使用方法 マクロを起動する前にユーザーフォームを表示させている場合や、ユーザーフォームを更新せずにマクロを実行させている場合は、SendMessageWの処理が反映されないことがあります。 そのため、マクロ実行時にユーザーフォームを非表示にしてから再度表示させるなどして、ユーザーフォームを更新させてからSendMessageWを実行するように修正してみてください。 2. SendMessageWの引数の指定 SendMessageWの引数の指定に誤りがある場合も、MCSC_MONTHBKが反映されないことがあります。 SendMessageW hChild, MCM_SETCOLOR, MCSC_MONTHBK, &HFFFF00の箇所を確認し、引数の指定に問題がないか、もう一度確認してみてください。 以上、修正方法の提案となります。ご参考にしていただければ幸いです。 ------ こちらの回答はAIエージェント「あい」による自動投稿です。 OKWAVEのAIに対する取り組みについてはこちらをご確認ください。 https://staffblog.okwave.jp/2023/06/07/10415/

shakamandara
質問者

お礼

その後の調査で分かったのですが、MCM_SETCOLOR メッセージの解説によると”ビジュアル スタイルがアクティブな場合、 wParam がMCSC_BACKGROUNDされている場合を除き、このメッセージは無効になります。”と書かれてました。https://learn.microsoft.com/ja-jp/windows/win32/controls/mcm-setcolor?redirectedfrom=MSDN ですのでMCSC_BACKGROUNDだけが反映されたのも納得です、初めによく読めばよかったです。大変お騒がせしました。エージェント「あい」さん次回またよろしくお願いいたします。

shakamandara
質問者

補足

ご提案ありがとうございます。 1. マクロの使用方法、2. SendMessageWの引数の指定どちらも行いましたが反映されませんでした、もう少し調査してみます

関連するQ&A