今だけ人気マンガ100円レンタル特集♪

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

このQ&Aに関連する最新のQ&A

A 回答 (2件)

演算子や関数は、あくまでもセル内の文字や数値の処理をするものであり、属性(文字や枠の書式)に関する処理は行いません。


強いて言えば、カメラコピーというのがあります。
(メニューバーで右クリックし、ユーザ設定/コマンド/ツールの中にカメラがありますので、これをツールバーに追加します)
これは、オブジェクトの一種ですが、これはもとの書式が変わるとコピー先も同じように変わります。
ただ、計算や関数の引数などには使えませんが。
    • good
    • 11
この回答へのお礼

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

お礼日時:2004/06/26 11:55

>書式も一緒に取り込む数式の書き方ってあるでしょうか


「数式」とは関数式や演算子を使った式またはそれらが組み合わさったものをイメージしていると思います。
#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行ずつ組みこまないといけない。
「コピーしろなどというお答えはなさらないで下さい。」
と言われるが、少々のセルなら、これがトータルで速く出来そうで、結論は「無理なことは言わないで下さい」ということになろうか。
    • good
    • 1
この回答へのお礼

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

お礼日時:2004/06/26 12:10

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcel 関数を使ってデータと一緒にその書式もコピーしたいのですが・・・

自分で調べてみたのですが、どうしても見つからず、
こちらで質問することにしました。

仕事でExcelを使って、見積書と請求書を作成しています。
シート1で見積書、シート2で請求書とし、
見積書を入力すると、シート2の請求書に内容がコピーされるように
試行錯誤して関数等でやっていたのですが、
セルの中身のデータはそのまま表示できるのですが、
書式はコピーできず、困っています。

たとえば、
シート1のA1に赤字でセンタリングして、”あ”と入力すると、
当方のやり方では、シート2のA1には、
デフォルトで黒字で左詰めで”あ”と表示されるだけなのです。
”あ”というデータだけがコピーされている状態になってしまいます。

見積書と請求書のフォーマットを作っているので、
見積書の内容はその都度、書式変更等するので、
シート2にあらかじめ設定しておくこともできないのです。

これを解決するには、どのような関数を設定すればいいのでしょうか?

どうか、教えてください。

Aベストアンサー

関数では書式をコピーできませんのでマクロ(VBA)になり、関数以上に難しくなります。
コピー対象が固定ならば、コピー元セル選択、コピー→貼付先セル選択→形式を選択して貼り付け→書式→OKの操作をマクロ記録しておく方法もありますが如何でしょうか。

QExcel 別シートの結果を書式も一緒に表示したい

Excel2003で質問です。

Sheet1のセルで入力した文字列を、書式ごと
Sheet2のセルに表示したいのですが、

=Sheet1!セル番号 で入力しても書式まで反映されず、
文字のみのコピーになってしまいます。

書式も一緒に反映する方法はありますか?
教えてください。

Aベストアンサー

書式を取ってくる関数の式の方法は,全くありません。


できる方法1:
シート1には書式メニューの「条件付き書式」を使って書式を付けさせる
シート2の数式セルにも同じ条件を調べる「条件付き書式」を施し,結果的に同じ書式を現す。


できる方法2:
シート1の元のセルをコピーする
シート2で,シフトキーを押しながら編集メニューで「図のリンク貼り付け」を選び,貼り付いたリンクしたセルの絵を数式を置きたかったセルの上に配置する。

Q文字の色も参照 VLOOKUP

VLOOKUPを使って、シート1に有るデータベースから
必要なデータを参照して、シート2に表示させています。この時シート1のデータの中には、いくつか
文字の色がついていて 目立つようにしているものがあります。これをVLOOKUPのように、同じくデータベースから参照して、抽出先データに反映させたいのですが、関数では出来ないようで、VBAでコントロールをする必要があるようで、調べたところ下記の様な、質問が過去にあり、
http://oshiete1.goo.ne.jp/kotaeru.php3?q=968962
これを試してみましたが、あまり詳しく書かれていなく、私の解釈で作るとまったく動作しませんでした。
どなたか、わかる方もう少し補足情報をいただけませんか?
よろしくおねがいします。

Aベストアンサー

