At 11:32 +0900 29/7/09, Nobumi Iyanaga wrote:

>...I need to limit the range of messages to be processed from "the 
>currently selected" message, to the last message, sorted by date 
>received...

Hello Nobumi,

I don't use Mail and have no duplicates in my Inboxes to test a 
script with, but  it seems messages are given an id in order of 
arrival, so you can get a list of the message ids (not to be confused 
with the their ids) of the messages that arrived since the selected 
message:

tell application "Mail"
   set _selected to first item in (get selection)
   set _id to id of _selected
   set _mailbox to mailbox of _selected
   set _range to the messages in _mailbox whose id is greater than (_id - 1)
   set _messageids to {}
   repeat with _i in _range
     set end of _messageids to message id of _i
   end repeat
   _messageids
end tell

and then loop again through _range, adding the message id to to a new 
list as you go and deleting messages whose id is already in the new 
list.

JD