![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
選択範囲内(縦一列)で同じ値が入力されたセルの色を黄色にするプログラムを作りました。
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も見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
エクセルでエラーが出て困っています。
Excel(エクセル)
-
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
-
4
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
5
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
6
VBA 見つからなかった時の処理
Excel(エクセル)
-
7
VBAで重複するデータがあれば1個だけ残して他の重複セルを"(空白)にしたいのですが
Excel(エクセル)
-
8
【vba】指定範囲の中に任意の文字があるときの条件分岐
Excel(エクセル)
-
9
EXCEL VBA で指定した範囲に入力があるかどうか?
Visual Basic(VBA)
-
10
指定したセルと同じ日付の入ったセルを選択するVBA
その他(Microsoft Office)
-
11
VBA データ(特定値)のある最終行を取得したい
Excel(エクセル)
-
12
VBAで特定の文字が入力されたセルを選択
Excel(エクセル)
-
13
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
14
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
15
特定の文字を含むシートだけマクロ処理をしたい
Visual Basic(VBA)
-
16
VBA コピーして次の値まで貼り付けを繰り返す
Visual Basic(VBA)
-
17
VBA EXCELファイル選択⇒指定セルコピー
Excel(エクセル)
-
18
cellsで特定の離れた範囲を選択する方法は?
Visual Basic(VBA)
-
19
エクセルVBA ユーザーフォームのTextBoxを日付にしたい
Excel(エクセル)
-
20
VBAコード記述に際して、コード全体を自動的にインデント付ける方法
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで指定した日付から過去の...
-
ExcelVBAを使って、値...
-
【Excel VBA】指定行以降をクリ...
-
i=cells(Rows.Count, 1)とi=cel...
-
Excel vbaで特定の文字以外が入...
-
特定のセルが空白だったら、そ...
-
VBAでセルをクリックする回...
-
任意フォルダから画像をすべて...
-
screenupdatingが機能しなくて...
-
TODAY()で設定したセルの日付...
-
EXCELのVBA-フィルタ抽出後の...
-
EXCELで変数をペーストしたい
-
特定の文字を条件に行挿入とそ...
-
DataGridViewの各セル幅を自由...
-
Excel VBAで、 ヘッダーへのセ...
-
セルの結果でマクロ実行
-
ExcelVBAで、選択範囲内で同じ...
-
3桁または4桁の数値を時刻に...
-
セル色なしの行一括削除
-
連続する複数のセル値がすべて0...
マンスリーランキングこのカテゴリの人気マンスリー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】指定したセルと同じ値で...
おすすめ情報