選択範囲内(縦一列)で同じ値が入力されたセルの色を黄色にするプログラムを作りました。
Sub 選択範囲内で同じ値が入力されたセルを調べる_縦()
Dim startrow As Byte
Dim lasrow As Byte
Dim i As Long
Dim j As Byte
Dim atai
If TypeName(Selection) <> "Range" Then Exit Sub
startrow = ActiveCell.Row '最初のセルの列番号を取得
lasrow = Selection.Rows(Selection.Rows.Count).Row '最終列番号を取得
'同じ値が入力されているセルを黄色にする
For i = startrow To lasrow - 1
If ActiveSheet.Cells(i, ActiveCell.Column).Interior.ColorIndex = xlNone Then
atai = ActiveSheet.Cells(i, ActiveCell.Column).Value
For j = i + 1 To lasrow
If atai = ActiveSheet.Cells(j, ActiveCell.Column).Value Then
ActiveSheet.Cells(i, ActiveCell.Column).Interior.ColorIndex = 6
ActiveSheet.Cells(j, ActiveCell.Column).Interior.ColorIndex = 6
End If
Next
End If
Next
End Sub
但し、上記のプログラムでは選択範囲内に結合セルがあるとエラーになってしまいます。
どなたか、解決方法をご教授頂けませんでしょうか?
宜しくお願い致しますm(._.)m
No.2ベストアンサー
- 回答日時:
こんな感じ?
Sub 選択範囲内で同じ値が入力されたセルを調べる_縦()
Dim i As Long
Dim j As Long
If TypeName(Selection) <> "Range" Then Exit Sub
For i = 1 To Selection.Count - 1
For j = Selection.Count To i + 1 Step -1
'同じ値が入力されているセルを黄色にする
If Selection(i).Value = "" Then Exit For
If Selection(i).Value = Selection(j).Value Then
Selection(i).Interior.ColorIndex = 6
Selection(j).Interior.ColorIndex = 6
End If
Next j
Next i
End Sub
hige_082さん、ありがとうございます。
すごい、こんな簡潔なコードで可能だったんですね!
selection(i)という使い方、iやjの設定方法など、とても勉強になりました。ありがとうございましたm(._.)m
No.1
- 回答日時:
よくわかんないけど、対象が選択範囲で、その中にActiveCellと同じ値があれば黄色にするということでいいのでしょうか?
こんな感じ?
Sub test()
Dim rng As Range, c As Range, v
If TypeName(Selection) <> "Range" Then Exit Sub
Set rng = Selection
v = ActiveCell.Value
For Each c In rng
If c.Interior.ColorIndex = 6 Then c.Interior.ColorIndex = xlNone
If c.Value = v Then c.Interior.ColorIndex = 6
Next c
End Sub
fujillinさん、ありがとうございます。
例えばA1からA100までデータが入力されていて、それらの値はすべて違うものであるはず → 同じ値があれば入力ミスなので、それをチェックしたい。というのが目的です。
A1からA100までを選択している状態でプログラムを実行し、A17とA69の値が同じであれば、両方のセルの色を黄色にしたいのです。
説明が下手で申し訳ありません。宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
【vba】指定範囲の中に任意の文字があるときの条件分岐
Excel(エクセル)
-
-
4
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
5
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
6
VBA 見つからなかった時の処理
Excel(エクセル)
-
7
VBAで重複するデータがあれば1個だけ残して他の重複セルを"(空白)にしたいのですが
Excel(エクセル)
-
8
【VBA】指定したセルと同じ値で、別シートにあるセルに移動するには?
Visual Basic(VBA)
-
9
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
10
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
11
EXCEL VBA で指定した範囲に入力があるかどうか?
Visual Basic(VBA)
-
12
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
13
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
14
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
15
Exel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について
Visual Basic(VBA)
-
16
指定したセルと同じ日付の入ったセルを選択するVBA
その他(Microsoft Office)
-
17
【VBA】コピー&複数個所のペースト繰り返し
Excel(エクセル)
-
18
VBAで特定の文字が入力されたセルを選択
Excel(エクセル)
-
19
VBA データ(特定値)のある最終行を取得したい
Excel(エクセル)
-
20
Excel VBA、 別ブックの最終行セルへのコピー&値ペースト
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAを使って、値...
-
【Excel】指定したセルの名前で...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
特定の文字を条件に行挿入とそ...
-
VBA コピーして次の値まで貼り...
-
【Excel VBA】指定行以降をクリ...
-
screenupdatingが機能しなくて...
-
EXCELで変数をペーストしたい
-
VBAを使用した時間管理
-
VBAでセルをクリックする回...
-
Excel2003 複数セル1列の入力済...
-
VBA 検索と入力 Excel ブック ...
-
VBAでマクロ実行中はExcelのマ...
-
Excelで指定した日付から過去の...
-
VBA ユーザーフォーム ボタンク...
-
DataGridViewのセル編集完了後...
-
連続する複数のセル値がすべて0...
-
【EXCEL VBA】Range("A:A").Fi...
-
excelのマクロについて教えて下...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel】指定したセルの名前で...
-
Excelで指定した日付から過去の...
-
特定の文字を条件に行挿入とそ...
-
Excel VBA、 別ブックの最終行...
-
EXCELで変数をペーストしたい
-
Excelのプルダウンで2列分の情...
-
TODAY()で設定したセルの日付...
-
Excel vbaで特定の文字以外が入...
-
screenupdatingが機能しなくて...
-
DataGridViewの各セル幅を自由...
-
Sub 要具ライフ() ActiveSheet....
-
【EXCEL VBA】Range("A:A").Fi...
-
VBAを使用した時間管理
-
VBAでセルをクリックする回...
-
セル色なしの行一括削除
-
エクセルVBAでコピーして順...
おすすめ情報