[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セルの塗りつぶし色を16進数で書きたい』(rev04lpo)
Cells(1 + i, 3).Interior.Color = &HDAEFE2
↑このようにセルの塗りつぶし色を指定したいのですが、
実行時エラー 1004;
アプリケーション定義またはオブジェクト定義のエラーです。
と出てしまいます。
.ColorプロパティはRGBじゃなきゃダメなのかな?と思ったのですが&HDAEFE2をRGBに即座に変換することもできないですし…
ならばと思って以下のように書き直しました
Cells(1 + i, 3).Interior.Color = "&HDAEFE2"
すると1度はきちんと通ってセルの色が変わりました。
ですが、2度目に実行すると
実行時エラー 1004;
アプリケーション定義またはオブジェクト定義のエラーです。
とまた出てしまいました。
なぜ1度は通ったのかもわかりません。
またRGBにすればいいのはわかるのですが…ファームのBackColorの指定は16進数なので毎回ファームのBackColorをコピーしてRGBを調べて…というのも嫌ですし、統一性もなく気持ちが悪いです。
< 使用 Excel:Excel2019、使用 OS:Windows10 >
私もエラーにならないですねぇ。(Microsoft365,Win10) 別の原因じゃないですか?
念のため、トラブった時と全く同じ状況で、ここだけ変えるとエラーにならなくなるのか検証してください。 ↓ Cells(1 + i, 3).Interior.Color = RGB(226, 239, 218)
(半平太) 2020/05/25(月) 13:32
ご返答、検討ありがとうございます。
Cells(1 + i, 3).Interior.Color = RGB(226, 239, 218)
などRGBで指定したところ、やはり同様のエラーになってしまいました。
また、変数を使ったり、それより前のコードで何かしらのエラーがあった可能性もあるかと思ったので、フォーム上にテスト用にボタンを設置して、クリックしたときに
Private Sub CommandButton1_Click()
Cells(1, 3).Interior.Color = RGB(226, 239, 218) End Sub としました。 変数等他の状態がクリーンな状態で、テストボタンをクリックしたところ・・・ やはり 実行時エラー 1004; アプリケーション定義またはオブジェクト定義のエラーです。 となってしまいました。 (rev04lpo) 2020/05/25(月) 18:38
別の言語だとエラーが発生したあとコードを書き直しても前回のエラーが残っており、Cleanするまでエラーを吐き続けることがままあると思うのですが、そういった類でしょうか?
(rev04lpo) 2020/05/25(月) 18:55
こんばんは ^^。。。 何なのでしょうね、まさか、シートに保護がかかっているとかではないですよね。 ユーザーフォーム、作ってみましたが、こちらではエラーはでませんでした。 どうやら、私の手には負えないようです。お詳しい方のさらなる、回答をお待ちく ださいませ。Excel 2016 Win10、でした。。。でわ。。。m(_ _)m (隠居じーさん) 2020/05/25(月) 19:13
・・・まさか保護なんて
と思ってみてみたところ、ごめんなさい。
シートに保護、かかってました。
とはいえ、同一プロシージャの最初のほうでUnprotectをしており、分岐などで呼ばれない可能性もないようにしてあったのですが、どうやらUnprotectがされていないようでした。そのため、塗りつぶしの直前で改めてUnprotectをしたところ、ちゃんと通りました。
とりあえず、完全にわたしのミスでした。
お恥ずかしい
みなさまほんとうにすいませんでした。
(rev04lpo) 2020/05/25(月) 19:52
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.