|
▼桜 さん:
おはようございます!
遅くなってすみません。
えっと、簡単に考えると
>フォルダ名
> Aフォルダ
>ファイル名
> 1.txt
> 2.txt
↑のようなものをフォルダ名ごとに作り、
それをメールの本文にいれ一つ一つ送信したいという
感じなのでしょうか?
とりあえず最初の目的だけと考えまして。
下のサンプルコードを考えてみましたが参考になりますでしょうか。
こちらは、sheet1からsheet2に1行空白を入れ記述していく仕様です。
この[フォルダ名]と[ファイル名]をメール本文に入れていけばいけますか?
Sub test0()
Dim Dic As Object
Dim Keys As Variant
Dim i As Long
Dim j As Long
Dim buf1 As String
Dim buf2 As String
Dim buf3 As String
Dim RowCnt As Long
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set Dic = CreateObject("Scripting.Dictionary")
Set ws1 = ThisWorkbook.Worksheets("sheet1")
Set ws2 = ThisWorkbook.Worksheets("sheet2")
RowCnt = ws1.Range("A" & ws1.Rows.Count).End(xlUp).Row
For i = 1 To RowCnt
buf1 = ws1.Cells(i, 1).Value
buf2 = ws1.Cells(i, 2).Value
If Not Dic.Exists(buf1) Then 'キーが被らなかったら
Dic.Add buf1, buf2
Else 'キーが被ったら
buf3 = Dic.Item(buf1) & Chr(10) & buf2 'アイテムに追加
Dic.Item(buf1) = buf3 'アイテム書き換え
End If
Next
Keys = Dic.Keys
j = 0
'sheet2へ記入
For i = 0 To Dic.Count - 1
ws2.Cells(j + 2, 1).Value = Keys(i) 'フォルダ名記入
ws2.Cells(j + 3, 1).Value = Dic.Item(Keys(i)) 'ファイル名記入
j = j + 3
Next
End Sub
|
|