- ベストアンサー
指定したセルに文字を書き込みたい
エクセル初心者です。 セルの判定結果で、別のセルに文字を書き込みたいのですが、どうしたら良いでしょうか? 例 A1が”○”だったら、A2に”OK”と書き込む →式はB1にあります。 ちなみに下記式を入れてみましたが、上手く行きません。 =IF(A1="○",A2="OK") この式は、B1に入っています。 この式の結果は、B1にFALSEと表示されます。 一般的にはA2に下記式を入れれば問題無いのですが、 =IF(A1="○","OK") 諸事情があって、A2には式を入れたくないのです。 ご教授の方、宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- kmetu
- ベストアンサー率41% (562/1346)
関数では他のセルにデータを入力することはできませんから、マクロで対応することになります。 ALT+F11で出る画面で左のウィンドウで式を入れたいと思っているシート名をダブルクリック 右に出る白い画面に Private Sub Worksheet_Change(ByVal Target As Range) EnableEvents = False If Range("A1") = "○" Then Range("A2") = "OK" Else Range("A2") = "" End If EnableEvents = True End Sub と入力すれば、A1に○を入力するとA2にOkそれ以外だとデータなしになります。
お礼
今回、勉強になりました。 また、ソースコードまで記載して頂き有難う御座いました。
- keithin
- ベストアンサー率66% (5278/7941)
エクセルの関数では,他のセルに結果を出させると言うことは全く出来ません。 なので >諸事情があって、A2には式を入れたくないのです。 という縛りでは,ご相談のことは「全く不可能です」。 素直にA2に式を入れることを一番に推奨します A2: =IF(A1="○","OK","") が,どーしても何が何でもA2は空にしておきたいとあくまで固執するなら。 手順: シート名タブを右クリックしてコードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub worksheet_change(byval Target as excel.range) if range("A1") = "○" then range("A2") = "OK" end sub ファイルメニューから終了してエクセルに戻る A1等に値を記入すると,A2に結果が現れる。
お礼
エクセルの関数では,他のセルに結果を出させると言うことは全く出来いということは、初めて知りました。 VBAでしか対応出来ないということですね。 どうもありがとうございました。
お礼
画面イメージまで掲示して頂き有難う御座いました。 とても分かりやすいです。 早速、試してみます。 有難う御座いました。