• ベストアンサー

指定したセルに文字を書き込みたい

エクセル初心者です。 セルの判定結果で、別のセルに文字を書き込みたいのですが、どうしたら良いでしょうか? 例 A1が”○”だったら、A2に”OK”と書き込む →式はB1にあります。 ちなみに下記式を入れてみましたが、上手く行きません。 =IF(A1="○",A2="OK") この式は、B1に入っています。 この式の結果は、B1にFALSEと表示されます。 一般的にはA2に下記式を入れれば問題無いのですが、 =IF(A1="○","OK") 諸事情があって、A2には式を入れたくないのです。 ご教授の方、宜しくお願い致します。

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

  • ベストアンサー
  • mar00
  • ベストアンサー率36% (158/430)
回答No.3

Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Range("A1") = "○" Then Range("A2") = "OK" Else Range("A2") = "" End If End Sub Alt+F11キーでVBEを起動し、シートの部分をダブルクリックして貼り付けてください。

GO-TDL
質問者

お礼

画面イメージまで掲示して頂き有難う御座いました。 とても分かりやすいです。 早速、試してみます。 有難う御座いました。

その他の回答 (2)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

関数では他のセルにデータを入力することはできませんから、マクロで対応することになります。 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それ以外だとデータなしになります。

GO-TDL
質問者

お礼

今回、勉強になりました。 また、ソースコードまで記載して頂き有難う御座いました。

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

エクセルの関数では,他のセルに結果を出させると言うことは全く出来ません。 なので >諸事情があって、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に結果が現れる。

GO-TDL
質問者

お礼

エクセルの関数では,他のセルに結果を出させると言うことは全く出来いということは、初めて知りました。 VBAでしか対応出来ないということですね。 どうもありがとうございました。

関連するQ&A