下記のコードでは、行の挿入や行の消去をすると13のエラーが出てしまいます。
デバックでは、
If Val(Target.Value) = Val(Range("E" & Target.Row).Value) Then
を示しているのですが、
直し方が分かりません。。。
教えていただけましたら幸いです。
毎度、エラー時に「終了」を押して作業しています。
Windows10/Excel2019
で使用中です。
---------------------------
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:A245")) Is Nothing = False Then
If Val(Target.Value) = Val(Range("E" & Target.Row).Value) Then
Application.EnableEvents = False
Target.Value = "'" & Target.Value
Application.EnableEvents = True
Else
MsgBox "番号が違います"
Application.EnableEvents = False
Target.Value = "再入力"
Application.EnableEvents = True
End If
ElseIf Intersect(Target, Range("B1:B245")) Is Nothing = False Then
If Target.Value = "1" Then
Application.EnableEvents = False
Target.Value = "済"
Application.EnableEvents = True
ElseIf Target.Value = "2" Then
Application.EnableEvents = False
Target.Value = "未確認"
Application.EnableEvents = True
End If
End If
End Sub
----------------------------
宜しくお願いいたします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
ローカルウィンドウ開き、1行目にブレークポイント設定し
行削除、追加する。その時のTarget.countを見て下さい。エクセルの列最大値16384?がセットされてきます。
この数値か、操作セル数では絶対無いであろう10000以上だったら、
Exit Subさせます。
No.2
- 回答日時:
こんばんは
ご提示のコードは、「変化したセル(=Target)が一つだけである」との仮定のもとに作成されていると思われます。
実際には、ご質問のように行(や列)を挿入したり、削除したり、あるいはセル範囲にペーストしたり、セル範囲を消去したりすると、変化したセル範囲全体がtargetとして渡されます。
(ご質問の場合だと、行全体)
複数セルの場合、Target.Value はそのセル範囲の値を持つ配列を意味します。(単体セルの場合には、セル値になります)
それを Val(Target.Value) として評価させようとすると、できないので
「エラー13 型が一致しません」になっているものと思います。
Target.Row はセル範囲の先頭のセルを代表値として返すので、エラーにはなりませんが、異なる行位置を取得してしまうので、処理の結果が予定とは違ってしまう可能性がありそうです。
Target.Cells.Cout でセル範囲内のセルの個数を取得できますので、最初にセル数を確認しておいて処理方法を決めるか、複数セルにも対応できるような処理にしておけば宜しそうに思います。
もしも、複数セルを順に処理するのなら
For Each c In Intersect(Target, Range("A1:A245"))
' c を用いた処理
Next c
のような形式にして、処理すれば可能と思います。
(Intersect()の内容がNothingだとエラーになりますので、事前チェックが必要です)
※ ただし、ご質問のように行そのものを挿入、削除した場合、挿入するとその行が、削除した場合は削除した行範囲(=実際にはもう存在しない)が渡されますので、そのままの処理で良いのかどうかはわかりませんが、注意が必要そうな気がします。
No.1
- 回答日時:
結合されたセルが邪魔してるんじゃないかな。
試しに、別名保存したBookのシート全体を選択して、セルの書式から「セルの結合」を解除してから試してみると良いでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
スマホに会話を聞かれているな!?と思ったことありますか?
スマートフォンで検索はしてないのに、友達と話していた製品の広告が直後に出てきたりすることってありませんか? こんな感じでスマホに会話を聞かれているかも!?と思ったエピソードってありますか?
-
あなたの「プチ贅沢」はなんですか?
お仕事や勉強などを頑張った自分へのご褒美としてやっている「プチ贅沢」があったら教えてください。
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
今から楽しみな予定はありますか?
いよいよ2025年が始まりました。皆さんには、今から楽しみにしている予定はありますか?
-
Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる
Visual Basic(VBA)
-
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
エクセルエラー13型が一致しませんの直し方教えて下さい。
その他(Microsoft Office)
-
-
4
ExcelのVBAでエラー13が出てしまいます。(泣き)
Excel(エクセル)
-
5
VBA:結合されたセルに対する「Target」について
Access(アクセス)
-
6
EXCEL VBAのユーザーフォームに引数を渡す方法について
Excel(エクセル)
-
7
EXCEL マクロで行を挿入して貼り付けようとするとエラーになる。
Excel(エクセル)
-
8
EXCEL ページを指定してPDF出力するVBAを教えてください。
PDF
-
9
Access VBAで行ラベルが定義されていないというエラーが出ます
Access(アクセス)
-
10
Excelで数値→文字列変換で指数表示になったものをいっぺんに直したい
Excel(エクセル)
-
11
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
12
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
13
マクロ 実行ボタンを押さずに常に実行
Excel(エクセル)
-
14
エクセルファイルを自身のファイルで削除する方法
Excel(エクセル)
-
15
VBA deleteをクリックすると型が一致しないとデバッグになります。
Visual Basic(VBA)
-
16
Changeイベントでの複数セルのクリアの処理について
Visual Basic(VBA)
-
17
エクセル VBAで複数セル選択時エラーになる問題
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
特定の色のついたセルを削除
-
Excelで空白セル直前のセルデー...
-
エクセルVBA 配列からセルに「...
-
VBA:日付を配列に入れ別セルに...
-
【Excel VBA】マクロで書き込ん...
-
Excel UserForm の表示位置
-
入力規則のリスト選択
-
Excel 範囲指定スクショについ...
-
DataGridViewのフォーカス遷移...
-
マクロ初心者です。 マクロで範...
-
EXCEL VBA 文中の書式ごと複写...
-
【Excel VBA】一番右端セルまで...
-
VBAでユーザーフォームにセル値...
-
エクセル、マクロで番号を読込...
-
データグリッドビューの結合セ...
-
複数指定セルの可視セルのみを...
-
CSVファイルを読み込んだらセル...
-
「Spread」のセルを移動させる...
-
マウスオーバーでセル内の背景...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
Excelで空白セル直前のセルデー...
-
エクセルVBA 配列からセルに「...
-
特定の色のついたセルを削除
-
【Excel VBA】一番右端セルまで...
-
【VBA】【ユーザーフォーム_Lis...
-
EXCEL VBA 文中の書式ごと複写...
-
VBA:日付を配列に入れ別セルに...
-
C# DataGridViewで複数選択した...
-
Excel UserForm の表示位置
-
入力規則のリスト選択
-
Excel 範囲指定スクショについ...
-
エクセル、マクロで番号を読込...
-
DataGridViewでグリッド内に線...
-
Excel VBAで特定の範囲の空白セ...
-
CellEnterイベント仕様について
-
Excel VBAでCheckboxの名前を変...
-
【ExcelVBA】値を変更しながら...
-
データグリッドビューの結合セ...
-
下記のマクロの説明(意味)を...
おすすめ情報