Private Sub Worksheet_Change(ByVal Target As Range)
Dim tbl As Variant
Dim i As Integer
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
tbl = Array("D10", "D11", "E10", "E11", "F10", "F11")
With Worksheets("審査")
For i = 0 To 5
.Range("C" & 26 + i).Value = Range(tbl(i)).Value
If Range(tbl(i)).Value = "" Then
.Range("F" & 26 + i).Value = ""
Else
.Range("F" & 26 + i).Value = "後日図書の提出をお願いいたします。"
End If
Next i
End With
On Error Resume Next
Sheets("消防添").Visible = [R37] = "消防添"
途中省略
Sheets("INDX").Visible = [D2] = "電子申請"
下記のコードもいくつか途中省略しております。
If Range("D2").Value = "紙申請" Then
Call 電図
Else
Call 紙図
End If
If Range("N41").Value = "■" Then
Call 注意1表示
End If
If Range("D7").Value = "計画変更" Then
Call 注意3表示
End If
If Range("N44").Value = "■" Then
Call 注意4表示
End If
If Range("D5").Value = "車庫等:単独" Then
Call 車庫単独
End If
If Range("R55").Value = "車庫注意" Then
Call 車庫単独
End If
If Range("D7").Value = "計画変更" Then
Call 計変画像表示
End If
If Range("Q27").Value = "■" Then
Call 区分図形表示
End If
If Range("D12").Value = "有" Then
Call 消防表示
End If
If Range("F13").Value = "有" Then
Call 浄化槽表示
End If
If Range("F8").Value >= 3 Then
Call 通路
End If
If Range("J16").Value = "消防同意必要" Then
Call 消防貼り付け
End If
If Range("Q2").Value = "■" Then
Call 市町村名コピー
End If
If Range("F3").Value = "旭川市" Then
Call 旭川市図形表示
End If
If Target.Address = "$C$20" Then
Call 審査担当コメント非表示
End If
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
以上となります。
No.4ベストアンサー
- 回答日時:
この処理が動いて欲しいのは、どのセルを変更した場合なのか、そのセルは特定されていますか?
されているなら、そのアドレス以外の場合、Exitさせるようにすれば良いと思います。
たとえばSelect Caseを使った場合
Private Sub Worksheet_Change(ByVal Target As Range)
の次に
Select Case Target.Address
Case "$C$20", "$R$37", "$N$41",・・・・・
GoTo continue
Case Else
Exit Sub
End Select
continue:
というような感じになるかと。
No.3
- 回答日時:
最初の一行、つまり
Private Sub Worksheet_Change(ByVal Target As Range)
の次に
If Target.Address <> "$C$20" Then End Sub
を入れてみて下さい。

No.2
- 回答日時:
こんばんは
処理に時間がかかるのなら、対策としては、
・ 無駄な処理は行わないように制御する
・ 処理の効率を良くして高速化する
くらいでしょうか?
質問文に提示されていない部分が多々あるので内容が不明ですけれど、提示部分と同じような内容なら、シートに関数で設定しておく方がよさそうに思われます。
シート関数であれば、
・エクセルが無駄な処理は行わないように制御してくれる
・関数の方が下手なマクロよりもレスポンスが速い
可能性が高いので、処理効率が良くなることを期待できます。
『関数を使うとユーザの誤操作で上書きされる恐れがある』と言うのであれば、その部分に保護をかけておけば、壊されることもなくなります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 4 2023/05/26 10:43
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2024/03/06 13:07
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2024/03/28 13:38
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/02/02 09:25
- Visual Basic(VBA) VBAコードについて教えてください、 下記のコードを一つにまとめる方法を教えてください セルF18に 2 2024/03/06 20:11
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) 配列の勉強をしています。使用する変数の意味、検索条件の書き方が難しいです。 2 2022/09/15 14:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでCOPYを繰り返すと、処理が...
-
【マクロ】並び替えの範囲が、...
-
【マクロ】オートフィルター を...
-
Vba Array関数について教えてく...
-
Vba 型が一致しません(エラー1...
-
【ExcelVBA】値を変更しながら...
-
vbsでのwebフォームへの入力制限?
-
エクセルのマクロについて教え...
-
【ExcelVBA】5万行以上のデー...
-
VBAでセルの書式を変えずに文字...
-
【マクロ】開いているブックの...
-
Vba セルの4辺について罫線が有...
-
vb.net(vs2022)のtextboxのデザ...
-
Excel VBA 選択範囲の罫線色の...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
エクセルの改行について
-
VBAで特定の文字が入った行をコ...
-
WindowsのOutlook を VBA から...
-
Excel 範囲指定スクショについ...
-
【マクロ】シートの変数へ入れ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba セルの4辺について罫線が有...
-
vbsでのwebフォームへの入力制限?
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
【マクロ】並び替えの範囲が、...
-
エクセルの改行について
-
エクセルのマクロについて教え...
-
vb.net(vs2022)のtextboxのデザ...
-
VBAでCOPYを繰り返すと、処理が...
-
VBA ユーザーフォーム ボタンク...
-
エクセルのVBAコードと数式につ...
-
エクセルのVBAコードについて教...
-
[VB.net] ボタン(Flat)のEnable...
-
【マクロ】変数を使った、文字...
-
改行文字「vbCrLf」とは
-
質問58753 このコードでうまく...
-
【マクロ】シートの変数へ入れ...
-
ワードの図形にマクロを登録で...
-
算術演算子「¥」の意味について
おすすめ情報


ごめんなさい
質問の記載を忘れてました。
質問は
下記のコードをマクロ設定ブックの指定シート「受付」に設定しております。
コードにはシート内のセル値に応じてシートが表示されたり、マクロが実行されたりしますが、
Private Sub Worksheet_Change(ByVal Target As Range)
を使用している為、コードの設定を実行できるセル値を変更するたびに
常にシートイベントが走っており、
セルを変更するたびに処理に時間がかかっております。
この問題を解決できる方法を教えてください。
となります。
宜しくお願い致します。
回答ありがとうございます。
マクロの場合は解決いたしました。
シート表示の場合
例えば
Sheets("消防添").Visible = [R37] = "消防添"
の場合はどのように設定すれば良いでしょうか。
何度も申し訳ありません。
宜しくお願い致します。