
作業シートに下記のコードを設定しております。
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("$C$5")) Is Nothing Then
If Range("$C$5").Value = "都市計画内" Then
Call 新築手続き必要
End If
End If
End Sub
コードは一つの指定セル値の指定文字が表示されるとマクロ「新築手続き必要」が実行されます、
複数の指定セル値に指定文字が表示された時にマクロ「新築手続き必要」が実行できる方法を教えてください。
例えば
C5="都市計画区域内"
且つ
G5="3月31日以前"
且つ
I5="4月01日以降"
以上の場合にマクロ「新築手続き必要」が実行できる方法を教えてください。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
' チェックするセル範囲を配列で定義
Dim checkRanges As Variant
checkRanges = Array("C5", "G5", "I5")
' 変更されたセルがチェック対象のいずれかであるか確認
Dim isTargetChange As Boolean
isTargetChange = False
Dim checkRange As Variant
For Each checkRange In checkRanges
If Not Intersect(Target, Range(checkRange)) Is Nothing Then
isTargetChange = True
Exit For
End If
Next
' チェック対象のセルが変更されていない場合は、処理を終了
If Not isTargetChange Then Exit Sub
' 全ての条件を満たしているか確認
If Range("C5").Value = "都市計画区域内" And _
Range("G5").Value = "3月31日以前" And _
Range("I5").Value = "4月01日以降" Then
Call 新築手続き必要
End If
End Sub
回答ありがとうございました。
ご親切にコードを教えていただきまして、ありがとうございます。
上手くできました。
感謝いたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
Excelの数式について教えてください。
Visual Basic(VBA)
-
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
-
4
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
5
VBA Application.Matchについての質問です
Visual Basic(VBA)
-
6
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
7
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
8
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
9
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
10
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
11
Excelの数式について教えてください。
Excel(エクセル)
-
12
Visualbasicの現状について教えてください
Visual Basic(VBA)
-
13
VBAで特定の文字が入った行をコピーして貼り付けたい
Visual Basic(VBA)
-
14
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
15
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
16
VBA 同じフォルダ内のすべてのファイルに同じセルをペーストしたい
Visual Basic(VBA)
-
17
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
18
Excel VBAについて。こんな動作をさせるためにはどう書けばよいでしょうか。
Visual Basic(VBA)
-
19
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
20
ExcelVBAについて。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba textboxへの入力について教...
-
Vba セルの4辺について罫線が有...
-
vbsでのwebフォームへの入力制限?
-
Vba FileSystemObject オブジェ...
-
複数のExcelファイルをマージす...
-
【マクロ】並び替えの範囲が、...
-
エクセルのVBAコードと数式につ...
-
【マクロ】値を渡されたプロシ...
-
VBAでユーザーフォームを指定回...
-
【ExcelVBA】5万行以上のデー...
-
VBAでセルの書式を変えずに文字...
-
Web画面の文字をVB6で取得したい
-
VBAでCOPYを繰り返すと、処理が...
-
VBA ユーザーフォーム ボタンク...
-
Vba Array関数について教えてく...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
エクセルのマクロについて教え...
-
エクセルの改行について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba Array関数について教えてく...
-
VBAでCOPYを繰り返すと、処理が...
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】シートの変数へ入れ...
-
vbsでのwebフォームへの入力制限?
-
エクセルのマクロについて教え...
-
【マクロ】並び替えの範囲が、...
-
Vba セルの4辺について罫線が有...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
VBAでユーザーフォームを指定回...
-
【マクロ】開いているブックの...
-
エクセルの改行について
-
vb.net(vs2022)のtextboxのデザ...
-
エクセルのVBAコードと数式につ...
-
算術演算子「¥」の意味について
-
Excelのマクロについて教えてく...
-
改行文字「vbCrLf」とは
-
ワードの図形にマクロを登録で...
-
VBAの「To」という語句について
-
【マクロ】変数を使った、文字...
おすすめ情報
先ほどは回答をありがとうございました。
私の質問が不足しておりまして、
先ほど教えて頂いたコードを
同じ作業シートに各セル値を変更して、何個か設定したいのですが、例えば
Dim checkRanges As Variant
checkRanges = Array("C5", "E5", "G5", "I5")
Dim isTargetChange As Boolean
isTargetChange = False
Dim checkRange As Variant
For Each checkRange In checkRanges
If Not Intersect(Target, Range(checkRange)) Is Nothing Then
isTargetChange = True
Exit For
End If
Next
「文字数の関係で何回かに分けます」
If Not isTargetChange Then Exit Sub
If Range("C5").Value = "都市計画区域内" And _
Range("E5").Value = "階数:2階以上・面積:200㎡を超" And _
Range("G5").Value = "3月31日以前" And _
Range("I5").Value = "4月01日以降" Then
Call 新築手続き必要
End If
二つ目のコード
Dim checkRanges As Variant
checkRanges = Array("C5", "E5", "G5")
Dim isTargetChange As Boolean
isTargetChange = False
Dim checkRange As Variant
For Each checkRange In checkRanges
If Not Intersect(Target, Range(checkRange)) Is Nothing Then
isTargetChange = True
Exit For
End If
Next
If Not isTargetChange Then Exit Sub
If Range("C5").Value = "都市計画区域内" And _
Range("E5").Value = "階数:2階以上・面積:200㎡を超" And _
Range("G5").Value = "4月01日以降" Then
Call 新築手続き必要
End If
を設定すると先ほど添付しました、エラーメッセージが表示されてしまいます。
解決方法を教えて頂きたいのですが、
別質問を行った方がよろしいでしょうか。
よろしくお願いします。
申し訳ありません、
自身で、解決できました。
ありがとうございました。