[[20140901150725]] 『染めたセルの抽出方法』(マクロ 初心者) ページの最後に飛ぶ

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

 

『染めたセルの抽出方法』(マクロ 初心者)

今、仕事でセルに色をつけて色管理しているデータがあって、
その色をつけたセルの項目を別シートや別ファイルに
項目を書き出したいんですが、できますか?
ex)

  A B  C D  E
1   A1 A2 A3 A4
2  01   ■
3  02   ■    ■
4  03   

例えば↑のような表でA2の01、02とA4の02という項目の箇所のセルを
色を染めた場合、別シートか別excelファイルのA列1行目にA2 01 A2 02 A4 02と表示させる
という感じです。セル内には、基本何もデータは入りません。
わかりにくくてすみません。(■は、色を染めたセルです。)
マクロで可能ですか?

< 使用 Excel:Excel2010、使用 OS:Windows7 >


マクロについては別の方に回答を譲るとして。。。

色塗りセル(=網掛けセル?)にデータを入れていないとのことですが、現表のセルの表示方法について、
ダイレクトに網掛けを行うのではなく、条件付き書式をによる(条件としてセルに特定の値が入力された
場合)網掛けを行う方法に変更することは可能ですか。

うろ覚えで恐縮ですが、セルの網掛けの有無(あるいは種類)を検索することは結構大変だったかと記憶して
おります。

データの再投入の手間がどの程度なのかがわかりませんので、実現性に乏しいお話でしたらご容赦ください。

(ryopo^2) 2014/09/01(月) 15:50


 種類はめんどくさかったと思います・・・
 ただの網掛けなら簡単ですが、何色というのはまた大変です。
 色がついている、いないだけでよければこんな感じに出来ると思います。

    Sub しょ()
        Dim 列項目
        Dim 行項目
        With Application
            列項目 = .Transpose(.Transpose(Range("A1", Cells(1, Columns.Count).End(xlToLeft)).Value))
            行項目 = .Transpose(Range("A1", Cells(Rows.Count, "A").End(xlUp)))
        End With
        Dim r As Long, c As Long
        Dim Result
        With CreateObject("Scripting.Dictionary")
            For r = 2 To UBound(行項目)
                For c = 2 To UBound(行項目)
                    If Cells(r, c).Interior.ColorIndex <> -4142 Then
                        .Add 列項目(c) & " " & 行項目(r), ""
                    End If
                Next c
            Next r
            Result = Application.Transpose(.keys)
        End With
        Sheets.Add after:=Sheets(Sheets.Count)
        Sheets(Sheets.Count).Range("A1").Resize(UBound(Result, 1)).Value = Result
    End Sub

(稲葉) 2014/09/01(月) 17:23


こんにちわ。
返信おそくなりました。
ryopo^2様、稲葉様アドバイスありがとうございました。
マクロの方は、勉強しつつ試させてもらいますね。助かりました。
また何かあった時は、よろしくお願いしますね♪

(マクロ 初心者) 2014/09/03(水) 12:54


すみません。また助けていただけると助かります(TωT)
会社で確認したら、上記のような簡単な表ではなく、ちょっと複雑に変更されてまして…
もうちょっと複雑になってても大丈夫でしようか??
またお知恵をお借りしたいです。

 前回と列と行が逆に組み換わっていました。
 行は、A行にA1〜A7、B1〜B7がK7まで続いてます。
 列は、01〜10までの項目があって、それぞれ01の下にはパンダ、ブタ、ネコ、タヌキの項目があり、
 その下には、それぞれパンダ1、2 ブタ1、2あります。
 今回も、01のパンダ1のセルやブタ1や2のセルが染めてあります。
 
    01                02    〜
 パンダ  ブタ  ネコ  タヌキ  パンダ  ブタ 〜
 1 2 1 2  1 2 1 2  1 2 1 2〜
A1■   ■ ■
A2  ■
A3         ■   ■
A4 ■             ■

 染めたセルを一旦、違うシートに書き出して、確認して(指示者が)OKならば、ボタンをぽんっと押すと、
違うファイルのそれぞれパンダシート、ブタシート内のアドレス欄にA1 01などばーっと一覧に反映するみたいな事は、できないでしょうか??

 ちなみに「パンダシート1」「パンダシート2」「ブタシート1」「ブタシート2」は、こんな感じです。↓

 名前 日にち ○× アドレス      完了日 コメント
佐藤  9/20  ○  TEN 0101 A1 01 9/25 
佐藤  9/20  ○  TEN 0101 A1 01 9/25 
佐藤  9/20  ○  TEN 0101 A1 01 9/25 

↑こんな表でアドレス内のA1 01 の欄に染めたセルのアドレスをそれぞれ表示したいです。

 ・他にもネコとタヌキという項目もありますが、ネコ&タヌキは、不要です。
 ・基本的に、染めてあるか染めてないかだけの認識でOKです。色の判別は不要です。

すいません。手数ですがご教授くださいm(_'_)m

(マクロ超初心者) 2014/09/22(月) 14:39


 表がどうなっているのか詳細を教えてください。
	[A]	[B]	[C]	[D]	[E]	[F]	[G]	[H]	[I]	[J]	[K]	[L]	[M]	[N]	[O]	[P]	[Q]
[1]		1								2							
[2]		パンダ		ブタ		ネコ		タヌキ		パンダ		ブタ		ネコ		タヌキ	
[3]		1	2	1	2	1	2	1	2	1	2	1	2	1	2	1	2
[4]	A1	■		■	■												
[5]	A2		■														
[6]	A3					■		■									
[7]	A4		■													
 これでいいんですか?

 >染めたセルを一旦、違うシートに書き出して、確認して(指示者が)OKならば
 そのシートを見て確認するのでは都合が悪いのですか?

 >↑こんな表でアドレス内のA1 01 の欄に染めたセルのアドレスをそれぞれ表示したいです。 
 TENとか0101とか何のことか分かりません。
 「01」は何行目のことですか?
 名前や日付もどこから取ってきているのですか?

 >パンダシート1
 は1行目の「1」ですか? それとも3行目の「1」ですか?

 仕様が全く分からないのでどうにも出来ません。

(稲葉) 2014/09/22(月) 15:18


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.