• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【エクセルVBA】特定のセルに色をつける)

エクセルVBAで特定のセルに色をつける方法

このQ&Aのポイント
  • ブック1のsheet3で色のついたセルを、ブック2の対応するセルに反映させる方法を教えてください。20~30のシートがありますが、フォーマットは同じです。
  • エクセルVBAを使用して、ブック1のsheet3で色のついたセルと、ブック2の対応するセルを関連付けたいです。シートの数は20~30で、フォーマットは同じです。
  • エクセルVBAを使って、ブック1のsheet3で色のついたセルをブック2の対応するセルに反映させる方法を教えてください。シートの数は20~30あり、フォーマットは同じです。

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

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.6

すいません、一つ補足です。 > ブック1、sheet3のリスト上の氏名(佐藤、鈴木、田中・・・)は、 > ブック2でのsheet名では上から順に1,2,3・・・・と割り振られます。 とおっしゃっていますが、 今後の処理や閲覧の簡便性・応用性といった観点から、 シート名の付け方についてもう少し考慮されることをオススメします。 若しくはブック1の段階で名前の前に連番を付加するかどちらかですね。 要するに、ブック1の各行と、転記先のシート名に何らかの整合性を与えたほうが良いということです。 この程度の処理であればさほど問題になりませんが、 もう少し込み入った処理が必要になってくるとやはり若干戸惑います。

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

その他の回答 (5)

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.5

Sub sample() Dim Sh1 As Worksheet Dim Sh2 As Worksheet     Set Sh1 = Workbooks("sample1.xls").Worksheets("sheet3")     For i = 2 To Sh1.Cells(Sh1.Rows.Count, 1).End(xlUp).Row         Set Sh2 = Workbooks("sample2.xls").Worksheets(i - 1)         For j = 2 To Sh1.Cells(i, Columns.Count).End(xlToLeft).Column             If Sh1.Cells(i, j) <> 0 Then                 Sh2.Cells(j, 1).Interior.Color = vbRed             Else                 Sh2.Cells(j, 1).Interior.ColorIndex = xlNone             End If         Next j     Next i End Sub おそらく、コレでいけます。 データ開始行等、細かいフォーマットは私にはわかりませんので、 若干のずれが生じる可能性はありますが、残念ながらそこは与り知りません。 とは言え、上記の式を若干変えるだけで応用できると思います。 難しい処理文は一切無いと思っていますので、 どういう内容なのか読み取りつつ(勉強しつつ)、適宜応用くださいませ。 そうしないと、不具合が起きたときにご自身で手直しができませんから。

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

補足です。 当然のことですが、sheet3のリスト上の「氏名」が ブック2のシート名と「完全に一致する」事が条件です。 その条件に合わないとエラーで止まりますのでご注意ください。

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

~補足を引用~ 補足 図が見づらいかと思いますが、ブック1,sheet3のA列には行ごとに人物の名前が入っております。 一番上のA列を"佐藤"(A1が佐藤)だとすると、B1より右側以降のセルがブック2,"佐藤"シートの縦の列(A1から下)に対応しています。 ~引用終了~ フォーマットは理解しました。 ところで、 「色をつける条件」は? 「色をつけたいセル」は? その辺がやはり伝わってきません。 要するに・・ [ブック1.sheet3]が     A    B    C    D 1   氏名   項目1  項目2  項目3 2   佐藤   0    1    0 とある場合、差分が発生しているのは「C2」セル(佐藤の項目2)。 この場合、 [ブック2."佐藤"シート]が     A    B 1   項目1 2   項目2 3   項目3 と、用意されており、色をつけたいのは「A2」セル。 これが「氏名」ごとにシートを用意してある。 と言うことですか? Sub sample() Dim Sh1 As Worksheet Dim Sh2 As Worksheet     Set Sh1 = Workbooks("sample1.xls").Worksheets("sheet3")     For i = 2 To Sh1.Cells(Sh1.Rows.Count, 1).End(xlUp).Row         Set Sh2 = Workbooks("sample2.xls").Worksheets(Sh1.Cells(i, 1).Value)         For j = 2 To Sh1.Cells(i, Columns.Count).End(xlToLeft).Column             If Sh1.Cells(i, j) <> 0 Then                 Sh2.Cells(j, 1).Interior.Color = vbRed             Else                 Sh2.Cells(j, 1).Interior.ColorIndex = xlNone             End If         Next j     Next i End Sub

