出産前後の痔にはご注意!

先ほども質問したんですが、
A1に010と入力すると田中、020入力で鈴木と出来るように、
------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
Select Case Target.Value
Case "010": myStr = "田中"
Case "020": myStr = "鈴木"
Case "030": myStr = "岡田"
Case "": myStr = ""
Case Else: myStr = "非該当"
End Select
Application.EnableEvents = False
On Error GoTo line
Target.Value = myStr
line:
Application.EnableEvents = True
End Sub
----------------------------------------------------
を教えていただきました!

が、A2でも同じようなことを行いたいのです!
VBAの知識が乏しいのでコピペでいろいろやってみたのですが、エラーで出来ませんでした…。
A1
A2



と同じように入力できるようにするにはどのようにすればよいのでしょうか?もう一度教えて下さい。よろしくお願いします。

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

A 回答 (7件)

>If Target.Address <> "$A$1" Then Exit Sub


を下記と入れ替えてください

If Intersect(Target, Range("A1:A2")) Is Nothing Then Exit Sub

この回答への補足

教えて頂いたとおりにやってみましたが出来ません…。
どうしてでしょうか?

補足日時:2009/03/23 22:43
    • good
    • 0

>A1


>A2
>・
>・
>・
>と同じように入力できるようにするにはどのようにすればよいのでしょうか?

これってA列に対して数行の範囲を持つという事では?
そうするとセルを数個選択してクリアならエラー処理もいるかも。
    • good
    • 0

それともこうゆう事



Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then
Select Case Target.Value
Case "010": myStr = "田中"
Case "020": myStr = "鈴木"
Case "030": myStr = "岡田"
Case "": myStr = ""
Case Else: myStr = "非該当"
End Select
ElseIf Intersect(Target, Range("A2")) Is Nothing Then
Select Case Target.Value
Case "010": myStr = "あああ"
Case "020": myStr = "いいい"
Case "030": myStr = "ううう"
Case "": myStr = ""
Case Else: myStr = "非該当"
End Select
End If
Application.EnableEvents = False
On Error GoTo line
Target.Value = myStr
line:
Application.EnableEvents = True
End Sub
    • good
    • 0

Private Sub Worksheet_Change(ByVal Target As Range)


If Intersect(Target, Range("A1:A2")) Is Nothing Then Exit Sub
Select Case Target.Value
Case "010": myStr = "田中"
Case "020": myStr = "鈴木"
Case "030": myStr = "岡田"
Case "": myStr = ""
Case Else: myStr = "非該当"
End Select
Application.EnableEvents = False
On Error GoTo line
Target.Value = myStr
line:
Application.EnableEvents = True
End Sub

一度、すべて消して上のコードだけにしてください
>教えて頂いたとおりにやってみましたが出来ません…。
もう少し、スキルを上げてからにしては
余りにも初歩過ぎます
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2009/03/23 22:57

同じコードを作成していませんか?


Private Sub Worksheet_Change(ByVal Target As Range)
ワークシートを変更したときに自動実行するマクロです
全体をコピーして貼り付けするとエラーになります。

提示されたマクロ内に変化したセルによって異なるルーチンを作成する必要があります。
処理が同じであれば
If Target.Address <> "$A$1" Then Exit Sub
ここでA2セルの場合も実行するように変更すれば解決します。

処理内容が異なる場合は処理ルーチンをTarget.Address ごとに変化させる必要があります。

この回答への補足

>ここでA2セルの場合も実行するように変更すれば解決します。
実際にはどういうふうに記述しますか?

補足日時:2009/03/23 22:45
    • good
    • 0

No.1です!


たびたぶすみません。
キーを打ち間違えました
VBAです・・・
ごめんなさい。m(__)m
    • good
    • 0

こんばんは!


先ほどはどうも失礼しました!
VLOOKUP関数で回答した者です。
BVAの方法は分かりかねますが・・・
先ほどの数式でA1セルをそのままオートフィルでコピーすれば
希望通りになると思います。m(__)m
    • good
    • 0
この回答へのお礼

やはり、VBAでやった方が思い通りに出来てしまいました…。

お礼日時:2009/03/23 22:40

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


人気Q&Aランキング