معرفی و کاربرد تابع STRCOMP در ماکرونویسی اکسل
به نام خداوند بخشنده و مهربان ، این پست آموزشی را اختصاص میدهیم به “معرفی و کاربرد تابع STRCOMP در ماکرونویسی اکسل” بطور ساده و خلاصه از تابع STRCOMP به منظور مقایسه رشته ها در محیط ماکرونویسی استفاده میگردد .
ساختار(Syntax) این تابع بصورت زیر است:
StrComp ( string1, string2 [, compare ] )
توضیح ساختار تابع STRCOMP :
- آرگومان String1 اشاره به اولین رشته جهت مقایسه دارد.
- آرگومان String2 اشاره به دومین رشته جهت مقایسه دارد.
- آرگومان compare که آرگومانی اختیاری است اشاره به نوع مقایسه دارد.
حالت های مقایسه (compare) به شرح زیر می باشد:
توضیحات vbBinaryCompare
درحالت مقایسه vbBinaryCompare جایگاه ، حروف بزرگ و کوچک بودن کارکترها اهمیت دارد که بصورت پیشفرض این حالت مقایسه مقدار Default تابع StrComp است. به ترتیب زیر دقت کنید:
A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø
توضیحات vbTextCompare
در این حالت مقایسه ، جایگاه حروف الفبا اهمیت دارد که با توجه به اولین کارکتر رشته مشخص میشود. بعبارتی دیگر:
(A=a) < (À= à) < (B=b) < (E=e) < (Ê= ê) < (Ø = ø) < (Z=z)
خروجی این تابع اعداد صحیح زیر است:
- اگر رشته اول با رشته دوم برابر باشد خروجی تابع STRCOMP عدد ۰ خواهد بود.
- اگر رشته اول کوچکتر از رشته دوم باشد خروجی تابع STRCOMP عدد -۱ خواهد بود.
- اگر رشته اول از رشته دوم بزرگتر باشد خروجی تابع STRCOMP عدد ۱ خواهد بود.
به ماکروی زیر دقت کنید:
Sub excellearn()
MsgBox StrComp(“Masoudhosseini”, “Excellearn”, vbBinaryCompare)
End Sub
با توجه به توضیحات فوق، در حروف الفبا جایگاه کارکتر M از کارکتر E بزرگتر است ، خروجی تابع فوق عدد ۱ خواهد بود.
حال به ماکروی زیر دقت کنید:
Sub excellearn()
MsgBox StrComp(“Excellearn”, “Masoudhosseini”, vbBinaryCompare)
End Sub
با توجه به توضیحات فوق درحالت مقایسه vbBinaryCompare ، در حروف الفبا جایگاه کارکتر E کوچکتر از کارکتر M است ، لذا خروجی تابع فوق عدد -۱ خواهد بود.
به ماکروی زیر دقت کنید:
Sub excellearn()
MsgBox StrComp(“masoudhosseini”, “Masoudhosseini”, vbBinaryCompare)
End Sub
با توجه به توضیحات فوق در حالت مقایسه vbBinaryCompare ، جایگاه کارکترهای کوچک ، بزرگتر از کارکترهای بزرگ حروف الفبا است لذا خروجی تابع فوق عدد ۱ خواهد بود.
به ماکروی زیر دقت کنید:
Sub excellearn()
MsgBox StrComp(“masoudhosseini”, “Masoudhosseini”, vbTextCompare)
End Sub
با توجه به توضیحات فوق درحالت مقایسه vbTextCompare تنها جایگاه حروف الفبا اهمیت دارد و از آنجاییکه جایگاه کارکترهای M و m یکسان است ، خروجی تابع فوق عدد ۰ خواهد بود.
به ماکروی زیر دقت کنید:
Sub excellearn()
MsgBox StrComp(“excellearn”, “Masoudhosseini”, vbTextCompare)
End Sub
جایگاه کارکتر e در حروف الفبا کوچکتر از کارکتر M است لذا خروجی تابع فوق عدد -۱ خواهد بود.
در ادامه حروف الفبای انگلیسی به همراه جایگاه آنها را مشاهده خواهید نمود :
امیدواریم پست آموزشی “معرفی و کاربرد تابع STRCOMP در ماکرونویسی اکسل” مورد رضایت شما عزیزان قرار گرفته باشد. درصورت وجود هرگونه انتقاد و پیشنهاد میتوانید آن را در قسمت نظرات سایت ارسال نمایید.
سلام سید عزیز
متاسفانه فک کنم این تابع با حروف فارسی مشکل داره. مثلا من وقتی دو حرف “آ” و “ا” رو در حالت vbTextCompare با هم مقایسه میکنم، خروجی رو ۱ نشون میده که یعنی آ از ا بزرگتره. اما وقتی مثلا رشته “آب” رو با رشته “اپ” مقایسه میکنم، باوجود اینکه باید همون نتیجه قبل رو بده (بلاخره کاراکتر اول آب بزرگتر از کاراکتر اول اپ هستش همچنان) ولی نتیجه رو -۱ میده ک ینی “آب” از “اپ” کوچکتره.
شما برای این موضوع راه حلی بذهنتون میرسه؟