Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


119 / 13340 ツリー ←次へ | 前へ→

【80389】実行時エラー1004 "Selection.SpecialCells" めろん 19/2/8(金) 11:13 質問[未読]
【80390】Re:実行時エラー1004 "Selection.Spe... 亀マスター 19/2/8(金) 18:56 回答[未読]
【80392】Re:実行時エラー1004 "Selection.Spe... めろん 19/2/9(土) 15:01 お礼[未読]

【80389】実行時エラー1004 "Selection.Spec...
質問  めろん  - 19/2/8(金) 11:13 -

引用なし
パスワード
    所定のシートに下記のコードがあります。
E列の選択の際に、同一列に選択セルと同じ値がある場合に当該セルおよび当該セルと同じ行のB列について、セルの色が変わるという仕様です。
この仕様で実行時エラー1004が発生します。
このシートの保護(A1:A4とA2:H201以外を保護)と"Selection.SpecialCells" を併用していることが原因ではないかと考えています。
シートの保護は現状の範囲としたいのですが、エラーの回避策はどのようにすればよろしいのでしょうか。ご教示のほど何卒よろしくお願い申し上げます。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 5 Then Exit Sub
Dim Trang As Range, Lrang As Range
Application.EnableEvents = False
  Selection.SpecialCells(xlCellTypeConstants, 23).Interior.ColorIndex = 0
  For Each Lrang In Selection.SpecialCells(xlCellTypeConstants, 23)
    If Lrang.Address <> ActiveCell.Address Then
    If Lrang.Value = ActiveCell.Value Then
    Lrang.Interior.ColorIndex = 38
    Lrang.Offset(0, -3).Interior.ColorIndex = 40
    ActiveCell.Interior.ColorIndex = 38
    ActiveCell.Offset(0, -3).Interior.ColorIndex = 40
    End If
    End If
  Next
Application.EnableEvents = True
End Sub

【80390】Re:実行時エラー1004 "Selection.S...
回答  亀マスター  - 19/2/8(金) 18:56 -

引用なし
パスワード
   一般的に、エラー1004は存在しないものを操作しようとしたときに発生します。

今回の場合、
Selection.SpecialCells(xlCellTypeConstants, 23)
これは選択中のセル(Selection)の中で定数を含むセルSelection.SpecialCells(xlCellTypeConstants, 23)を指定しますが、選択中のセルの中に定数を含むセルがなければ、存在しないセルのInterior.ColorIndexを操作しようとしたときにこのエラーが発生するのではないかと思います。

そのため、該当するセルが存在するかどうかのチェックを入れる必要があるでしょう。

なお、Selection.SpecialCells(xlCellTypeConstants, 23)の中の「23」が何かはわかっているでしょうか?
ここでは検索対象となるものを指定していますが、
xlNumbers(=1)、xlTextValues(=2)、xlLogical(=4)、xlErrors(=16)の合計が23ということなので、わかりやすくするために
xlNumbers + xlTextValues + xlLogical + xlErrors
を指定した方がいいでしょう。

【80392】Re:実行時エラー1004 "Selection.S...
お礼  めろん  - 19/2/9(土) 15:01 -

引用なし
パスワード
   ありがとうございました。
無事解決しました。
まだまだ勉強が足りませんが、今後ともよろしくお願い申し上げます。

119 / 13340 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free