• ベストアンサー

excel色のついているセルだけをコピーするマクロ

お世話になります。エクセル2013です。 Y列にある色のついているセルだけをコピーするマクロを作成したいのですが、ネット上によく似たモノ?もあるのですが×です。私にはできずギブアップしています。 ※コピーしたあとは別のソフトで利用します。 どのようなVBAになるのかご教授いただければ幸いです。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1646/2496)
回答No.4

黄色ということですので ご要望の通りコピーだけです。 Sub Test() Range("Y2").Value = "Test" Range("Y2").AutoFilter 1, RGB(255, 255, 0), xlFilterCellColor Range(Range("Y3"), Cells(Rows.Count, "Y").End(xlUp)).Copy End Sub

raminosuke
質問者

お礼

皆様ありがとうございました。いろいろと勉強になりました。

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

その他の回答 (5)

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

VBAには(本件はエクセルです)Findというセル(範囲)を対象とするメソッドがあり、 相当前のバージョンから、書式(Format)を指定して、該当を探せます。 参考までに、それでやってみると下記。 下記は、データがA列にあり、定数 vbYellowでヒットする形の書式設定がしてあるとした場合です。 WEBのMougeの記事を修正したものです。 結果はK列にセットします。 ーー 標準モジュールに Sub Sample() Dim c As Range Dim Rng As Range Dim 実験結果 As Range Dim firstAddress As String Set 実験結果 = Range("A1:A1000") Application.FindFormat.Clear Application.FindFormat.Interior.Color = vbYellow Set c = 実験結果.Find(What:="*", SearchFormat:=True) 'range()は不要。セルの不問が * です。 If c Is Nothing Then MsgBox "該当データはありません" Exit Sub Else firstAddress = c.Address Set Rng = c '------該当データをK列への書き出し r = Range("K1000").End(xlUp).Row Cells(r + 1, "K") = c.Value '----- Do Set c = 実験結果.Find(What:="*", _ After:=c, _ SearchFormat:=True) If c Is Nothing Then Exit Do If c.Address = firstAddress Then Exit Do '------該当データをK列への書き出し r = Range("K1000").End(xlUp).Row Cells(r + 1, "K") = c.Value '----- Set Rng = Union(Rng, c) Loop End If End Sub コピー貼り付けをするには、K列データをコピーするVBAを加え、実行し、ただちに(このコピーモードが有効なうちに)目的のものに手動(質問者の希望)貼り付けする。

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

コピー先には、手操作で貼り付ける、としても、難しい問題があるようだが。 A列にデータがあり、セルの塗りつぶしのセルが所どころあるとして、(色はColorIndexで設定方式として)、初歩的なやり方ですが、 標準モジュールに Sub test04() Range("A2:A1000").Select '<ーーY列に修正のこと i = 1 For Each cl In Selection If cl.Interior.ColorIndex <> xlNone Then cl.Copy Cells(i, "K") ’<ーー好きな列に修正のこと i = i + 1 End If Next Range("K1").CurrentRegion.Copy End Sub メモ帳に貼り付けは、(文字数字記号などのみで)うまく行くようだが、ワードに貼り付けは罫線まで張り付けてしまう。 データ値は1列に上から下の形だが、それでよいのか?(それを整えるのに、手操作の時間がかかるだろう)。 貼り付け先のソフトが違うと(エクセル以外だと)、プログラムででこれらの操作を完遂するのは難しいと思う。 APIなどを使う必要があるかも。オブジェクトのコピー方式では、ソフトによって オブジェクトの決め方、場所の捉え方が違うので、素人(小生)には難しい。

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

あと ネット上によく似たモノ とはどこなのかも記載したほうが、どれくらいのものでギブアップしてるのかわかります。同じようなコードの回答がついてもしかたがないですよね。 それから2013なら色フィルターが使えますからそれを利用したらVBA使わなくても手動でコピペできますよ。

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

質問が不完全。 コピーした後、どのセルに張り付けるのかを書かないと、回答例が作れない。 こいう大雑把なっ思考や表現する人は、コンピューターには向かないおそれあり。 excelは現状バージョンでは関数で、セルに色が着いているセルを判別できない仕組み。 だからVBAを使うことになり。あまりそういうものを好きでなさそうだが、どうかな。 「入力規則」で色がついているなら、操作で、「セルの選択」の中に「データの入力規則」がある。 VBAでは、コード2、3行の見込み。

raminosuke
質問者

補足

大雑把な質問の仕方で申し訳ありません。 最終的にコピーした後は別のソフトに張り付けるので、VBAで色付きセルのコピーできればと考えています。 ちなみにこの色は手動でセルに色付け(黄色)したモノです。 Excelのバージョンは2013です。 よろしくお願いいたします。

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

> よく似たモノ?もあるのですが×です。私にはできずギブアップしています。 回答されたVBAをご自身のケースに合わせられないのでしたら、具体的にどこからどこまでをどこにコピーするのか(Y列だけでは分からない)記載しないとお互い時間の無駄になります。

raminosuke
質問者

補足

貴重な時間を使って書き込みして頂きありがとうございます。 具体的にはY列の3行目から100行目くらいの範囲にある黄色のセルのみをコピーしたいです。 その後は別のソフトに張り付けるので必要ありません。

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

関連するQ&A

  • ある条件を満たすセルに対応する行のセル内容をコピーして・・

    ある条件を満たすセルに対応する行のセル内容をコピーして・・  いつもお世話になっております。エクセルVBAのほぼ初心者です。 ある列の一部(たとえばE100~200)において、ある条件を満たすセル(たとえば<30)を すべて検索して(たとえばE110とE130)、そのセルの行にある別列のセル内容(たとえば A110とB110、およびA130とB130)をコピーして、別のワークシートのとある場所(たとえ ばB2)に貼り付ける。  というようなマクロを作成したいのですが、自分の力量では難しいのです。。  Do~Loopなどを利用すればよいのでしょうか?  いい方法がありましたらどうぞよろしくお願いいたします。

  • VBマクロ 色の付いたセルを含む行をコピーしたい。

    VB初心者です。 こちらでご指導頂きながら勉強しております。 今回もどなたかご教授お願い致します。 G列~R列内の色の付いたセルを含む行を 次のシートにコピーしたいのですが… マクロを組んで実行したいと思っております。 どなたかアドバイス宜しくお願い致します。

  • excel VBA 緑色の付いたセルをすべてコピー

    お世話になります。excel2007です。 緑色の付いたセルをすべてコピーするマクロを作成したいのですが・・・ マクロの記憶の実行 検索(ctrl + F) ⇒ オプションでセルを緑 ⇒ すべて検索 ⇒ 検索結果をすべて選択(ctrl + A) ⇒ 検索を閉じる ⇒ コピー(ctrl + C) マクロの記憶の終了 エクセル上ではしっかりコピーできています。 VBAは以下の通りでした Sub 緑色のセルをすべてコピー() ' 緑色のセルをすべてコピー Macro    With Application.FindFormat.Interior     .PatternColorIndex = xlAutomatic     .Color = 5287936     .TintAndShade = 0     .PatternTintAndShade = 0    End With    Selection.Copy End Sub このマクロを実行しても、現在選択されているセルを コピーしてしまいます(緑色を検索してくれないです)。 どのようにVBAを編集すればよろしいのでしょうか??

  • Excel 2007 マクロ セルの色のカウント

    Excel 2007 マクロ セルの色のカウント 表に複数の色がセルについています。 色がついているセルの隣の列に「1」を返したいです。 どのようなマクロになりますでしょうか。 色がついている列は1行でC列になります。 ご回答よろしくお願いします。

  • Excel2010 セルのフォントの色

    Excel2010で、任意のセルのフォントの色が「赤」だったら、その列の空のセルに「赤」等のフラグを立てて、条件付きで列に色を付けたい。 VBA等マクロは使えません。 なんとか関数で対応したいと思っています。 ご教示方、よろしくおねがいします。

  • Excel2000 関数でセルに色をつけたい。

    Excel2000を利用しています。 セルの計算結果によってそのセルに色をつけたい(塗りつぶし)と思っています。 関数のみでセルに色をつけることは可能でしょうか? ユーザー関数(マクロやVBAを利用する?)を使わないと無理なのでしょうか。

  • マクロ セルの値に応じてセルに色を付ける

    マクロを利用して、セルの値に応じてセルに色を付ける方法について教えて下さい。 A列の値がA~Dの場合、A列~最終列のセルをそれぞれの色で塗りつぶしたいと思っております。 アドバイスの程、よろしくお願い致します。

  • Excelマクロである条件のセル間(行方向)に色を付けたい

    Excelマクロである条件のセル間(行方向)に色を付けたい 例えば、エクセルのあるセルに"A"が書かれていた場合、次にその行のセルに"円"と書かれているまでは、続く行のセルには色をつけるようにしたいのですが、良い方法を教えて頂けないでしょうか? 対象となるシート(列方向)に、今回のパターンが複数存在し、 それぞれにこの処理を実施することを想定しております。 (イメージ画像を添付します) お恥ずかしい話、当方VBAには明るくありませんので、簡単なサンプルコードを示して頂けると幸いです。

  • エクセル2003で別のマクロで選択したセルに別のシートからコピーして貼り付けるマクロ

    別のマクロで選択したセルに別のシートからコピーして貼り付けるマクロ、どうしても、このマクロが作れないです。 難題すぎて・・・・ 貼り付けるセルの値は選択ボタンによって変わる仕様ですが、エクセル2003で可能なんでしょうか? 難しすぎてコードが全然解らない状態です どなたかご教授願えれば幸いです。

  • 範囲が変化する可視セルをコピーするマクロ

    エクセル2013で注文品の表を作成しています A~Pまで列があり列は固定、行数はデータ量に応じて毎回変化します そこで質問なのですが 1.Aの得意先No.をフィルターにかけて特定の得意先のデータのみ   抽出して別シートにコピーするというマクロを作りたいのですが、   行数が変化する可視セルをコピーするにはどのようにすればいいでしょうか? 2.1で作成した表はメールで客先に送る為、コピー元のデータがあるシートは   削除したいのですが問題ないでしょうか? VBA初心者なので分かりやすく教えていただけると助かります。 よろしくお願いします。

このQ&Aのポイント
  • 暴力的な人が順応できる学校体制について考える
  • 暴力的な行為の原因として指導者の体罰や閉鎖的な処遇があるのか
  • 血の気の多さがコントロールできないため、暴力的な行為が横行している例がある
回答を見る

専門家に質問してみよう