
いつもお世話になります。
OSはwin10、エクセルは2016 です。
下記の様に
Private Sub Worksheet_Change(ByVal Target As Range)
が2ヶ(下記の 1) 2) )ある時一つにまとめたいのですがどうすれば
よろしいですか。
※下記の 1)、2) でRangeが違います。
1)
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E2:E2000")) Is Nothing Then Exit Sub
Application.EnableEvents = False
If Target.Value = 1 Then Target.Value = "友人"
If Target.Value = 2 Then Target.Value = "知人"
If Target.Value = 3 Then Target.Value = "親戚"
If Target.Value = 4 Then Target.Value = "会社"
Application.EnableEvents = True
End Sub
2)
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("G2:G2000")) Is Nothing Then Exit Sub
Application.EnableEvents = False
If Target.Value = 5 Then Target.Value = "様"
If Target.Value = 6 Then Target.Value = "殿"
If Target.Value = 7 Then Target.Value = "先生"
Application.EnableEvents = True
End Sub
No.2ベストアンサー
- 回答日時:
No.1です。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myAry As Variant
If Intersect(Target, Range("E2:E2000,G2:G2000")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
Application.EnableEvents = False
If .Column = 5 Then
myAry = Array("友人", "知人", "親戚", "会社")
If .Value >= 1 And .Value <= 4 Then
.Value = myAry(.Value - 1)
Else
MsgBox "1~4 の整数を入力"
.Select
End If
Else
myAry = Array("様", "殿", "先生")
If .Value >= 5 And .Value <= 7 Then
.Value = myAry(.Value - 5)
Else
MsgBox "5~7 の整数を入力"
.Select
End If
End If
Application.EnableEvents = True
End With
End Sub
こんな感じをお望みなのでしょうかね。
※ 上記コードは質問文どおり、E列・G列の2~2000行目までの範囲で動くコードですが、
画像を拝見するとC列に何か操作が必要なのでしょうか?m(_ _)m
No.1
- 回答日時:
こんばんは!
If Intersect(Target, Range("E2:E2000,G2:G2000")) Is Nothing Or Target.Count > 1 Then Exit Sub
If Target.Column = 5 Then
'//E列の場合の処理//
Else
'//G列の場合の処理//
End If
のように分岐すればよいと思います。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PowerPointで表の1つの列だけ...
-
「B列が日曜の場合」C列に/...
-
2つのエクセルのデータを同じよ...
-
エクセルで二つの数字の小さい...
-
エクセルのセル内の文字の一部...
-
エクセルの項目軸を左寄せにしたい
-
ExcelのVBAで連番を振る。
-
Excel 文字列を結合するときに...
-
エクセル(勝手に太字になる)
-
エクセルの並び変えで、空白セ...
-
Excel、市から登録している住所...
-
エクセルで最初のスペースまで...
-
妊娠祝い もらったことある
-
エクセルで一列おきに空白列を...
-
条件付き書式の適用先が変更さ...
-
【エクセルの並び替え】末尾の...
-
オートフィルターをかけ、#N/A...
-
ずらせて、ずらして
-
【画像あり】【関数】指定した...
-
エクセル SMALL の機能...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
2つのエクセルのデータを同じよ...
-
Excelで半角の文字を含むセルを...
-
エクセルで最初のスペースまで...
-
「B列が日曜の場合」C列に/...
-
EXCELで 一桁の数値を二桁に
-
エクセルで文字が混じった数字...
-
エクセル(勝手に太字になる)
-
オートフィルターをかけ、#N/A...
-
エクセル 文字数 多い順 並...
-
Excel、市から登録している住所...
-
エクセルのセル内の文字の一部...
-
【画像あり】【関数】指定した...
-
エクセルの項目軸を左寄せにしたい
-
エクセルの並び変えで、空白セ...
-
妊娠祝い もらったことある
-
エクセル 同じ値を探して隣の...
-
エクセルの表から正の数、負の...
-
Excel 文字列を結合するときに...
おすすめ情報
私なりに下記のように反映しましたがうまく行きません。
誠に申し訳ありませんが再指導いただけませんか。
ご指導いただいたのを私なりのコードをと思いましたが文が長くここに記載できませんでした。
わがまま勝手ですがよろしくお願いいたします