kan1kan
質問者

補足

わかりづらくてすみません。推測していただいた通りです。(図も私が意図していたものとおなじです。)よってご質問への回答は省略されていただきます。 ただ1点、 ”sheet3のリスト上の「氏名」がブック2のシート名と「完全に一致する」事” こちらが違っていました。 ブック1、sheet3のリスト上の氏名(佐藤、鈴木、田中・・・)は、ブック2でのsheet名では上から順に1,2,3・・・・と割り振られます。 つまり、ブック1、sheet3で上から佐藤、鈴木、田中とあれば ブック2のsheet名は佐藤が1,鈴木が2,田中が3・・・という風になります。

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

> ブック1  sheet1と2で差分のあったセルに色が > ブック2の対応するセルにも反映 この「対応セル」が例えば  ブック1のsheet3のA1セルに色がついている  →ブック2のsheet1のA1セルに色をつける など、完全に番地が対応しているのであれば、 #1さんの模範解答が参考になると思われます。 番地が異なるのであれば、 「対応するセルを指定する(探す)仕組み」 を組み込まないといけません。 (質問文中の図を見る限り、番地は一致していないように思えます。) しかし残念ながら、質問文を何度読み返しても 「対応するセルがどこなのか」読み取れませんので、 このままではお望みの処理は(私には)書けません。 番地が異なる場合はその旨を「条件を添えて」補足ください。

kan1kan
質問者

補足

図が見づらいかと思いますが、ブック1,sheet3のA列には行ごとに人物の名前が入っております。 一番上のA列を"佐藤"(A1が佐藤)だとすると、B1より右側以降のセルがブック2,"佐藤"シートの縦の列(A1から下)に対応しています。

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

>色のついたセル 具体的に「どうやって色を付けている」のですか。 ●ケース1 こういう場合に一般的に使う「条件付き書式」を使っている場合 sub macro1()  dim h as range  dim w1 as worksheet  dim w2 as worksheet ’具体的なブック名、シート名に応じて正しく修正する事  set w1 = workbooks("Book1.xlsx").worksheets("Sheet3")  set w2 = workbooks("Book2.xlsx").worksheets("UNKNOWN")  for each h in w1.cells.specialcells(xlcelltypeformulas)  ’>セルには差分判断するための計算式有  ’ 具体的な数式の内容に応じてマクロを修正する事   if h <> 0 then    w2.range(h.address).interior.color = vbred   end if  next end sub ●ケース2 ふつーにセルの塗色でセルを塗っている場合 sub macro2()  dim h as range  dim w1 as worksheet  dim w2 as worksheet ’具体的なブック名、シート名に応じて正しく修正する事  set w1 = workbooks("Book1.xlsx").worksheets("Sheet3")  set w2 = workbooks("Book2.xlsx").worksheets("UNKNOWN")  w1.range("A1:I21").copy  w2.range("A1").pastespecial paste:=xlpasteformats end sub

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

