• 締切済み

Excel、で染められたセル背景の値の抜き出し

Excelで ボタンを押します。 (1)、そうすると、ポインターで合わせたセルにダブルクリック(指でポポンッと)を押すとそのセルの背景色は水色に代わる、というモードに切り替わります。 もう一度そのボタンを押すとそのモードが終了し普通に戻ります。(水色の背景色は使用者の消すという意図が働かない限りそのままにします。) (2)、セルC2に行番号を指定します。(1)とは違うボタンを押すと 指定された行番号の、空白を含めた(D:W)の値の内、(1)でセル背景色が水色に変わったセルの値だけがセルF2から右に向かって、隙間なく詰められ、抜き出される形にしたいです。 できますかね? よろしくお願いいたします。

みんなの回答

  • kkkkkm
  • ベストアンサー率65% (1625/2467)
回答No.9

> 指でポポンとして、不可視化で塗りつぶされたセルを青く塗りつぶす 条件付き書式はセルの値もしくは計算の結果で書式を決めるはずですから、ダブルクリックでどこかのセルの値を変更してその値に従って青く塗りつぶすという条件して最後に適用すれば可能だと思います。 以前はすべてのセルが対象でしたので、ボタンプッシュで書き替えるセルは1個で良かったですが、セル一個一個に対応するセルを利用できるようにする必要があります。 また、この場合この回答のいままでのコードをかなり変更しないといけなくなります。

961awaawa
質問者

お礼

>また、この場合この回答のいままでのコードをかなり変更しないといけなくなります。 変更するとどうなりますか?

全文を見る
すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率65% (1625/2467)
回答No.8

そういう条件付き書式を作成してやればできますが、 ↓ そういう条件付き書式を作成できればできますが(条件次第)

961awaawa
質問者

お礼

まだまだExcelには若輩者の身なんで理解が足りてません。

961awaawa
質問者

補足

指でポポンとして、不可視化で塗りつぶされたセルを青く塗りつぶすか、青く変えるタイプの条件付き書式ってことですか?

全文を見る
すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率65% (1625/2467)
回答No.7

> 条件付き書式で不可視化された物は条件付き書式で青く塗りつぶせる そういう条件付き書式を作成してやればできますが、 条件によって書式をかえるのはVBAでやらなくても条件付き書式でできるというのは、そういう意味ではありません。A2に=A1*3でA1の3倍のデータをA2に表示できるのにそれをVBAでやらなくてもいいでしょと同じ意味です。

961awaawa
質問者

お礼

御無沙汰しておりますkkkkkm さん。このコロナ禍、如何お過ごしでしょうか?過去の数々のご解答、大変感謝いたします。 乱数を見てると様々な想像が沸き起こってまた質問したい衝動に駆られ戻ってきました。いつになるかは分からないのですが、また質問しますのでその時に宜しかったらまたお付き合いお願い致します。

全文を見る
すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率65% (1625/2467)
回答No.6

> VBA じゃなくてもできるんですか? 条件によって書式をかえるのはVBAでやらなくても条件付き書式でできますよね。

961awaawa
質問者

お礼

条件付き書式で不可視化された物は条件付き書式で青く塗りつぶせる、という解釈でよろしいでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率65% (1625/2467)
回答No.5

> VBA で作ってたら大丈夫だったってことでしょうかね? VBAでやらなくても解決できることがわかっているのにわざわざVBAでやるのはナンセンスだと思います。 また、VBAで作っていても状況によってはもとのコードをほとんど書き替えなければいけないということも起こりえます。 なんでもそうだと思いますが、後から継ぎ足し継ぎ足しをすればどこかで行き詰まることも往々にしてあるでしょう。 ようは、最初からきちんと計画してやりましょうという話だと思います。

961awaawa
質問者

お礼

>VBAでやらなくても解決できることがわかっているのにわざわざVBAでやるのはナンセンスだと思います。 VBA じゃなくてもできるんですか?

961awaawa
質問者

補足

>ようは、最初からきちんと計画してやりましょうという話だと思います。 本当にそうだと思いました。ご指摘ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率65% (1625/2467)
回答No.4

> セルの値が不可視化されてる場合にも青く塗りつぶせるようにする 条件付き書式で不可視にしてるなら無理です。

961awaawa
質問者

お礼

やっぱりそういった回答になってきますよね。VBA で作ってたら大丈夫だったってことでしょうかね?条件付き書式に着手するまで にVBA でしてたら融通が効くという流れですよね。

全文を見る
すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率65% (1625/2467)
回答No.3

> 間違って水色に塗りつぶしたセルに、このモードのまま、再度ポポンとダブルクリックすると元に戻る方法 https://okwave.jp/qa/q9849262.html のNo4で状態を逆転させる方法の回答をしています。同じような質問をしなくて済むようにやり方を覚えてください。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Application.Intersect(Target, Range("D:W")) Is Nothing Then Exit Sub Else If ToggleButton1 = True Then Cancel = True If Target.DisplayFormat.Interior.Color = 15773696 Then Target.Interior.ColorIndex = xlNone Else Target.Interior.Color = 15773696 End If End If End If End Sub > 指定した行番号の水色背景を一斉に元に戻す方法もお願いしたいです。 これも過去に同じようなパターンで方法を示したと思います。 Range(Cells(Range("C2").Value, "D"), Cells(Range("C2").Value, "W")).Interior.ColorIndex = xlNone

