[[20200525115436]] 『セルの塗りつぶし色を16進数で書きたい』(rev04lpo) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セルの塗りつぶし色を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 >


こんにちは ^^ 
こちらでは、きれいな、薄いうぐいす色が表示されますよ。
セル、シートの指定等でエラーになっていませんでしょうか。
あり得ない16進数だと、型違いになるかもしれません。2016
なので。。。^^;。。。m(_ _)m
(隠居じーさん) 2020/05/25(月) 12:34

 私もエラーにならないですねぇ。(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

追記します。
エラー1004は存在しないオブジェクトに対して何かを実行しているときに発生するようなので、
Cells(1, 3).Interior.Color = RGB(226, 239, 218)

ActiveSheet.Cells(1, 3).Interior.Color = RGB(226, 239, 218)
にしましたが、やはりエラーでした。
また
WorkSheets("Sheet1").Cells(1, 3).Interior.Color = RGB(226, 239, 218)
でもだめでした。

別の言語だとエラーが発生したあとコードを書き直しても前回のエラーが残っており、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.