どうしてもVBAでというなら僕の回答は読み飛ばしてください。

VLOOKUPと条件付書式でやる方法を思いつきました。
シート1に1列追加し、色付きなら1、色付きじゃなければ空白とします。
で、シート2の方では項目を参照するVLOOKUPの右の列に、先程追加した色付きか否かのフラグ列を参照するVLOOKUPを書きます。
最後に、項目を参照した列を選択して、書式→条件付書式
数式が:=D1=1
(色つきか否かの列がDの場合)
これで、シート1で色付きの項目を参照した場合はシート2でも色つきにはなります。

頑張ってくださいヽ(^。^)ノ

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Qエクセル関数:文字だけでなく、書式も含めてリンクしたいのです。

エクセル関数:文字だけでなく、書式も含めてリンクしたいのです。

エクセルの別のブックで(同じサーバー、フォルダーが違う)
所定のセルをリンクさせたいのですが
普通に「=」で関数を入れても
文字のみで書式が付かず、赤字や下線になりません・・・。

文字だけでなく書式もセットでリンクさせたいのです。

ひょっとしてマクロでしょうか?

簡単なようで、なかなかうまくいきません。
どなたか教えてください!!!

Aベストアンサー

>単なようで、なかなかうまくいきません。

それは、そのような方法が無いからです。

過去に何度も同じ質問が出ていますが、= で参照できるのはセルの値だけです。
セルの書式も同一にしたいなら、マクロでコピーなどをするしかありません。

使えるとしたら、あとはカメラ機能くらいでしょうか・・・。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

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

excelの詳しい方、ぜひ教えてください!

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

どうか、わかる方ぜひ教えてください。お願いします!!

Aベストアンサー

セルを色情報を得ることはできませんから、通常の関数では行うことは出来ません。

QExcel 書式を関数で判断。

Excelで、「もしA1が緑色ならば」などと、書式を関数で判断させるにはどうすればよいのでしょうか。

Aベストアンサー

#1の回答通り関数はありません。マクロでなら可能です。

ここでは「色の付いたセルを合計」という質問が結構出ています。
http://okwave.jp/kotaeru.php3?q=2000523

Qエクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルがA1です。)

 [ 田中 ][ 10 ][ 200 ]
 [ 山田 ][ 21 ][ 150 ]
 [ 佐藤 ][ 76 ][ 250 ]
 [ 鈴木 ][ 53 ][ 350 ]

別のシートのA1セルに、「佐藤」と入力すると、

 [ 佐藤 ]

「得点」シートから「佐藤」の列を見つけて、B1、C1に

 [ 佐藤 ][ 76 ][ 250 ]

のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。
「得点」シートでは氏名が重複する事はありません。
IF文を使うと思うのですが、いまいち良く分かりませんでした。

よろしくおねがい致します。

Aベストアンサー

こんにちは!
VLOOKUP関数で対応できます。
IF関数と併用すればエラー処理が可能です。

Excel2007以降のバージョンであれば
B1セルに
=IFERROR(VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0),"")
としてC1セルまでオートフィルでコピー!
そのまま下へコピーすると行が2行目以降でも対応できます。

Excel2003までの場合は
=IF($A1="","",VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0))

としてみてください、m(_ _)m

QEXCELで塗りつぶし色ごとvlookupしたい

vlookupで表引きをして所定の範囲にある値を持ってくる一覧表を作成しています。この際に見やすくするため、値を持ってくる表引きのマスタに設定されている塗りつぶしの色ごと参照させたいのですが、どのようにしたら良いでしょうか。中間色なども多く使用しており、また参照するマスタ部の数値範囲も変わることがあるため、条件付書式以外の方法があったら教えてください。

Aベストアンサー

#2です。
>c = Application.WorksheetFunction... のところで
を下記にして実行してください・
継続行の書き方は、スペース+アンダーバー+改行でやります。
OKWAVEで横が長いと、勝手に機械的に行変更が起こるようです。すこしVBAになれた人なら、原因を見破りますが・・
c = Application.WorksheetFunction.VLookup(Cells(i, "a"), Range("c1:d10"), _
2, True)
もう一度やってみましたが、その点以外はうまくいきます。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング