• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:空白セルには背景色を適用しない方法)

Excel2007で空白セルに背景色を適用しない方法

このQ&Aのポイント
  • Excel2007を使用している場合、特定の複数セルの背景色を変えるコマンドボタンを作成しています。しかし、セルに文字が入っていない場合には背景色を適用したくないと考えています。手作業で背景色を「色なし」に設定するのは手間がかかるため、コードや他の方法を検索して試してみた結果、行き詰まっています。初心者であることをお詫び申し上げますが、Excel2007で空白セルに背景色を適用しない方法についてご教授いただけないでしょうか。
  • Excel2007を使用しています。特定の複数セルの背景色をコマンドボタンで変える方法を実装しようとしていますが、「色なし」にするためのコードや他の方法がわかりません。セルに文字が入っていない場合には背景色を適用しないようにしたいと思っています。手作業で背景色を変えるのは手間がかかるので、簡単な方法があれば教えていただきたいです。
  • Excel2007を使用し、特定の複数セルの背景色を変えるコマンドボタンを作成しました。しかし、セルに文字が入っていない場合には背景色を適用したくありません。手作業で背景色を「色なし」にするのは手間がかかるため、コードや他の方法を検索して試してみましたが、うまくいきませんでした。Excel2007で空白セルに背景色を適用しない方法があれば、教えていただけないでしょうか。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

とりあえずカタイ手: Private Sub CommandButton1_Click()  dim h as range  for each h in Worksheets("ワークシート名").Range("P1,U1,Z1,P5,U5,Z5")  if h <> "" then   h.Interior.Color = RGB(174, 148, 196)  end if  next End Sub またわざわざマクロを使うまでもなく,ホームタブの条件付き書式▼で セルの値が 指定の値に等しくない ="" の時に色を付ける,などの設定を施してしまった方が簡単と思います。 なお >…というセルには文字が入っているのですが、空白セルになる場合もあり これらのセルの具体的な中身が, ○「手打ちで生データを入れているが,何も入れない空っぽのままのある」という意味なのか,それとも ○「数式が何かのデータか,もしくは""を計算している」という意味なのかによっても, 適切なマクロが変わる場合があります。 目に見える具体的なエクセルの内容をご相談で情報提供するよう心がけてみてください。

ihlzst
質問者

お礼

丁寧なご回答ありがとうございます。 ご教授頂いた内容で解決できました! >○「手打ちで生データを入れているが,何も入れない空っぽのままのある」という意味なのか,それとも >○「数式が何かのデータか,もしくは""を計算している」という意味なのかによっても,適切なマクロが変わる場合があります。 とおっしゃって頂いた通り、見た目は空白セルだけれども数式は入っている、というような場合もこれから出てきそうです。 その際にはご指導頂いたように具体的な内容を盛り込んで、また新しく質問させて頂きたいと思います。 画像も入れて頂きとても分かりやすかったです。 本当にありがとうございました。

その他の回答 (2)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

>コードで記述するのが良いのか、何か他の方法があるのか  ⇒既にマクロ組み込みされているのだからコード記述ではないでしょうか。   例えば、For Each~Next文とIF~Else文を利用してセルの内容が空白か否かで色設定・解除を記述してみて下さい。  他の方法は、条件付き書式設定になります。    >今後数が増えていきそう  ⇒対象セルの拡張規則を明示していないので何とも回答できません。  因みに条件付き書式設定は以下の通りです。 (1)P1を選択→ホーム→条件付き書式→新しいルール→指定の値を含む~を選択→セルの値欄で「空白なし」を選択→書式→塗りつぶしタブで色を選択→OK (2)後は、P1をその他の対象セルにコピー&貼り付け   

ihlzst
質問者

お礼

ご回答ありがとうございます。 コード記述の内容はまだまだ勉強不足ですが、教えて頂いた内容にトライしてみます。 ご教授頂いた方法も含めて、今後は最適な方法を選択できるように頑張りたいと思います。 また質問する際には何が必要な内容なのか、ということも今回勉強させて頂きました。 ありがとうございました!

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

初心者の場合今動いているのはそのままにしたい、かもしれない Private Sub CommandButton1_Click() Worksheets("Sheet1").Range("P1,U1,Z1,P5,U5,Z5").Interior.Color = RGB(174, 148, 196) For Each cl In Worksheets("Sheet1").Range("P1,U1,Z1,P5,U5,Z5") If cl.Value = "" Then cl.Interior.ColorIndex = xlNone End If Next End Sub という、(ミクロ的に無駄だが)訂正するような方法もあろう。

ihlzst
質問者

お礼

初心者心理ズバリ的中です(笑) まさしく今のものはそのままで使えたらいいなと思っていました。 アルファベットが並んでいるだけでもう難しいという先入観に捉われてしまいがちなのですが、教えて頂いた内容も試してみながら、理解できるよう少しずつ取り組んでいきたいと思います。 ありがとうございました!

関連するQ&A