![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
以前ワークシートのイベントのプログラムを教えていただきありがとうございました。
参考に作ったプログラムなのですが・・・範囲をもう少しだけでかくしてやると画面がゆれて困っています。
値を入れてコピーしているときが特にひどいです。
複数セルを選択して消去しても大丈夫なようにかつ揺れない方法はないでしょうか?
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim r As Range
For Each r In Target
MyProc r
Next
End Sub
Sub MyProc(Target As Range)
Dim i As Long
Application.EnableEvents = False
If Selection.Cells.Count <> 1 Then Exit Sub
' 変更したセルに値が入った場合条件成立
If Trim(Target.Value) <> "" Then
' 行番号が10以上65530以内のとき条件成立
If Target.Row >= 10 And Target.Row <= 65530 Then
' BCD列で、5の倍数の行のとき条件成立
If (Target.Column >= 2) And (Target.Column <= 4) Then
If (Target.Row Mod 5) = 0 Then
If Target.Value <> "" Then
For i = 0 To 4
Target.Copy
Target.Offset(i, 10).PasteSpecial Paste:=xlPasteValues
Next
If (Target.Column = 2) Then
Worksheets("Sheet4").Range("A2:K6").Copy Target.Offset(5, -1)
End If
End If
Else
Exit Sub
End If
End If
End If
Application.CutCopyMode = False
End If
Application.EnableEvents = True
End Sub
No.1ベストアンサー
- 回答日時:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim r As Range
' 画面の更新を一時停止する
Application.ScreenUpdating = False
For Each r In Target
MyProc r
Next
' 画面更新の再開
Application.ScreenUpdating = True
End Sub
としてみましょう
Application.EnableEventsの設定もSelectionChange側のForループの外で1度実行すればいいのでは?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- Visual Basic(VBA) シート削除のマクロで「deleteメソッドは失敗しました」となります。助けてください! Sub 不要 6 2022/09/08 16:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
Excelのプルダウンで2列分の情...
-
i=cells(Rows.Count, 1)とi=cel...
-
【EXCEL VBA】Range("A:A").Fi...
-
EXCELで変数をペーストしたい
-
【VBA】指定したセルと同じ値で...
-
screenupdatingが機能しなくて...
-
イベントを起こすと画面が揺れ...
-
Excelで指定した日付から過去の...
-
【Excel】指定したセルの名前で...
-
3桁または4桁の数値を時刻に...
-
Excel VBA、 別ブックの最終行...
-
特定の文字を条件に行挿入とそ...
-
【Excel VBA】指定行以降をクリ...
-
TODAY()で設定したセルの日付...
-
【VBA】シート上の複数のチェッ...
-
セル色なしの行一括削除
-
DataGridViewの各セル幅を自由...
-
Excel VBA マクロ ある列の最終...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel VBA】指定行以降をクリ...
-
Excelで指定した日付から過去の...
-
【Excel】指定したセルの名前で...
-
TODAY()で設定したセルの日付...
-
EXCELで変数をペーストしたい
-
Excel VBA、 別ブックの最終行...
-
Excelのプルダウンで2列分の情...
-
VBA コピーして次の値まで貼り...
-
screenupdatingが機能しなくて...
-
エクセルVBAでコピーして順...
-
VBA初心者です。結合セルを保持...
-
セル色なしの行一括削除
-
VBAでセルをクリックする回...
-
Excel vbaで特定の文字以外が入...
-
DataGridViewの各セル幅を自由...
-
特定の文字を条件に行挿入とそ...
-
【VBA】指定したセルと同じ値で...
おすすめ情報