いつもお世話になります。
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) エクセル VBAで複数セル選択時エラーになる問題 3 2022/10/04 02:40
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Visual Basic(VBA) VBAのトグルボタンでのマクロについて質問です 3 2022/10/10 17:23
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- Visual Basic(VBA) 【再投稿】VBAで動作しなくて困っています 2 2022/10/11 11:05
- Visual Basic(VBA) Worksheet_Change 4 2023/03/12 21:54
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
複数処理 Worksheet_Change(ByVal Target As Range)
Visual Basic(VBA)
-
エクセルマクロPrivate Subを複数にする方法
Excel(エクセル)
-
-
4
Changeイベントでの複数セルのクリアの処理について
Visual Basic(VBA)
-
5
Worksheet_Change(ByVal Target As Range)の下に複数範囲
Excel(エクセル)
-
6
エクセルVBA シートモジュールにチェンジイベントを複数設定する方法を教えて下さい。 例えば、B列に
Visual Basic(VBA)
-
7
Worksheet_Changeの内容を標準モジュールから実行するには?
その他(プログラミング・Web制作)
-
8
同じシート内にイベントプロシージャが二つある時
Excel(エクセル)
-
9
エクセルvba (ByVal Target As Range)について
Excel(エクセル)
-
10
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
11
Worksheet_Change(ByVal Target As Range)の複数の条件
Visual Basic(VBA)
-
12
Excel VBA イベントプロシージャを2つ記述する(基本です)
Excel(エクセル)
-
13
他のシートの特定のセルが変わると、自動実行されるマクロについて
Excel(エクセル)
-
14
エクセルマクロ セルをクリックするたびに記号を入力
Excel(エクセル)
-
15
エクセルVBAでTargetのセルに設定された「名前の定義」の取得方法は?
Excel(エクセル)
-
16
Worksheet_Changeが動かない
その他(Microsoft Office)
-
17
Excel2010 イベントプロシージャが動かない
Excel(エクセル)
-
18
EXCEL VBA 複数のシートに同じイベントプロシジャを書く場合
Excel(エクセル)
-
19
エクセルVBA intersect columnsの複数列のやり方
Visual Basic(VBA)
-
20
セルの値が変ると自動でマクロが実行される。
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
「B列が日曜の場合」C列に/...
-
エクセルで最初のスペースまで...
-
VBAで文字列を数値に変換したい
-
エクセルの表から正の数、負の...
-
エクセルの並び変えで、空白セ...
-
エクセル 文字数 多い順 並...
-
エクセル(勝手に太字になる)
-
Excel 別ファイルに自動的に反...
-
Excel、市から登録している住所...
-
Excelで半角の文字を含むセルを...
-
EXCELで 一桁の数値を二桁に
-
A列がない・・・A列が非表示に...
-
文字列に数字を含むセルを調べたい
-
エクセルで文字が混じった数字...
-
2つのエクセルのデータを同じよ...
-
エクセルの項目軸を左寄せにしたい
-
エクセル 同じ値を探して隣の...
-
文字を入力したら数値が自動入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
2つのエクセルのデータを同じよ...
-
エクセル 同じ値を探して隣の...
-
エクセル(勝手に太字になる)
-
「B列が日曜の場合」C列に/...
-
エクセル 文字数 多い順 並...
-
EXCELで 一桁の数値を二桁に
-
Excelで半角の文字を含むセルを...
-
エクセルで文字が混じった数字...
-
エクセルの項目軸を左寄せにしたい
-
Excel、市から登録している住所...
-
エクセルで、列の空欄に隣の列...
-
エクセルの表から正の数、負の...
-
エクセルの並び変えで、空白セ...
-
VBAで文字列を数値に変換したい
-
A列がない・・・A列が非表示に...
-
文字列に数字を含むセルを調べたい
-
50人を数回、グループ分けする...
おすすめ情報
私なりに下記のように反映しましたがうまく行きません。
誠に申し訳ありませんが再指導いただけませんか。
ご指導いただいたのを私なりのコードをと思いましたが文が長くここに記載できませんでした。
わがまま勝手ですがよろしくお願いいたします