• ベストアンサー

Excelでセル参照したとき、書式も一緒に持ってくるには?

例えば、A1セルに文字データと、それに付随した字体、文字サイズ、文字やセルの色、その他条件付き書式で設定した書式等があるとします。いま、別のセルで、=A1とすると、そのセルに文字データを取り込むことはできるが、付随した書式は取り込めません、よね?書式も一緒に取り込む数式の書き方ってあるでしょうか。教えてください。くれぐれも、コピーしろなどというお答えはなさらないで下さい。

  • goo62
  • お礼率91% (195/214)

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

  • ベストアンサー
回答No.1

演算子や関数は、あくまでもセル内の文字や数値の処理をするものであり、属性(文字や枠の書式)に関する処理は行いません。 強いて言えば、カメラコピーというのがあります。 (メニューバーで右クリックし、ユーザ設定/コマンド/ツールの中にカメラがありますので、これをツールバーに追加します) これは、オブジェクトの一種ですが、これはもとの書式が変わるとコピー先も同じように変わります。 ただ、計算や関数の引数などには使えませんが。

goo62
質問者

お礼

早々のお答えありがとうございました。「カメラ」という機能、初めて知りました。使ってみました。面白いですね。今回の質問の趣旨とは少し違いますが、私にとっては大いなる収穫です。ありがとうございました。

その他の回答 (1)

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

>書式も一緒に取り込む数式の書き方ってあるでしょうか 「数式」とは関数式や演算子を使った式またはそれらが組み合わさったものをイメージしていると思います。 #1に書いておられるように、エクセルでは、関数式等は、「値!」(書式は含まず)だけを返す(ように制限されている、VBAと役割分担をしている)のが、基本原理です。このことを認識しないための、関数式等への過大期待が、OKWEBの質問にも相当出ます。やり方を考える前に不可能と結論付けることが出きる問題です。 また関数式でセルの書式状態や演算に使われているセル番地を返す関数もありません。(CELL関数と言うのがありますが、不完全。) さて、VBAを使ってでは、どうかと言うことについて、私のテストしたことを述べます。 例えば Sub test02() Worksheets("sheet1").Activate Dim cl As Range For Each cl In Selection If cl.HasFormula = True Then p = Split(cl.Precedents.Address, ",") For i = 0 To UBound(p) MsgBox p(i) cl.Font.ColorIndex = Range(p(0)).Font.ColorIndex Next i End If Next End Sub を作ってみましたが、ここにおいて、 (1)If cl.HasFormula = True Thenで数式が入っているセルがわかる。(このセルに数式があるかどうか) (2)数式が入っている時、cl.Precedents.Addressで式に使われている番地が判る。 (3)しかしセル番地についても (A)=sum("a1:a4")のように何々からと言う式のタイプがあり、理論的には千でも2千ものセルも指定できる。 (B)式の入ったセルを参照して、また別セルに式を入れることも多い(多段的参照)。 この場合「どこまで」「どちらを」(の書式)を取るかについて、収拾がつかなくなる。 したがって質問者の尋ねていることは、極く単純な=A1のような、単一セルを参照している場合でないと、ややこしくなってやっちゃおれなくなると思う。このことに気付いて欲しい。 単純な=と1セルを参照するケースなら、上記コードを多少修正すると字体の色だけは伝播します。 書式にもいろいろある(フォントサイズ、イタリック、罫線など)ので、どこまで伝播させるかも、VBAコードに1行ずつ組みこまないといけない。 「コピーしろなどというお答えはなさらないで下さい。」 と言われるが、少々のセルなら、これがトータルで速く出来そうで、結論は「無理なことは言わないで下さい」ということになろうか。

goo62
質問者

お礼

早々のお答えありがとうございました。結論としてはやはりありませんか。=COPY(A1)のような関数があって、コピー→貼付け的なことをしてくれるものがあれば、と思っての「教えて」だったのですが・・添付のVBA参考にさせて頂きます。ありがとうございました。

