• ベストアンサー

初歩的な事だと思います。 スイマセン

画像のような表を作成しています。 sheet1の内容をsheet2にリンクさせたいのですが、sheet2のように書式は反映されず黒色になってしまいました。(=Sheet1!A3あるいは=INDEX・・などをsheet2A3に入れて使ってみましたが結果は同じでした。) やりたい結果は書式も合わせて反映され(男女色分け)、出来ればその数式も連続コピーできればありがたいです。 sheet1のベースとなるデーターは週単位で変わります。 どなたか教えてくださいお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

数式を使って,元のセルの書式(文字やセルの色,フォントの種類,罫線など)を反映する方法は全くありません。 かなり多く寄せられるご相談ですが,文字色の選択が全く恣意的(本人的には意味があってもその理由を説明できない)場合は,まったくのお手上げです。既出の回答にもありますが,リンクは諦めてデータを(セルを)コピーして作った方が早いです。 しかし今回は幸い(ただの例え話だったかもしれませんが)「男女別」のような明確な基準があるので,条件付き書式を使って色を付けさせる手が使えるかもしれません。 前提として,シート1のA3以下に名前が記入されているとして,例えばその右隣のB3以下に各人の性別が「男」「女」のように記入されているとします。 まずおさらいでシート1の条件付き書式では A3以下のセルを選択  セルの値が → 数式が に変更し  =B3="女"  と記入して書式ボタンで赤い文字を設定 追加をクリック,条件2として  セルの値が → 数式が に変更し  =B3="男"  と記入して書式ボタンで青い文字を設定 そしてOKする事で,記入された男女のデータに基づいてそれぞれの色が自動的に施されます。 続いてシート2のA3セル以下に記入した次のような数式(ふつーの参照式とちょっと変えてあります) =Sheet1!A3&"" の数式セルにも,男女のデータに基づいて色を付ける条件付き書式を施します。 ここでもしもシート2の,たとえばやはりB列にシート1のB列の男女の値をA列氏名と同様に参照する数式を記入しているなら,シート1のやり口とまったく同じ条件付き書式を施すことでシート2にも同じ色が付きます。 ここでもしも,シート2には男女のデータを持ってきていませんという場合。 その場合は仕方がないのでシート1のA列を参照する式と同様にシート1のB列を参照して,条件付き書式を発色させます。 この場合,Excel2003までの条件付き書式では,前述のような設定の式の代わり,次のように設定します シート2のA3(=Sheet1!A3&""の式が入っている)以下のセルを選び  セルの値が → 数式が に変更し  =INDIRECT("Sheet1!RC[1]",FALSE)="女"  と記入して書式ボタンで赤い文字を設定 追加をクリック,条件2として  セルの値が → 数式が に変更し  =INDIRECT("Sheet1!RC[1]",FALSE)="男"  と記入して書式ボタンで青い文字を設定 そしてOKする事で,シート1のB列に記入された男女のデータに基づいてそれぞれの色が自動的に施されます。

その他の回答 (2)

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

>初歩的な事だと思います 質問者は、これが出来ると思っているようで、不勉強で知らないと思っているようだが、そうではない。 エクセルの関数の基本的なことが判ってない質問です。 エクセルの関数は、(自分自身のセル以外の)セルの値だけを使って計算や加工するものです。 一方セルの属性には セルの値 セルの表示形式 セルの書式 セルの数式 セルの罫線 セルのコメント など多彩なものがあり、エクセル関数はセルの値だけを相手にするものです。 だから書式まで含めて写そうとすれば、VBA(エクセル特有のプログラム)でないと出来ない。 エクセルの原理的な制約なので、誰が考えても良い策はでない。 VBAを勉強するか、あきらめて、手作業でやれとしか言いようがない。

  • u-bot
  • ベストアンサー率58% (1736/2988)
回答No.1

ExcelのVisual Basicを利用されてみてはどうでしょうか? 下記のサイトを参考にVBエディターを立ち上げて後述するモジュールを挿入して下さい。 http://excelvba.pc-users.net/index.html VBの実行はエディターではF5キーで、Excelシート上ならツールのマクロ→マクロで実行するモジュールを選択して下さい。 ---- 前述のサイトにあるセルのコピーモジュールを参考にしたサンプル Sub CopyCell() Worksheets("Sheet1").Activate Worksheets("Sheet1").Range("A1:A3") _ .Copy Destination:=Worksheets("Sheet2").Range("A1") End Sub

関連するQ&A