Excel VBA質問箱 IV

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

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


14653 / 76738 ←次へ | 前へ→

【67574】Re:重複したデータにしるしをつける
発言  kanabun  - 10/12/14(火) 16:57 -

引用なし
パスワード
   ▼まりな さん:
こんにちは〜

>度々すみません。
>VBAを機動させるボタンをSheet3にオートシェイプでセットし、
>Sheet2のデータについて、kanabunさんに教えて頂いたVBAを機動させるには、
>以下のマクロに何を付け加えたらよいでしょうか?


試してないけど、
2か所、シートを指定するだけでよいと思いますよ
>>Sub Try2_Mod()
>> Const COL1 = 2  '検索対象列
>> Const ROW1 = 2  '検索する最初の行
>> Const COL2 = 15  '結果を書き込む列
>> Dim i As Long, n As Long
>> Dim v, ss As String
>> Dim dic As Object
>>
>> '↓検索範囲データを(文字列にして)配列にコピーする
  With Worksheets("Sheet2").Columns(COL1).Cells
>>   v = Excel.Range(.Item(ROW1), _
>>          .Item(.Count).End(xlUp)).Value2 '◆修正
>> End With
>>
>> '↓Dicionaryを使って重複チェック
>> Set dic = CreateObject("Scripting.Dictionary")
>> ReDim dup(1 To UBound(v), 0)
>> For i = 1 To UBound(v)
>>   ss = CStr(v(i, 1))   '◆ ここで強制的に文字列にする
>>   If dic.Exists(ss) Then 'すでにこのキーが辞書にあれば
>>     n = dic(ss)    'このキーがどの行で出現したかを得る
>>     If n > 0 Then
>>       dup(n, 0) = "重複" '直前の出現行に「重複」書き込み
>>       dic(ss) = 0
>>     End If
>>     dup(i, 0) = "重複"     'この行に「重複」書き込み
>>   Else
>>     dic(ss) = i   '行のデータを出現行とともに辞書に入れる
>>   End If
>> Next
>> Set dic = Nothing
>>
>> ' COL2 列に結果を書き出す
 Worksheets("Sheet2").Cells(ROW1, COL2).Resize(UBound(dup)).Value = dup
>>End Sub

対象ワークシートも、変数使って
Dim WS As Worksheet
Set WS = Worksheets("Sheet2")
 :
 :
>> '↓検索範囲データを(文字列にして)配列にコピーする
  With WS.Columns(COL1).Cells

 :
 :
>> ' COL2 列に結果を書き出す
 WS.Cells(ROW1, COL2).Resize(UBound(dup)).Value = dup

としておくと、最初の Set WS = の右辺を替えるだけで、
再利用しやすくなりますね。


0 hits

【67407】重複したデータにしるしをつける まりな 10/12/1(水) 16:59 質問
【67409】Re:重複したデータにしるしをつける Jaka 10/12/1(水) 17:08 発言
【67410】Re:重複したデータにしるしをつける kanabun 10/12/1(水) 18:27 発言
【67411】Re:重複したデータにしるしをつける UO3 10/12/1(水) 20:01 回答
【67441】Re:重複したデータにしるしをつける まりな 10/12/3(金) 16:31 質問
【67442】Re:重複したデータにしるしをつける kanabun 10/12/3(金) 17:42 発言
【67443】Re:重複したデータにしるしをつける kanabun 10/12/3(金) 20:30 発言
【67444】Re:重複したデータにしるしをつける kanabun 10/12/3(金) 20:52 発言
【67472】Re:重複したデータにしるしをつける まりな 10/12/8(水) 11:48 質問
【67526】Re:重複したデータにしるしをつける kanabun 10/12/10(金) 17:12 発言
【67524】Re:重複したデータにしるしをつける まりな 10/12/10(金) 16:22 質問
【67527】Re:重複したデータにしるしをつける kanabun 10/12/10(金) 20:24 発言
【67528】Re:重複したデータにしるしをつける kanabun 10/12/10(金) 20:33 発言
【67557】Re:重複したデータにしるしをつける まりな 10/12/13(月) 14:42 お礼
【67572】Re:重複したデータにしるしをつける まりな 10/12/14(火) 15:11 質問
【67574】Re:重複したデータにしるしをつける kanabun 10/12/14(火) 16:57 発言
【67581】Re:重複したデータにしるしをつける まりな 10/12/15(水) 16:52 お礼

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