|    | 
     kanabun氏 
 
返信遅くなり申し訳ありません。 
 
下記を実施してみたところ、 
最終行を取得の際 
 
>   Else 
>   v(i + 1, 1) = u 
 
実行エラー9 インデックスが有効範囲にありません。 
 
実際には下記のような形なのですが、 
9:00    メール受信。      
1212    AAABBBCCCDDDEEE 
1212    FFFGGGHHHIIIJJJ     
 
10:12    メール受信。     
1214    AAABBBCCCDDDEEE 
1214    FFFGGGHHHIIIJJJ 
 
数式では2012/2/3 09:00:00、2012/2/1 10:12:00になっています。 
日付が入ってしまっていることが原因でしょうか。 
 
お手数をかけて申し訳ありませんが、 
よろしくお願いします。 
 
▼kanabun さん: 
>▼シンク さん: 
> 
>>以前記載していただいたソースでソートをした場合 
>>日付を跨いだ際に時間が逆になってしまうことです。 
> 
>直前の Try3() 方式でトライしてみてください。 
> 
>Sub Try3b() 
> Dim s, u, v, i As Long 
> Dim r As Range 
> Const CLSID_DataObject = "1C3B4210-F441-11CE-B9EA-00AA006B1A69" 
>  
> Set r = Range("A1", Cells(Rows.Count, 1).End(xlUp).Offset(1)) 
> v = r.Value2 
> r.Copy 
> With GetObject("new:" & CLSID_DataObject) 
>   .GetFromClipboard 
>   s = Split(.GetText(1), vbCrLf) 
> End With 
> Application.CutCopyMode = 0 
>  
> For i = 0 To UBound(s) 
>   If InStr(s(i), ":") > 0 Then ' dataに 「:」があるか?あれば date  
>     u = v(i + 1, 1) 
>   Else 
>     v(i + 1, 1) = u 
>   End If 
> Next 
> r.Offset(, 2).Value = v 
> Stop 
> r.Resize(, 3).Sort r.Columns(3), Header:=xlNo 
> Columns(3).Clear 
>  
>End Sub 
 | 
     
    
   |