いつもお世話になります。
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も見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
複数処理 Worksheet_Change(ByVal Target As Range)
Visual Basic(VBA)
-
エクセルマクロPrivate Subを複数にする方法
Excel(エクセル)
-
-
4
Changeイベントでの複数セルのクリアの処理について
Visual Basic(VBA)
-
5
エクセルVBA シートモジュールにチェンジイベントを複数設定する方法を教えて下さい。 例えば、B列に
Visual Basic(VBA)
-
6
Worksheet_Change(ByVal Target As Range)の下に複数範囲
Excel(エクセル)
-
7
Worksheet_Changeの内容を標準モジュールから実行するには?
その他(プログラミング・Web制作)
-
8
同じシート内にイベントプロシージャが二つある時
Excel(エクセル)
-
9
エクセルvba (ByVal Target As Range)について
Excel(エクセル)
-
10
Worksheet_Change(ByVal Target As Range)の複数の条件
Visual Basic(VBA)
-
11
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
12
Excel VBA イベントプロシージャを2つ記述する(基本です)
Excel(エクセル)
-
13
エクセルマクロ セルをクリックするたびに記号を入力
Excel(エクセル)
-
14
エクセルVBAでTargetのセルに設定された「名前の定義」の取得方法は?
Excel(エクセル)
-
15
セルの値が変ると自動でマクロが実行される。
その他(Microsoft Office)
-
16
EXCEL VBA 複数のシートに同じイベントプロシジャを書く場合
Excel(エクセル)
-
17
他のシートの特定のセルが変わると、自動実行されるマクロについて
Excel(エクセル)
-
18
エクセルVBA intersect columnsの複数列のやり方
Visual Basic(VBA)
-
19
Worksheet.Change イベントを他のシートにも反映させる方法?
Visual Basic(VBA)
-
20
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル初心者です 関数の入れ...
-
PowerPointで表の1つの列だけ...
-
LOOKUP関数を使えばいいのでし...
-
エクセルで二つの数字の小さい...
-
エクセルの表から正の数、負の...
-
エクセル 文字数 多い順 並...
-
50人を数回、グループ分けする...
-
エクセルで最初のスペースまで...
-
重複行を削除して数値を合算し...
-
Excelで、A列にある文字がB列...
-
A,B,C3種類の文字で無限列を作る
-
VBAで文字列を数値に変換したい
-
エクセルで文字が混じった数字...
-
コミックマーケットについて
-
Excel元に戻す方法を教えてくだ...
-
エクセルで休日日数・連休日数...
-
VBAでセル入力の数式に変数を用...
-
エクセルで2列のセルを連続して...
-
エクセルマクロ:複数列 重複...
-
エクセルかグーグルスプレッド...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
2つのエクセルのデータを同じよ...
-
エクセル(勝手に太字になる)
-
「B列が日曜の場合」C列に/...
-
エクセル 文字数 多い順 並...
-
EXCELで 一桁の数値を二桁に
-
エクセル 同じ値を探して隣の...
-
VBAで文字列を数値に変換したい
-
エクセルの並び変えで、空白セ...
-
Excelで半角の文字を含むセルを...
-
エクセルで文字が混じった数字...
-
Excel、市から登録している住所...
-
A列がない・・・A列が非表示に...
-
エクセルの表から正の数、負の...
-
[関数得意な方]教えて下さい・...
-
エクセルの項目軸を左寄せにしたい
-
エクセル 時間帯の重複の有無
-
Excelにてある膨大なデータを管...
おすすめ情報
私なりに下記のように反映しましたがうまく行きません。
誠に申し訳ありませんが再指導いただけませんか。
ご指導いただいたのを私なりのコードをと思いましたが文が長くここに記載できませんでした。
わがまま勝手ですがよろしくお願いいたします