• ベストアンサー

「 MsgBox(Me.BackColor)」がエラーになる。

Form1の背景の色を取得したいので、 Form1のイベントプロシージャーに MsgBox(Me.BackColor) としたところ、図のようなエラーになります。 (引数 'Prompt' は型 'String' に変換できません。) デバッグ開始をする前にビルドしても正常終了になります。 VBAでは全く同じコード を実行してもうまくいきます。 ヘルプも呼んでみたのですがよくわかりませんでした。 どうすればVBでも背景の色コードを取得することができるのでしょうか? よろしくお願いします。

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

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

Me.BackColorプロパティの型はSystem.Drawing.Colorですが、MsgBox関数内でString型に変換できなかったためのエラーとなっています。 Color型から色コードを得るにはToArgbメソッドを使用します。 MsgBox(Me.BackColor.ToArgb) あるいは色の名前を取得するのであればNameプロパティを用いて、 MsgBox(Me.BackColor.Name) とします。 VBAで同じコードがエラーを発生させないのは、VBAではフォームのBackColorがColor型ではなくLong型だからです。

nifufu2
質問者

お礼

ご回答ありがとうございます。できました!