人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

質問です
\test\の中に複数のCSVファイルがあります。

A列のA1からAnの複数文字列データをチェックしてB列にその重複個数1の数字だけを書き出すマクロをお願いします(重複なしが1になります)

A列
aaaaa
aaaaa
aaaaa
bbbbb
bbbbb
ccccc
eeeee

答え
A列 B列
aaaaa
aaaaa
aaaaa
bbbbb
bbbbb
ccccc 1
eeeee 1




●質問者: inosisi
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● トモア
●0ポイント

複数ファイルなのですね、すみません!


2 ● TransFreeBSD
●100ポイント ベストアンサー

上書きで良いのですよね?

Option Explicit

Sub Macro1()
 Const path = "\test"
 Const grab = "*.csv"
 Const keyCol = 1 ' column A
 Const countCol = 2 ' column B
 Dim dict As Object
 Dim file As String
 Dim last As Long
 Dim i As Long
 Set dict = CreateObject("Scripting.Dictionary")

 file = Dir(path & "\" & grab, vbNormal)
 Do While file <> ""
 dict.RemoveAll
 With Workbooks.Open(path & "\" & file)
 last = Cells(Rows.Count, keyCol).End(xlUp).Row
 For i = 1 To last
 dict.Item(Cells(i, keyCol).Value) = dict.Item(Cells(i, keyCol).Value) + 1
 Next
 For i = 1 To last
 If dict.Item(Cells(i, keyCol).Value) = 1 Then
 Cells(i, countCol).Value = 1
 End If
 Next
 .Close SaveChanges:=True
 End With
 file = Dir
 Loop
End Sub
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