دستورات مرتبط با جملات عبارتند از:
دستورات انتخاب بخشی از چپ یا راست جمله، این دستورات بخشی از سمت چپ یا راست جمله ای را برای شما بر می گردانند، دستور نوشتاری فرمان(Syntax) به نحو زیر است:
Left(string, length)
Right(string, length)
مثلا:
Dim AnyString, MyStr
AnyString = "Hello World" ' Define string.
MyStr = Right(AnyString, 1) ' Returns "d".
MyStr = Right(AnyString, 6) ' Returns " World".
MyStr = Right(AnyString, 20) ' Returns "Hello World".
توضیح:
هر دو دستور دارای دو پارامتر اجباری هستند، یعنی باید هر دو پارامتر را در داخل پرانتز به آن بدهید، یکی از پارامترها یک جمله و دیگری یک عدد است.
پارامتر اول، عبارت رشته ای(String)، که از آن جمله مثلا در دستور Right، سمت راست ترین کاراکترها برگردانده می شود.
اگر رشته شامل نول(Null) باشد، نول(Null) برگردانده می شود.
طول جملهی مورد نیاز(length) نیز اجباری است؛ نوع عدد طول جمله میتواند Long باشد. عبارت عددی که نشان می دهد چند کاراکتر باید برگردانده شود.
اگر طول را صفر بدهید، رشته برگشت داده شده با طول صفر ("") برگردانده می شود.
اگر طول بزرگتر یا مساوی تعداد کاراکترهای رشته باشد، کل رشته برگردانده می شود.
دستورات حذف فواصل سمت راست و چپ یک جمله:
LTrim فواصل سمت چپ یک جمله را حذف می کند.
RTrim فواصل سمت راست یک جمله را حذف می کند.
Trim فواصل سمت راست و چپ یک جمله را حذف می کند.
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
LTrim(string)
RTrim(string)
Trim(string)
مثلا:
Dim MyString, TrimString
MyString = " <-Trim-> " ' Initialize string.
TrimString = LTrim(MyString) ' TrimString = "<-Trim-> ".
TrimString = RTrim(MyString) ' TrimString = " <-Trim->".
TrimString = LTrim(RTrim(MyString)) ' TrimString = "<-Trim->".
' Using the Trim function alone achieves the same result.
TrimString = Trim(MyString) ' TrimString = "<-Trim->".
دستورات تبدیل جملات لاتین به حروف بزرگ مثل ABC یا حروف کوچک مثل abc
رشته ای را که به حروف کوچک تبدیل شده است برمی گرداند.
آرگومان رشته مورد نیاز هر عبارت رشته معتبری است. اگر رشته حاوی Null باشد، Null برگردانده می شود.
LCase and UCase functions
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
UCase(string)
LCase(string)
Remarks
Only uppercase letters are converted to lowercase; all lowercase letters and nonletter characters remain
unchanged.
دستور فرمتبندی(قالببندی) یک جمله، که یک متغیر (رشته) حاوی یک عبارت فرمت شده بر اساس دستورالعمل های موجود در یک قالب برمی گرداند.
Formatting
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
Format(expression[, format[, firstdayofweek[, firstweekofyear]]])
دستور Format دارای این قسمت ها است:
قسمت توضیحات
بیان مورد نیاز هر عبارت
قالب اختیاری یک عبارت با نام یا قالب تعریف شده توسط کاربر.
firstdayofweek Optional.
روز اول هفته (اختیاری). ثابتی که اولین روز هفته را مشخص می کند.
firstdayofweek Optional.
هفته اول سال اختیاری. ثابتی که هفته اول سال را مشخص می کند.
تنظیمات
آرگومان firstdayofweek این تنظیمات را دارد:
vbUseSystem 0 Use NLS API setting.
VbSunday 1 Sunday (default)
vbMonday 2 Monday
vbTuesday 3 Tuesday
vbWednesday 4 Wednesday
vbThursday 5 Thursday
vbFriday 6 Friday
vbSaturday 7 Saturday
آرگومان firstweekofyear این تنظیمات را دارد:
vbUseSystem 0 Use NLS API setting.
vbFirstJan1 1 Start with week in which January 1
occurs (default).
vbFirstFourDays 2 Start with the first week that has at
least four days in the year.
vbFirstFullWeek 3 Start with the first full week of the
year.
d 1-30
dd 1-30
ww 1-51
mmm Displays full month names (Hijri month names have no abbreviations).
y 1-355
yyyy 100-9666
مثال:MyTime و MyDate با استفاده از تنظیم زمان کوتاه سیستم فعلی و تنظیم تاریخ کوتاه نمایش داده می شوند.
Dim MyTime, MyDate, MyStr
MyTime = #17:04:23#
MyDate = #January 27, 1993#
' Returns current system time in the system-defined long time format.
MyStr = Format(Time, "Long Time")
' Returns current system date in the system-defined long date format.
MyStr = Format(Date, "Long Date")
MyStr = Format(MyTime, "h:m:s") ' Returns "17:4:23".
MyStr = Format(MyTime, "hh:mm:ss AMPM") ' Returns "05:04:23 PM".
MyStr = Format(MyDate, "dddd, mmm d yyyy") ' Returns "Wednesday,
' Jan 27 1993".
' If format is not supplied, a string is returned.
MyStr = Format(23) ' Returns "23".
' User-defined formats.
MyStr = Format(5459.4, "##,##0.00") ' Returns "5,459.40".
MyStr = Format(334.9, "###0.00") ' Returns "334.90".
MyStr = Format(5, "0.00%") ' Returns "500.00%".
MyStr = Format("HELLO", "<") ' Returns "hello".
MyStr = Format("This is it", ">") ' Returns "THIS IS IT".
آنچه در بالا درباره فرمت مشاهده کردید در رابطه با تاریخ میلادی بود، در رابطه با تاریخ شمسی یا به عبارتی تاریخ جلالی توابع و ماژولهایی توسط ایرانیان تولید شده است که می توانید با استفاده از این توابع و دستورات به راحتی به تاریخ فارسی نیز دسترسی داشته باشید. به اینجا مراجعه کنید.
دستورات مرتبط با قالب بندی واحد پولی، درصد و اعداد
FormatCurrency, FormatPercent, FormatNumber
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
FormatCurrency(Expression[,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]])
FormatPercent(Expression[,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]]) FormatNumber(Expression[,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]])
پاارمتر NumDigitsAfterDecimal اختیاری است. مقدار عددی که نشان می دهد چند کاراکتر به سمت راست اعشار نمایش داده می شود. مقدار پیش فرض -1 است که نشان می دهد که از تنظیمات منطقه ای(Region) کامپیوتر استفاده شده است.
IncludeLeadingDigit اختیاری است.
پارامتر UseParensForNegativeNumbers اختیاری است.
GroupDigits اختیاری است.
مثال:
result = FormatCurrency(324.45)
result = FormatPercent(324.45, 0)
result = FormatNumber(324.45, 2)
دستور تعیین قالب بندی تاریخ و زمان
FormatDateTime
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
FormatDateTime(Date[,NamedFormat])
پارامتر Date اجباری است.
NamedFormat اختیاری است. مقدار عددی که فرمت تاریخ/زمان استفاده شده را نشان می دهد. در صورت حذف، vbGeneralDate استفاده شده است.
آرگومان NamedFormat دارای تنظیمات زیر است:
نتایج استفاده پارامتر با اعداد مختلف به شرح زیر است:
vbGeneralDate 0
Sub main()
MsgBox FormatDateTime(Date)
MsgBox FormatDateTime(Time)
End Sub
منتج به نمایش این مقدار خواهد شد: 4/14/2023
سایر نتایج:
vbLongDate 1
Friday, April 14, 2023
vbShortDate 2
4/14/2023
vbLongTime 3
8:01:51 PM
vbShortTime 4
20:01
دستور انتخاب بخش از وسط جمله:
Mid function
یک متغیر (رشته) حاوی تعداد مشخصی از کاراکترهای یک رشته را برمیگرداند.
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
Mid(string, start[, length])
Dim MyString, FirstWord, LastWord, MidWords
MyString = "Mid Function Demo" ' Create text string.
FirstWord = Mid(MyString, 1, 3) ' Returns "Mid".
LastWord = Mid(MyString, 14, 4) ' Returns "Demo".
MidWords = Mid(MyString, 5) ' Returns "Function Demo".
نمایش کارکتر کد مورد نظر:
این دستور یک کد 3 رقمی دریافت می کند و کاراکتری را بر می گرداند که کدش کد مورد نظر شما است.
Chr Function
یک رشته حاوی کاراکتر مرتبط با کد کاراکتر مشخص شده را برمی گرداند.
آرگومان charcode مورد نیاز Long است که یک کاراکتر را مشخص می کند.
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
Chr(charcode)
Dim MyChar
MyChar = Chr(65) ' Returns A.
MyChar = Chr(97) ' Returns a.
MyChar = Chr(62) ' Returns >.
MyChar = Chr(37) ' Returns %.
مثلا: مقدار برگشتی برای 64 کاراکتر A است.
دستور تعیین طول کاراکترهای(تعداد حروف) یک جمله
Len Function
یک متغییر از نوع Long حاوی تعداد کاراکترهای یک رشته را برمی گرداند
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
Len(string | varname)
Label1 = Len(Text1) ' Text1 = “Blah”
' Label1 = “4”
دستور پیدا کردن نقطه شروع یک جمله در جملهای دیگر:
InStr function
یک متغیر (از نوع Long) را برمیگرداند که موقعیت اولین وقوع یک رشته در رشته دیگر را مشخص میکند.
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
InStr([start, ]string1, string2[, compare])
تابع InStr دارای این آرگومان ها است:
شروع اختیاری عبارت عددی که موقعیت شروع را برای هر جستجو تعیین می کند. در صورت حذف، جستجو از اولین موقعیت کاراکتر شروع می شود. اگر start حاوی Null باشد، خطایی رخ می دهد. آغاز اگر مقایسه مشخص شده باشد، آرگومان مورد نیاز است.
string1 اجباری است. عبارت رشته در حال جستجو است.
string2 اجباری است. عبارت رشته جستجو شد.
آرگومان مقایسه اختیاری است.
یک LCID معتبر (LocaleID) برای استفاده از قوانین محلی خاص در مقایسه مشخص کنید.
تنظیمات آرگومان مقایسه عبارتند از:
vbUseCompareOption -1 مقایسه ای را با استفاده از تنظیمات انجام می دهد
vbBinaryCompare 0 مقایسه باینری را انجام می دهد.
vbTextCompare 1 مقایسه متنی را انجام می دهد.
vbDatabaseCompare 2 فقط Microsoft Access. مقایسه ای انجام می دهد
If InStr returns
string1 is zero-length 0
string1 is Null Null
string2 is zero-length start
string2 is Null Null
string2 is not found 0
string2 is found within string1 Position at which match is found
start > string2 0
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' String to search in.
SearchChar = "P" ' Search for "P".
' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(4, SearchString, SearchChar, 1)
' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(1, SearchString, SearchChar, 0)
MyPos = Instr(SearchString, SearchChar) ' Returns 9.
Aaron Wirth
9
MyPos = Instr(1, SearchString, "W") ' Returns 0.
دستور تولید جمله:
String function
تکرار یک حرف برای رسیدن به جمله ای جدید.
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
String(number, character)
حداکثر تعداد تکرار 256 می تواند باشد.
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
InstrRev
موقعیت وقوع یک رشته در رشته دیگر را از انتهای رشته برمی گرداند.
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
InstrRev(stringcheck, stringmatch[, start[, compare]])
آرگومان compare می تواند مقادیر زیر را داشته باشد:
1- (منفی یک)
vbUseCompareOption
مقایسه ای را با استفاده از تنظیمات Option انجام می دهد
0(صفر)
vbBinaryCompare
مقایسه باینری را انجام می دهد.
1(یک)
vbTextCompare
مقایسه متنی را انجام می دهد.
2(دو)
vbDatabaseCompare
فقط انجام مقایسه بر اساس اطلاعات موجود در پایگاه دادهMicrosoft Access شما
دستور تشخیص کد ASCII یک کاراکتر:
Asc Function
Returns an Integer representing the character code corresponding to the first letter in a string.
یک عدد از نوع Integer، را به عنوان کد اولین کاراکتری که در جمله ای که به عنوان پارامتر به آن می دهید را باز می گرداند.
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
Asc(string)
مثلا
Dim MyNumber
MyNumber = Asc("A") ' Returns 65.
MyNumber = Asc("a") ' Returns 97.
MyNumber = Asc("Apple") ' Returns 65.
مثلا: عدد 65 به عنوان کد کاراکتر A بازگردانده شده است.
دستور تولید یک جمله سرتاسر فاصله، این دستور شاید اضافه باشد چون دستور String همین کار را می تواند به صورت کاملتر انجام دهد.
Space Function
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
sRecord$ = Space(128)
دستور جایگزینی عبارتی بجای عبارت دیگری در در یک جمله
Replace Function
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
Replace(expression, find, replace[, start[, count[, compare]]])
مثلا:
a$=Replace("ali find book in library", "find", "replace")
پس از اجرای این دستور، در متغییر $a، این جمله وجود خواهد داشت:
ali replace book in library
البته همانطور که در دستور نوشتاری فرمان و آرگومانهای فرمان ملاحظه می کنید، میتوانید نقطه شروع جایگزینی و تعداد جایگزینی را نیز تعیین کنید و حتی می توانید نوع مقایسه عبارات را نیز تعیین کنید
دستور مقایسۀ دو جمله:
StrComp function
Returns a Variant (Integer) indicating the result of a string comparison.
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
StrComp(string1, string2[, compare])
نتیجه اجرای این دستور یک عدد از نوع Integer است، اگر عبارتی در جمله ای باشد نتیجه درست برمی گردد.
Dim MyStr1, MyStr2, MyComp
MyStr1 = "ABCD": MyStr2 = "abcd" ' Define variables.
MyComp = StrComp(MyStr1, MyStr2, 1) ' Returns 0.
MyComp = StrComp(MyStr1, MyStr2, 0) ' Returns -1.
MyComp = StrComp(MyStr2, MyStr1) ' Returns 1.
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
StrConv function
Returns a Variant (String) converted as specified.
دستور نوشتاری فرمان(Syntax) به نحو زیر است:
StrConv(string, conversion, LCID)
conversion
Constant |
Value |
Description |
vbUpperCase |
1 |
Converts the string to uppercase characters. |
vbLowerCase |
2 |
Converts the string to lowercase characters. |
vbProperCase |
3 |
Converts the first letter of every word in a string to uppercase. |
vbWide |
4 |
Converts narrow (single-byte) characters in a string to wide (double-byte) characters. |
vbNarrow |
8 |
Converts wide (double-byte) characters in a string to narrow (single-byte) characters. |
vbKatakana |
16 |
Converts Hiragana characters in a string to Katakana characters. |
vbHiragana |
32 |
Converts Katakana characters in a string to Hiragana characters. |
vbUnicode |
64 |
Converts the string to Unicode using the default code page of the system. (Not available on the Macintosh.) |
vbFromUnicode |
128 |
Converts the string from Unicode to the default code page of the system. (Not available on the Macintosh.) |
مثلا:
Sub StrConv_Example2()
Dim TextValues As String
Dim Result As String
TextValues = "ACCESS vba"
Result = StrConv(TextValues, vbLowerCase)
MsgBox Result
End Sub