![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.1ベストアンサー
- 回答日時:
Worksheet_Change:シートに変更があったら
For Each R In Target:選択されているセル範囲を順番に
With R:順番に回っている現在のセルに対して
条件判断と処理を実行
End With:Withの終了
Next R:次のセルへ、全て回り終えたら終了
End Sub:終了
No.2
- 回答日時:
こんにちは。
#1様の回答で十分なのですが、「For Each R In Target」は、一種の予防策で、
前回、私が書いた、
If Target.Count >1 Then Exit Sub 'セルをを2個以上選択した時はマクロは不可
の代わりというか、逆の発想をするものです。
普通は、単一のセルを対象にして、イベント・ドリブン型にするのが一般的です。複数のセルを処理するとエラーになることがあります。しかし、このマクロは、複数セルを処理するというものです。主に、複数のセルを貼り付けた時や複数のセルを消去した時に、処理するようにできています。
この回答への補足
WindFallerさん、こんばんは
先日もお世話になりました
だめです、私の脳味噌では理解不可能です
確かに、今のマクロでは、想定外のことをやるとエラーになって
そこで、安易に、On Error Resume Next を変数宣言のすぐ後に書いています
もう一度、On Error Resume Next を外してチェックしてみます
Private Sub Worksheet_Change(ByVal Target As Range)内で
セル範囲(1列50行)が1つ指定してあって、その範囲内なら
For Each R In Target
With R
で処理しているのですが
あと2つセル範囲を指定して処理したいことがあるのですが
For Each R In Target
With R
が分からなかったので質問しました
このマクロは安易に行数を増やすと処理が遅くなりそうです
Target.CountもDebug.Printでチェックしてみます
ありがとうございました
わかりました
'On Error Resume Next として
Target.CountをDebug.Printで見てみると
必ずしも1以上でエラーになるのではなくて
複数のセルをコピーした時
一つのセルを複数コピーした時
に「型が一致しません」のエラーになります
複数のセルをマウスで選んでDeleteした時はエラーになりません
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) シート削除のマクロで「deleteメソッドは失敗しました」となります。助けてください! Sub 不要 6 2022/09/08 16:41
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Visual Basic(VBA) countifsについての質問 3 2023/03/08 13:45
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
-
エクセルvba (ByVal Target As Range)について
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
-
5
エクセルのマクロの使い方
Excel(エクセル)
-
6
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
7
EXCEL:特定の文字が入力された日付を表示する方法
Excel(エクセル)
-
8
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
9
Changeイベントでの複数セルのクリアの処理について
Visual Basic(VBA)
-
10
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
11
データが入力されている隣のセルに当日日付と時刻を入力するExcel VBAプログラム
Visual Basic(VBA)
-
12
エクセルVBA 配列からセルに「関数式」を一気代入したい
Visual Basic(VBA)
-
13
VBAで空白セルにのみ数値を代入する方法
Excel(エクセル)
-
14
☆Excelエクセルで入力した日の日付を表示したいです☆
Excel(エクセル)
-
15
worksheet_changeがループする
PowerPoint(パワーポイント)
-
16
Worksheet_Changeの内容を標準モジュールから実行するには?
その他(プログラミング・Web制作)
-
17
EXCELで2つの数値のうち大きい方を採択する数式
Excel(エクセル)
-
18
複数処理 Worksheet_Change(ByVal Target As Range)
Visual Basic(VBA)
-
19
エクセル マクロで セルの範囲を指定する方法
Visual Basic(VBA)
-
20
Worksheet_Change(ByVal Target As Range)の下に複数範囲
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル 足して割る
-
エクセルで指定したセルのどれ...
-
Excelでのコメント表示位置
-
Excelで数式内の文字色を一部だ...
-
【エクセル】IF関数 Aまたは...
-
EXCEL VBA セルに既に入...
-
貼り付けで複数セルに貼り付けたい
-
対象セル内(複数)が埋まった...
-
セルをクリック⇒そのセルに入力...
-
エクセル オートフィルタで絞...
-
エクセルの一つのセルに複数の...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
EXCELで、角度の「50.5度」を「...
-
Excel2003 の『コメント』の編...
-
エクセル 数字の前の「00」を...
-
枠に収まらない文字を非表示に...
-
excelのCOUNTIF関数で、『範囲=...
-
(Excel)数字記入セルの数値の後...
-
エクセルの取り消し線が引けな...
-
【Excel】 セルの色での判断は...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
セルをクリック⇒そのセルに入力...
-
Excelで数式内の文字色を一部だ...
-
エクセル 足して割る
-
対象セル内(複数)が埋まった...
-
貼り付けで複数セルに貼り付けたい
-
Excelでのコメント表示位置
-
エクセルのセルの枠を超えて文...
-
エクセル オートフィルタで絞...
-
エクセルの一つのセルに複数の...
-
EXCEL VBA セルに既に入...
-
【Excel】 セルの色での判断は...
-
(Excel)数字記入セルの数値の後...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
excelのCOUNTIF関数で、『範囲=...
-
Excel2003 の『コメント』の編...
-
枠に収まらない文字を非表示に...
-
Excelで住所を2つ(町名迄と番...
-
複数のセルのいずれかに数字が...
おすすめ情報