- ベストアンサー
Excel 置換? VBA
先ほども質問したんですが、 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 ・ ・ ・ と同じように入力できるようにするにはどのようにすればよいのでしょうか?もう一度教えて下さい。よろしくお願いします。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
>If Target.Address <> "$A$1" Then Exit Sub を下記と入れ替えてください If Intersect(Target, Range("A1:A2")) Is Nothing Then Exit Sub
その他の回答 (6)
- n-jun
- ベストアンサー率33% (959/2873)
>A1 >A2 >・ >・ >・ >と同じように入力できるようにするにはどのようにすればよいのでしょうか? これってA列に対して数行の範囲を持つという事では? そうするとセルを数個選択してクリアならエラー処理もいるかも。
- hige_082
- ベストアンサー率50% (379/747)
それともこうゆう事 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
- hige_082
- ベストアンサー率50% (379/747)
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 一度、すべて消して上のコードだけにしてください >教えて頂いたとおりにやってみましたが出来ません…。 もう少し、スキルを上げてからにしては 余りにも初歩過ぎます
お礼
ありがとうございました。
- web2525
- ベストアンサー率42% (1219/2850)
同じコードを作成していませんか? Private Sub Worksheet_Change(ByVal Target As Range) ワークシートを変更したときに自動実行するマクロです 全体をコピーして貼り付けするとエラーになります。 提示されたマクロ内に変化したセルによって異なるルーチンを作成する必要があります。 処理が同じであれば If Target.Address <> "$A$1" Then Exit Sub ここでA2セルの場合も実行するように変更すれば解決します。 処理内容が異なる場合は処理ルーチンをTarget.Address ごとに変化させる必要があります。
補足
>ここでA2セルの場合も実行するように変更すれば解決します。 実際にはどういうふうに記述しますか?
- tom04
- ベストアンサー率49% (2537/5117)
No.1です! たびたぶすみません。 キーを打ち間違えました VBAです・・・ ごめんなさい。m(__)m
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 先ほどはどうも失礼しました! VLOOKUP関数で回答した者です。 BVAの方法は分かりかねますが・・・ 先ほどの数式でA1セルをそのままオートフィルでコピーすれば 希望通りになると思います。m(__)m
お礼
やはり、VBAでやった方が思い通りに出来てしまいました…。
補足
教えて頂いたとおりにやってみましたが出来ません…。 どうしてでしょうか?