結構いろいろできるっぽいのでメモ。
使いまわせるとよいなぁ...。
Private Function ConvertToUrlLink(ByVal value As String) As String
Dim startIndex As Integer = 0
Dim endIndex As Integer = 0
Dim cntChr As Integer = 0
Dim iAscCode
If value.IndexOf("http://") > -1 Then _
startIndex = value.IndexOf("http://")
If value.IndexOf("https://") > -1 Then _
startIndex = value.IndexOf("https://")
'一文字ずつ切り出し
For Each chr As Char In value.Substring( _
startIndex, (value.Length - (startIndex + 1)))
'2バイト文字だったらendIndexに位置を代入
iAscCode = Asc(chr)
If Len(Hex(iAscCode)) > 2 Then endIndex = cntChr
'アルファベット/数字/記号以外ならendIndexに位置を代入
If Not Char.IsLetterOrDigit(chr) _
And Not Char.IsPunctuation(chr) Then _
endIndex = cntChr
'空白だったらendIndexに位置を代入
If Char.IsWhiteSpace(chr) Then endIndex = cntChr
'endIndexが0以上ならループを抜ける
If endIndex > 0 Then Exit For
’Indexをカウント
cntChr += 1
Next
'URL部分が判別できなかったら
'とりあえず全部URLとして切り出す。
If endIndex = 0 Then _
endIndex = value.Length - (startIndex + 1)
’URL部分の切り出し
Dim url As String = value.Substring(startIndex, endIndex)
'リンクとして挿入(リンクはブランク表示する)
value = value.Insert(startIndex + endIndex, _
""" target=""_blank"">" & url & "")
value = value.Insert(startIndex, _
"
Return value
End Function
...うん。無理やり。('A`)