961awaawa
質問者

お礼

パソコン苦手な私にも、パソコンに対する抵抗感を与えず、難なく立ち向かえる状態にしてくださった方々、特にkkkkkmさん、本当に感謝します。

961awaawa
質問者

補足

セルの値が不可視化されてる場合にも青く塗りつぶせるようにするにはどうしたら良いですかね?

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

エクセルで使われる表現を使うほうがよい。 >染められたセル セルの塗りつぶしの色、のことだろう。 >セル背景の値 エクセルを分かってないようだ。エクセルのシートのデータは、セルの値が主で、書式などは「従」だ。 歴史沿革的にも、表計算ソフトのシートでは「値」が第1だ。 ーー こういう質問が多いが(質問者も2度目ではないか?)、エクセル関数では、セルの塗りつぶしの色は、捉えられない。だからそのセルの値もどれを足してよいかわからず、、合計を計算したりできない。 VBAならできる可能性はある。 ーー しかし、 #1の回答のように、自分で、セルの塗りつぶしの色を行った場合は、色パレットの色コードなどをどう設定したか、とか色コードは何を設定したか、判るが、他人が設定したものは、いろんなやり方があるので、そ例外の人には、すぐは判らない。 VBAでも組んで見当を付けて、探り当てれば、出来る・判る、だろうが。 ーー 条件付き書式などで、「数式」で条件を設定した場合なら、SUMIFS関数などの条件にそれを取り入れて、関数で計算できないか考えてみたら。 その条件がどうなっているか認識したことあるか? 例として、一番簡単な例では=A1>10なんて条件のもあり得るだろう。その場合 =SUMIF(A1:A8,">10") で色を付けたセルの値の、合計が出る。

全文を見る
すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率65% (1625/2467)
回答No.1

(1)のためのボタン、ActiveXコントロールのトグルボタンを作成してください。 該当するシートのシートモジュールに以下を (ダブルクリックしたときに該当セルの編集モードを有効のままにしたい場合Cancel = Trueを外してください) Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Application.Intersect(Target, Range("D:W")) Is Nothing Then Exit Sub Else If ToggleButton1 = True Then Cancel = True Target.Interior.Color = 15773696 End If End If End Sub (2)のボタンはどちらでもいいです、ボタンのコードに Sub ボタン_Click() Dim i As Long, mCount As Long For i = Range("D:D").Column To Range("W:W").Column If Cells(Range("C2").Value, i).DisplayFormat.Interior.Color = 15773696 Then Range("F2").Offset(0, mCount).Value = Cells(Range("C2").Value, i) mCount = mCount + 1 End If Next End Sub

961awaawa
質問者

お礼

