- ベストアンサー
エクセルについて
例えば、sheet1のセルA1(数値が入っている)を塗りつぶし(黄色)にすると、sheet2のA1に数値のみを 表示できるようにしたいのですが・・・。IF関数では、やはり無理ですよね。困っています。教えてください。お願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
VBAなら Private Sub Worksheet_Change(ByVal Target As Range) Dim sh1 As Worksheet Dim sh2 As Worksheet Set sh1 = Worksheets("sheet1") Set sh2 = Worksheets("sheet2") ' sh1.Cells(1, "A").Interior.ColorIndex = 6 If sh1.Cells(1, "A").Interior.ColorIndex = 6 Then If IsNumeric(Target) = True Then Else MsgBox "数字でない" Target = "" End If End If End Sub でどうでしょう。 Sheet2のChangeイベントに上記を貼りつける。 そしてSheet1のA1セルの色を黄色にする。 Sheet2で文字を入力するとエラーにする。 Sheet2のA1やA列のみに限定してませんが、 限定はアドレスif Target.Address=$A$1やif Target.Column=1をいれると限定可能。
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17070)
>sheet2のA1に数値のみを表示できるようにしたいのですが・・・。 (1)Sheet2のA1はこれからデータを入力し、 数値のみ入力できるようにして、数値の場合のみ表示する のでしょうか。 (2)またはSheet2のA1には入力は済んでいて 数値の時のみ表示するのでしょうか。 (1)(2)は他ブック、他シート(Sheet1)のデータや書式その他を条件にすることは、エクセルが出来ないようにしているので不可能なようです。 そもそも書式を条件付書式の条件には使えないのではないでしょうか。 また関数が使えないかは全くお門違いの要求だと思います。関数は書式を聞けない。Cell関数だけ例外? ほか残る方法は、VBAでするしかないのでは。
補足
sheet1には数値がすでに入っていて、sheet2のセルには、なにも入力されていない状態です。
- Hageoyadi
- ベストアンサー率40% (3145/7860)
=GET.CELL(63,A1) 単体ではExcel2002では関数として認められませんでしたので、参考URLの方法なら何とかなるかもしれません。
お礼
回答ありがとうございます。参考にします。
補足
早速回答ありがとうございます。URL参考にさせて頂きましたが、私の力では・・・。VBA使うとどのようになりますか。
- Hageoyadi
- ベストアンサー率40% (3145/7860)
ん? sheet1には数値がたくさん入力してあって、任意のセルを塗りつぶし、そのセルだけをsheet2に反映するって意味、でしょうか? そしたら#1は大間違いですね。
- Hageoyadi
- ベストアンサー率40% (3145/7860)
sheet1のA1には「1」 などの数字だけ入力し、条件付書式を使って色をつけましょ。 条件は「等しくない」「=""」でいいと思います。 で文字の色とセルの塗りつぶしの色を同じにすることで、見た目は塗りつぶしただけに見えます。 sheet2のA1には =IF(Sheet1!A1<>"",Sheet1!A1,"") でイケると思います。
お礼
回答ありがとうございました。