関連するQ&A

  • エクセルでセルの中の色分け

    エクセルでセルの右上から左下に線を引き、左上を赤、右下を緑に色分けしたいと思っていますが、その方法がわかりません。 すごく初歩的な事だと思いますが、どなたか教えてください。 宜しくお願いします。

  • エクセル 入力規則 不具合

    いつもお世話になっております。 (1)エクセル2016で作成したシートに、入力規則を設定していたのですが、突然プルダウンリストマーク(▼)が表示されたままになるセルが現れました。(画像:左上の図) (2)そのプルダウンリストマーク(▼)にカーソルを当て、クリックしても、設定した入力規則は表示されず、空白のリストが表示されるだけです。(画像:右上の図) (3)他の正常なセルは、セル選択して表れる(▼)をクリックすると、予め設定した入力規則が表示されます。(画像:左下の図) (4)(2)で説明したセルも、該当セルをアクティブにして表れる(▼)【※(1)で説明した(▼)よりも少しいろが薄め】を選択すると、予め設定した入力規則が表示されます。(画像:右下の図) 印刷プレビューで確認すると、(1)で説明した(▼)は確認できないのですが、他人に渡すデータなので、なんとか(1)(2)の現象を改善できないかと思っています。 いろいろ調べたのですが、解決に至っていません。 どなたかご教授いただけますと幸いです。 画像が見にくいと思いますが、どうぞよろしくお願いします。

  • excel 参照しているセルに色がついていたら、返すセルにも色もつける

    excelの詳しい方、ぜひ教えてください! Sheet1にあるデータを、計算式によってSheet2に参照させていますが、Sheet1のセルの色までは参照する事ができません。 計算式はいたって簡単で、例えばSheet1のA1を参照している時は、Sheet2のセルに =Sheet1!$A$1 と計算式を入力しています。 条件付き書式や関数も考えたのですが、 ”もし、参照しているセルに色がついていたら、返すセルにも色もつける” をどうすれば出来るのかわかりません。 どうか、わかる方ぜひ教えてください。お願いします!!

  • Excelの図形から特定のセルへの移動について

    sheet1"A5"付近にテキストボックス(図形)を作り、それをクリックすると、 "A100"にセルが飛び、かつそのセルは左上角になるようにすることは できないでしょうか? ハイパーリンクを使ってみたところ、"A100"は画面の左下角に移動してしまいます。 おわかりの方、ご教授よろしくお願いします。

  • セルの色が印刷で出ません

    Excel2003を利用しています。 よそからもらったデータを加工しているのですが、同じブック一部のワークシートのセルに色をつけても、印刷すると色が出ません。 印刷プレビューも色が付いていません、通常の画面上は色が入っています。 プリンターの設定もカラー印刷になっていますし、同じブックのワークシートはカラーで印刷されます。 どこかに設定があるのでしょうか? どなたかお解かりの方がいらっしゃいましたら、教えてください。

  • エクセル リンクしているセルを探すには?

    お世話になります。 エクセルの「ブックどおしの自動リンク」について質問します。 あるブックを開くたび、リンク設定したつもりのがないのに 「開いているブックには、、、、他のブックの変更を反映しますか?」 と聞いてきて困ります。 シートが複数あり、どのシートのどのセルにリンクされているのか、探すのが大変で。 リンクしているセルを簡単に検索することができますでしょうか?

  • エクセルで、セルの日付をシート名にしたい

    セルA1に、別のブックのセルから=の式で引張って来た日付表示のデータ(H19.10.10)が入っています。 その日付を常にそのシート名に反映させるにはどうしたら良いでしょうか?宜しくお願いします。

  • エクセルにおけるセルへの名前のつけ方につきまして

    同一ブックの別シートで、それぞれのシートのセルに同じ名前をつけることはできないのでしょうか?マクロなどを使用せずにエクセル表左上の「名前ボックス」で定義したいのですが。

  • word2007 図の形状について

    word2007で、クリップアートを挿入し、四角の左上と左下だけ丸めることはできますか? 「図ツール」の書式から「図の形状」を表示させると、左上と右上のパターンと、左上と右下を丸めるパターンしか見当たりません。 それとも、何か設定をすれば左上と右下の組み合わせは可能でしょうか? よろしくお願いします。

  • 【Excel97】セルのパターンについて

    セルのパターン一覧を見ていたら、ファイルによって違うことに気付きました(添付画像赤枠部分)。 新規作成の場合は<左側>のパターンですが、他部署からもらった"ある一部のファイル"のみ<右側>のパターンになっています。 例えば、自分で作った[Sheet1]でセルの色を「薄いピンク」(<左側>の左下)を設定して、その[Sheet1]のデータを"ある一部のファイル"にコピーするとセルの色が「くすんだピンク」(<右側>の左下)になってしまいます。 もしかして「旧バージョン?」と思い、"ある一部のファイル"を『名前をつけて保存』すると案の定『ファイルの種類』が『Microsoft Excel 5.0/95 ブック』になっていたので『Microsoft Excel ブック』に直して上書き保存しても、やはり<右側>のパターンが表示されます。 このようなファイルを見つけ次第、新規Bookにデータコピーしてファイルを作り直していますが、なぜこのような事が起こるのでしょうか?

このQ&Aのポイント
  • 65歳で貧乏な暮らしをせずにすむためには、充実した退職計画を立てることが重要です。個人年金や退職金、国からの年金など、収入源を確保し、資産形成を考えることが必要です。
  • また、仕事を離れた後も生きがいを持つことも大切です。趣味や社会活動、ボランティアなど、自分がやりたいことや興味を持てる活動に参加することで、充実感や幸福感を得ることができます。
  • さらに、健康管理も欠かせません。定期的な健康診断や適度な運動、バランスの良い食事など、体調を保つための取り組みが必要です。健康でいることは、長寿を迎えるためにも重要な要素です。
回答を見る

専門家に質問してみよう