関連するQ&A

  • Office2003Excel条件書式とセルの挿入

    別の所でも質問したんですが、答えが見つからないでこちらでもお願いします。 ・A列とB列に100行ぐらいデータがありま、A列とB列を照合するという作業です。 ・A1に「数式A1<>B1の場合セルを赤くする」という条件付き書式を設定、そのままA100までコピー。 ・A2と同じデータがB15にあり(重複するデータは無いものとする)、A2はセルが赤くなっている。 ・B15のデータを「切り取り⇒切り取ったセルを挿入」でB2に挿入する⇒事実上、A2=B2となる。 XPだった時、上記の作業をすると、A2のセルは条件付き書式「数式A2<>B2の場合セルを赤くする」に該当しなくなったのでセルの赤色が消えました。 しかし、Office2003を導入して同様の事をすると、A2のセルの条件付き書式が「A2<>B15」と数式が入れ替わってしまい、A2=B2であるにもかかわらず条件付き書式が元あったB15を参照している為、セルは赤いままです。 数式の参照を絶対参照に・・・という答えももらい試しましたが結果は同じで「A2<>B15」とずれました。そもそも、XPで出来ている(セルの挿入なども出来ていた)ので参照の問題ではなく、何かしら設定の問題ではと思っています。 A列に、B列内でどう移動しても(貼り付けは上書きしてしまうのでダメ)条件付き書式の参照元が変わらない(A2<>B2)ようにしたいのですが、どうやったら出来ますでしょうか? それともこれはXPにできて2003ではできない機能ですか? よろしくお願いします。

  • 条件付き書式(エクセル2003)について

    セル C1 の値(文字列)がXならばセルA1 の背景色を黄色にしたいんですが、「条件付き書式」からどうすればいいのでしょうか?A1を選択して条件付き書式、数式が、まではわかるのですがここからどうしましょうか? =C1="X" で、パターンから色を黄色にすればいいんでしょうか???

  • Excel セルの書式設定について

    いつもお世話になります。 WinXPpro  Office2003です。 私の前任者が作ったExcelに私がずいぶん色々と細工しました。(ここでずいぶん助けて頂きました) いままで全て手打ち&コピーペーストでやっていたものを関数を駆使して簡単にしました。その後、他の方に引き継ぐことになり、その際に色々と要望が出たので色々と作り直しをしています。その際にどうやら前任者が設定したと思われるセルの書式設定が生きていたらしく(空欄のところなど)別のシートからひっぱってるデータが文字列だの数式だの日付だのに変わってしまってます。(/ー ̄;)シクシク =”番号”&A2のように引っ張ってきてるのでいちいち関数を入れたりセルの書式設定で変えていますが引っ張ってくるシートはいっしょで、文字列も入れているので置換えみたいにいっぺんに変えられるような都合のいいことはできるかな?と思いまして質問させていただきました。 いまのところは=”番号”&A2で =”番号”&A2 =番号1(←これまともです) となってしまいます。 なにかいい方法があればぜひ教えて下さい。 よろしくお願い致します。

  • 条件付書式と相対参照

    条件付書式についての質問です。 たとえば、A1:D5の範囲を選択し、書式→条件付書式→数式 A1=1 と入力します。 つまりA1に1と入力されたら、選択した範囲のセルに色がつくようにという指示です。 ところが、このA1を絶対参照にすると確かに選択範囲に色はつくのですが、これを相対参照にするとA1のセルしか色がつきません。 また $A1 と、A$1 にしても、色のつく範囲が微妙に変わります。 これはいったいなぜなんでしょう? A1 に入力したら、選択範囲のセルの色が変わるようにすればどうすればいいのでしょう? この A1 は、ほかのセルにコピーしていくので相対参照にしたいです。

  • エクセル 文字列セルに条件付書式をセル参照したい

    いつもお世話になっております 質問の表題が変になりましたが、よろしくご教示お願いします。 A1セルに文字列「’00000」があります。 B1セルに数値に変換した「00000」があります。 条件付書式で、B1セルを数値の条件で1~19999 は赤、20000~29999は黄色とかを設定しています。 A1セルは、数値でないので条件付ができませんが、B1の書式、セル色だけ参照できませんか? ほかにA1のセルに文字列があっても色指定できる   ネットワーク共有のファイルで、複数人で使用し、数値を打つと色が出るようにしております。 よろしくお願いします。

  • エクセルの書式設定について

    例えば、 「フォントサイズ 12、セルの色 黄色」 のデータを、 「フォントサイズ9、セルの色 なし」 のシートにコピーする場合、コピー元のフォントサイズ「12」とセル色「黄色」がコピー先に反映してしまいます。 コピー先のシートに書式をそろえたいのですが、書式はコピーせずにデータだけコピーすることはできますか?

  • 条件付き書式のセル参照のエラー

    Excel2007 条件付き書式の問題で 「数式を使用して、書式を設定するセルを決定」でセル参照し設定すると条件つき書式がうまくいかず確認すると たとえば $A$4:$D$4とセルを選んだはずが A12345というようにセル番地ではなく数字が表示されています。 どういったエラーなのでしょうか。 また、問題解決の方法はあるのでしょうか。

  • excelで、セルの書式を、・・・繰りかえさねばなりません

    excelで、セルの書式を、標準から、%にかえると、 別の場所にセルをコピーし、その値を100で割って その答えを、値をコピーするで、コピーするでやっと答えが出ます。さらにそのような計算を何百回 も繰り返さねばなりません。 もともとのコピー元(spss出力)には、% 値が出ません。 教えてください。

  • エクセルで条件付き書式で相対参照にするには

    条件付き書式で下のセルの値と比較し条件が合致したら色を変更するというのを同じ列の複数のセルでしたいのですが、相対参照になりません。 例えばA1で条件付き書式で比較するセルを「A2」とした後、A1セルを「コピー」しA列の他のセルに「貼り付け」→「形式を選択して貼り付ける」→「書式」しても比較するセルが「A2」のままです。 これをA3なら比較するセルをA4に、A4ならA5にというようにそのセルと下のセルとを比較するようにしたいのですがどうすればいいでしょうか?

  • エクセル【セルの参照で】

    オフィス2000を使っています。 セルの中で「=」イコール --- |1| --- ↑A1セル ---- |=A1| ---- 上記のようにA1のセルを 参照してセルの数値&セルの書式(文字色・背景色)を得たいのですが、 「=A1」とすると「1」としか表示されずセルの書式 まで参照できません。 どうにか文字色・背景色まで参照できるように出来ないでしょうか? 皆さまよろしくお願いします。