Excel VBA質問箱 IV

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

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


2093 / 13645 ツリー ←次へ | 前へ→

【69981】重複してる番号の表示 初心者 11/10/4(火) 18:23 質問[未読]
【69983】Re:重複してる番号の表示 kanabun 11/10/4(火) 22:58 発言[未読]
【69991】Re:重複してる番号の表示 初心者 11/10/5(水) 18:57 質問[未読]
【69992】Re:重複してる番号の表示 kanabun 11/10/5(水) 20:25 発言[未読]

【69981】重複してる番号の表示
質問  初心者  - 11/10/4(火) 18:23 -

引用なし
パスワード
   教えてください
C1〜C300まで5ケタの番号が入っており
ユーザーフォームにてその番号が重複してたら番号の表示をするには
どのようにしたらよいのでしょうか

【69983】Re:重複してる番号の表示
発言  kanabun  - 11/10/4(火) 22:58 -

引用なし
パスワード
   ▼初心者 さん:

>C1〜C300まで5ケタの番号が入っており
>ユーザーフォームにてその番号が重複してたら番号の表示をするには

とりあえず、[C1:C300]の重複する番号とその行位置をシートに表示する
プログラムです。
[C1:C300]データだけを別シートにコピーして、そのシートをアクティブ
にして、
以下を標準モジュールにコピーして実行して試してみてください。

Sub DupCheck1()
  Dim v As Variant
  Dim i As Long
  Dim ss As String
  Dim dic As Object
  Const z = "_"
  
  Set dic = CreateObject("Scripting.Dictionary")
  v = Range("C1:C300").Value
  For i = 1 To UBound(v)
    ss = v(i, 1)
    If Not dic.Exists(ss) Then
      dic(ss) = i
    Else
      dic(ss) = dic(ss) & z & i
    End If
  Next
  For Each v In dic.Keys()
    If InStr(dic(v), z) = 0 Then dic.Remove v
  Next
  
  If dic.Count < 1 Then Exit Sub
  Range("E1").Resize(dic.Count, 2).Value = _
    Application.Transpose(Array(dic.Keys, dic.Items))

End Sub

【69991】Re:重複してる番号の表示
質問  初心者  - 11/10/5(水) 18:57 -

引用なし
パスワード
   ▼kanabun さん:
>
>>C1〜C300まで5ケタの番号が入っており
>>ユーザーフォームにてその番号が重複してたら番号の表示をするには
>  Range("E1").Resize(dic.Count, 2).Value = _
>    Application.Transpose(Array(dic.Keys, dic.Items))
ここのところでエラーになってしまいます。
どこがいけないのでしょうか

【69992】Re:重複してる番号の表示
発言  kanabun  - 11/10/5(水) 20:25 -

引用なし
パスワード
   ▼初心者 さん:
>▼kanabun さん:
>>  Range("E1").Resize(dic.Count, 2).Value = _
>>    Application.Transpose(Array(dic.Keys, dic.Items))
>ここのところでエラーになってしまいます。

どのようなエラーメッセージですか?

そのとき、重複する番号は何種類ありますか?
エラーになる行の直前に MsgBox で dic.Count を調べてください。
  
>  If dic.Count < 1 Then Exit Sub
  MsgBox "重複番号は" & dic.Count & " あります"
>  Range("E1").Resize(dic.Count, 2).Value = _
>    Application.Transpose(Array(dic.Keys, dic.Items))

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