エクセルについて質問です。


エクセルでデータを別セルに反映する際に、エクセルの色データも一緒に反映させる
にはどのようにすれば反映できるでしょうか?

一回コピーしてペーストして値を反映させるのではなく、値を登録した瞬間、別セルにすぐ反映されるのが
理想なのですがそのようなことは可能でしょうか?

お手数をおかけしますがどうぞよろしくお願いいたします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/12/05 12:10:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:SALINGER No.2

回答回数3454ベストアンサー獲得回数969

ポイント27pt

>値を登録した瞬間、別セルにすぐ反映される

ということで、ワークシート関数かユーザー定義関数になると思うけど、それだと書式が変更できません。


それで、worksheet_changeイベントで特定のセルの値が変化したら特定のセルの書式を変えてみます。

以下は、参考までにA列を変化させたら隣のB列の色を同じにするサンプルです。

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False
    Dim str As String
    If Target.Column <> 1 Then Exit Sub
    Cells(Target.Row, 2).Value = Target.Value
    Cells(Target.Row, 2).Font.ColorIndex = Target.Font.ColorIndex
    Cells(Target.Row, 2).Interior.ColorIndex = Target.Interior.ColorIndex
    'コピーしてしまうならば
    'Target.Copy (Cells(Target.Row, 2))
    Application.ScreenUpdating = True
End Sub
id:aiomock

ご回答ありがとうございます。

2008/11/28 13:11:08

その他の回答2件)

id:exstar999 No.1

回答回数120ベストアンサー獲得回数11

ポイント27pt

セルに値を登録した瞬間として、例を挙げます

A1 のセルの値が1なら青、2なら赤にする場合、

まずメニューの「書式」→「条件付き書式」を選択。

コントロールしたいセル範囲、A1セルを選択して、

条件1に「数式が」「=$A$1=1」

 これが真のときに青色になるように

→書式ボタンをクリック、パターンタブをクリックして青色を指定。

追加ボタンを押して

条件2に「数式が」「=$A$1=2」

 これが真のときに赤色になるように

→書式ボタンをクリック、パターンタブをクリックして赤色を指定。

OKボタンを押す。

条件が複雑になるようならマクロを使う例もありますが、たいていはこれでいけますよ。

数式のほうがいろいろ指定できますよ。

数式を変えていろいろと試してください。

以下はダミーURLです。

http://q.hatena.ne.jp/1227841791

id:aiomock

ご回答ありがとうございます。

2008/11/28 13:11:04
id:SALINGER No.2

回答回数3454ベストアンサー獲得回数969ここでベストアンサー

ポイント27pt

>値を登録した瞬間、別セルにすぐ反映される

ということで、ワークシート関数かユーザー定義関数になると思うけど、それだと書式が変更できません。


それで、worksheet_changeイベントで特定のセルの値が変化したら特定のセルの書式を変えてみます。

以下は、参考までにA列を変化させたら隣のB列の色を同じにするサンプルです。

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False
    Dim str As String
    If Target.Column <> 1 Then Exit Sub
    Cells(Target.Row, 2).Value = Target.Value
    Cells(Target.Row, 2).Font.ColorIndex = Target.Font.ColorIndex
    Cells(Target.Row, 2).Interior.ColorIndex = Target.Interior.ColorIndex
    'コピーしてしまうならば
    'Target.Copy (Cells(Target.Row, 2))
    Application.ScreenUpdating = True
End Sub
id:aiomock

ご回答ありがとうございます。

2008/11/28 13:11:08
id:fuentebella No.3

回答回数269ベストアンサー獲得回数30

ポイント26pt

VBAでの処理になると思います。

A1の色をA3に反映させる例です。(値は、別途A3のセルに =A1 など指定ください)

A1の値が変化したときに、A1の色がA3に反映します。

Private Sub Worksheet_Calculate()

Dim src, tgt

src = "A1"

tgt = "A3"

Range(tgt).Interior.ColorIndex = Range(src).Interior.ColorIndex

Range(tgt).Font.ColorIndex = Range(src).Font.ColorIndex

End Sub

ただ、色を付けてから値を入力した場合はなんとかなりますが、値を入力してから色を付けた場合はこれでは正しく動きません。

この場合は、一定秒ごとに書式をコピーするという力業の方法になると思います。

下の7番の解答を参照ください。

http://www.happy2-island.com/bbs/bbs.cgi?mode=past&no=735

id:aiomock

ご回答ありがとうございます。

2008/11/29 00:07:59
  • id:SALINGER
    失礼。コード中の3行目
    Dim str As String
    を消し忘れました。この行はいらないです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません
${title} {{if price }}
${price}円
{{/if}}