準・究極の選択

数字を入れるだけで値を出したいです。

シート1の
I列に1を入れると男、2を入れると女
J列に1を入れると東京、2を入れると北海道、3を入れると大阪、4を入れると高知、
Q列に1を入れると確定、2を入れると未確定、
R列に1を入れると○、2を入れると×、0を入れると○×

このように数字を入れるだけで該当する値を表示させたいです。
マクロ以外では行いたくないです。

マクロのコードを教えてください。

A 回答 (6件)

なぜに関数でなくマクロを所望?



マクロを起動するにはトリガーとなるものが必要だが、セルの入力によるものなら、関数を使うのが常道。
関数からマクロというかサブルーチンを呼んでも良いですしね。

入力が終わってから一斉に処理するなら、マクロ的にサブルーチンを呼ぶという考えもありますけどね。

ここら辺は、理解されてますか?

関数を使えば、セルに入力が終わった時点で、関連するセルの値を規則に従って変更するルーチンが簡単に書けますが、まず上に上げたことくらいから勉強しないと、答えがわかっても応用が全く効かなくなるでしょうね。
    • good
    • 0

自分で一度マクロをくんでみて、それで質問される方がよいですよ。


ここはマクロの作製を請け負うサイトではありませんので。

マクロって融通がききません。
行を追加したり列を追加したりするとそれだけでグチャグチャになりす。

それにこの程度だったらVLOOKUP関数でやる方がはるかに楽ですし融通もつくと思いますよ。
    • good
    • 0

シート1のシートモジュールに以下のマクロを貼り付けてください。


(標準モジュールに貼り付けてはいけません)
I列のケースについてのみサポートしています。
これをコピーして他の列も作ってください。
不明点があれば、補足してください。

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 9 Then 'I列の場合
If Cells(Target.Row, Target.Column).Value = 1 Then
Cells(Target.Row, Target.Column).Value = "男"
End If
If Cells(Target.Row, Target.Column).Value = 2 Then
Cells(Target.Row, Target.Column).Value = "女"
End If
End If
Application.EnableEvents = True
End Sub
    • good
    • 1
この回答へのお礼

ありがとうございました。
思うことができました!

お礼日時:2022/01/20 09:19

初心者なのでちょっと疑問はあります。


表示したいセルに値を入力したとして、それを変換する数式はそのセルに書けるのでしたっけ?って所でしょうか。
或いは数式を極めるとそんな技を習得できるのかな?
出来ないから未だ初心者なのか~。

まぁ入力規則で入力出来る項目を限定させてしまうってのならわかります。
    • good
    • 0

この程度でマクロは不要ですよ。


関数で十分できます。
    • good
    • 0

No.4です。



あ~。
1と入力させるセルと”?”任意の語句を表示させるセルが同じとは書いてないですものね。
てっきりTarget.Valueを条件で入力セルの値書き換えしかないと思い込んでました。
    • good
    • 0

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