سلام
مشکل حل شد
بعد از تذکر شیما خانم (که از برنامه خوبشان و تذکرشان بسیار متشکرم :oops: ) رفتم که مشکل را حل کنم
بعد از کلنجار رفتن با کد قبلی کد نهایی را آماده کردم و در یک کلاس جای دادم
این کد اشکال یابی شده است و ضمنا تنها یک حرف را کشیده نمیکند بلکه تمام حروف را کشیده خواهد کرد
این کد نهایی است و مشکل من که در ابتدا این تاپیک مطرح کردم حل شد
اگر اشکالی در این کد پیدا کرده اید در همین تاپیک ذکر کنید
باز هم از همه عزیزانی که به این تاپیک توجه نشان دادند با نوشتن کد ویا مطالب مهم مرا راهنمایی کردند کمـــال احترام و تشکر را دارم (خیلی ادبی شده . نه؟ :wink: )
دقت کنید این کد برای یک کلاس است
Option Explicit
Option Base 1
Dim strText As String, Rselect As Integer
Dim mLenmain As Integer, mlen As Integer
Dim G As Integer
Dim S1 As String, S2 As String
Dim y As Integer, q As String
Public Function Justify(strString As String, Optional ApplyLen As Integer = 50) As String
mLenmain = 0: strText = ""
strText = Trim(strString)
mLenmain = Len(strText)
If mLenmain > ApplyLen Then GoTo EWE
If ApplyLen = 0 Then
ApplyLen = 50
End If
G = ApplyLen - mlen
y = 0
DPO:
mlen = Len(strText)
Rselect = Selectchars(strText)
S1 = Left$(strText, Rselect)
S2 = Right$(strText, mlen - Rselect)
q = "ـ"
y = y + 1
strText = S1 & q & S2
If y < G Then
GoTo DPO
End If
EWE:
Justify = strText
End Function
Private Function Selectchars(Str As String) As Integer
Dim I(25) As Integer, Z As Byte
I(1) = InStr(1, Str, "ب")
I(2) = InStr(1, Str, "پ")
I(3) = InStr(1, Str, "ت")
I(4) = InStr(1, Str, "ث")
I(5) = InStr(1, Str, "ج")
I(6) = InStr(1, Str, "چ")
I(7) = InStr(1, Str, "ح")
I(8) = InStr(1, Str, "خ")
I(9) = InStr(1, Str, "س")
I(10) = InStr(1, Str, "ش")
I(11) = InStr(1, Str, "ص")
I(12) = InStr(1, Str, "ض")
I(13) = InStr(1, Str, "ط")
I(14) = InStr(1, Str, "ظ")
I(15) = InStr(1, Str, "ع")
I(16) = InStr(1, Str, "غ")
I(17) = InStr(1, Str, "ف")
I(18) = InStr(1, Str, "ق")
I(19) = InStr(1, Str, "ک")
I(20) = InStr(1, Str, "گ")
I(21) = InStr(1, Str, "ل")
I(22) = InStr(1, Str, "م")
I(23) = InStr(1, Str, "ن")
I(24) = InStr(1, Str, "ه")
I(25) = InStr(1, Str, "ی")
RE:
Z = Int(Rnd * 25) + 1
If I(Z) = 0 Or I(Z) = mlen Then GoTo RE
If Mid$(strText, I(Z) + 1, 1) = "ا" Then GoTo RE
If Mid$(strText, I(Z) + 1, 1) = Chr$(32) Then GoTo RE
Selectchars = I(Z)
End Function
Private Sub Class_Initialize()
Call Randomize
End Sub