すみません。質問しそびれてました。 間違って水色に塗りつぶしたセルに、このモードのまま、再度ポポンとダブルクリックすると元に戻る方法と、 指定した行番号の水色背景を一斉に元に戻す方法もお願いしたいです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel行番号指定で黄色セルの個数合計

    行番号を何処かのセルに入れて指定をし、 空白を含めた(D:W)の値の内、 黄色に染まってる物の合計個数を行番号下のセルに入れたいです。 どのようにすればよろしいですか。

  • Excel VBA 全てのセルを読み込み、背景色で判断

    VBA初心者です。環境はWindowsXP,Excel2003です。 よろしくお願い致します。 1~3のシートの全てのセルを読み込んで、背景色が赤色のセルの文字をシート4にコピペしたいのです。 このとき、赤色になるセルの列は必ずF~ABまで結合されています。 替わるのは何行目かという行数のみです。 (結合セルは、最初のH列と見なせば良いのであれば気にしないで下さい。) さらに、赤色のセルをコピペする際に、 赤色のセルから上に上がって、 最初の空白のあるセルの下3行も一緒にコピペして シート4に連れて行きたいのです。 ほとんどのセルは文字と数字で埋まっていますので、 空白セルを条件にすると組み易いかと考えました。 【シート4】は下記のようになる予定です。  ABCDEFGHIJKLMNOPQRSTU 1~背景色が赤かったシート1のセル~~~~~ 2~を上に行って最初の空白のあったセルの~~ 3~下3行の丸々コピペ~~~~~~~~~~~ 4~~背景色が赤かったシート1のセル内容~~ 5~背景色が赤かったシート2のセル~~~~~ 6~を上に行って最初の空白のあったセルの~~ 7~下3行の丸々コピペ~~~~~~~~~~~ 8~~背景色が赤かったシート2のセル内容~~ 9~背景色が赤かったシート1のセル~~~~~ 10~を上に行って最初の空白のあったセルの~~ 11~下3行の丸々コピペ~~~~~~~~~~~ 12~~背景色が赤かったシート1のセル内容~~ カナリの初心者なため、組まれたものは読めるのですが、 最初から組む事がなかなか出来ません。 お手数をおかけしますが、 どなたか分かる方がいらっしゃったらお願い致します。

  • EXCEL スマートにセルの値をコピペしたい

    EXCEL2003を利用しています。 写真のようにとある表があります。(範囲A2:K7セルとします) この表は、タイトル枠を除いて、水色、赤色、白色の3色の背景色があります。 この表の行から、値をひとつ選んで、新たに表を作成します。(範囲A11:K12とします) 値を選ぶルールは下記の通りです。  ・ルール1 白いセルがあれば、そのセルの値を採用する。  ・ルール2 白いセルがなければ、青いセルの値を採用する  ・ルール3 白いセルも青いセルもなければ、赤いセルの値を採用する  ・ルール4 Noは出来るだけ小さい値であること この作業を延々と手作業で行っており、VBAで行おうとするも、しっくりとしたものができませんでしたので、投稿させていただきました。 どうか、良いお知恵を授けていただきたいです。よろしくお願いいます。

  • 他のセルの値で、背景の色を変えたい

    Excel2003を使っています。 例えば、 ・A1セルの値が"apple"に変更されたら、A2セルの背景の色が赤になる ・A1セルの値が"apple"以外に変更されたら、A2セルの背景の色が白になる ような設定は可能でしょうか? 自分自身の値により、自分の背景の色を変えるのは、条件付き書式でできるのですが、他のセルの値により変化させる方法が分かりません。 ご存じの方がいらっしゃいましたら、教えてください。

  • Excel2007で行番号を指定してセル範囲を

    Excel2007で行番号を指定してセル範囲を抜き出したいです。 sheet2のF8に行番号を入れてsheet3のセル範囲(C:T)の値とセル範囲(AB:AS)の値を取り出して sheet2の(A2:AQ2)に入れます。目で分かりやすい様に背景色か色線で4等分したいです。 よろしくお願いいたします。

  • エクセル。あるセルに入っている値と同じ番号の行に

    A列に、1から3万くらいまでの大きさの連続しない値が入っているとします。 行数は1000行くらいです。 この数字のデータを、そのセルに入っている値と同じ番号の行に入れたいのです。 たとえばA列に上から、1、5、13、、、という数字が入っている場合、 A1に1、その後空白、A5に5、その後空白、A13に13、という具合です。 どのようにすれば良いでしょうか。 本当はA列以外に10列に値が入っていまして、 これらもA列の数字と一緒に移動させたいと思っています。 こういった場合に適用できる方法をお教え願えたら嬉しいです。 よろしくお願いいたします。

  • IF関数でセルの値だけでなく背景色も同じにする方法

    sheet2のC1に IF(sheet!$A$2="","",sheet!$A$2) を入力するとsheet2C1のセルにsheet1A2の値が入ります。 もしsheet1A2の値が空白ならsheet2C1も空白になります。 ここで質問なのですが、『sheet1A2の背景色を赤色にしていた場合、この背景色をそのままsheet2C1にも表示させる』にはどうしたらよいのでしょうか。 それともう一つ質問があります。 『sheet1A2に文字が入れば赤色、なければ塗りつぶしなし』を設定するにはどうすればよいのでしょうか。 条件付き書式を使うのかと思ったのですが、実際にやってみると上手くいきませんでした。 マクロは使わずに上記が可能なやり方がございましたらご教授ください。 どうぞよろしくお願いします。

  • セルの値が空白じゃないなら色を付ける

    セルの値が空白じゃないなら色を付ける、 という事をエクセルの条件付き書式でやりたいのですが、 <>"" としても、 ="<>""""" 変化してしまい、色が付きません。 「セルの値が空白じゃないなら色を付ける」にするにはどうすればいいでしょうか?

  • セルの背景色を数えたいのですが

    Excel2000で、数値や文字が入っているセルの一部に 「背景色」(塗りつぶし色)をつけております。 この中で、範囲指定をして「特定の背景色セル」だけをCountできるような関数はありますでしょうか? また、マクロでしたらどのようにすれば良いのでしょうか? マクロの知識はほとんどありません。 (↓)のカラーパレットの最下段の2色と同じ色を 個別に指定したいと思っております。 □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □ □ □ ■ □

  • エクセルでセルの先頭4文字から特定の値を表示

    宜しくお願いします。 タイトルのとおりですが、例を書きます。 A列に「1234-XXXXXX」と「5678-XXXXXX」(Xはランダムな数字)と空白セルが並んでいるとき、 D列に先頭の4文字が ・「1234」の場合「山」 ・「5678」の場合「川」 ・空白かその他の値の場合セル背景色を赤 ・空白セルに「1234-XXXXXX」や「5678-XXXXXX」を入力したら、背景色をなくし「山」「川」それぞれの値 と表示したいと考えています。 毎日シートをコピーして値はクリアし、さらにデータは その他のシートから行コピーし値貼り付けするので、 関数などの数式等だと消えてしまい、その都度式を コピー&ペーストしなければならないので、 できればセルに式入力する以外(マクロ?入力規則?) の方法ご教授いただけると助かります。 長く分かりづらいところがありましたら申し訳ございません。 宜しくお願い致します。

専門家に質問してみよう