چه جوری در اکسل مثل یک حرفه ای کد نویسی کنیم ؟
سلام به همراهان همیشگی سافت پلاس . در آموزش امروز و در ادامه مطالب مربوط به آموزش برنامه نویسی VBA می خواهیم در مورد نحوه کد نویسی حرفه ای در اکسل با هم صحبت کنیم .
همه ما دوست داریم که به نحوی تبدیل به یک برنامه نویس حرفه ای شویم و بتوانیم بصورت حرفه ای کد نویسی کنیم .
همینطور دوست داریم که وقتی دیگران به برنامه ما نگاه می کنند هم ما را تحسین کنند و هم برنامه کد نویسی شده به دست ما را و به نحوی می خواهیم در نظر دیگران یک برنامه نویس همه چیز تمام بنظر بیاییم .
اما واقعا وقتی صحبت از حرفه ای بودن و کد نویسی حرفه ای می کنیم منظورمان چی هست ؟ آیا می شود تعریف درستی از واژه حرفه ای بودن در برنامه نویسی داشته باشیم ؟
البته در اینجا نمی خواهم خیلی وارد مباحث فلسفی و استدلالی بشوم که اصلا ما به چه کسی و چه موقع می توانیم لقب یک برنامه نویسی حرفه ای را بدهیم .
اصلا بیایید همه این بحث ها و دعواها را کنار بگذاریم . بیایید فرض کنید که من و شما یک برنامه نویس حرفه ای نیستیم . حالا باید چکار بکنیم که تبدیل به یک برنامه نویس حرفه ای شویم ؟
حرفه ای بودن را در دو سطح می شود تعریف کرد .
سطح اول در ظاهر کار است . اینکه برنامه ما با چه شکل و شمایلی برای کاربر نمایش داده می شود و چقدر کاربر را جذب محیط کاری خود می کند .
و دیگر اینکه آیا کدهایی که ما برای برنامه خود نوشته ایم و آنها را برای اجرا در اختیار برنامه خود قرار داده ایم ، آیا همان قدر که این کدها برای برنامه ما قابل فهم می باشند ، همانقدر هم برای خواننده ما هم قابل فهم هستند .
یادمان باشد که مخاطب اولین قضاوت خود در خصوص مهارت ما در برنامه نویسی را در نگاه اول و با توجه به ظاهر کار ما انجام خواهد داد سطح دوم مهارت مربوط به میزان مهارت ما در امر برنامه نویسی و تجزیه و تحلیل مسائل مختلف در قالب کدهای مختلف می باشد .
مهارت از نوع دوم خود داستان جدایی دارد که در آینده و در مطلب جداگانه ای راجع به آن با هم صحبت خواهیم کرد . اما امروز می خواهم در مورد مهارتی که در بخش اول صحبت هایم به آن اشاره کردم با هم صحبت کنیم .
من علیرضا شهرآئینی هستم و در این مطلب نکاتی را برای شما بازگو می کنم که با در نظر گرفتن و رعایت این نکته ها یک قدم بزرگ بر خواهی داشت به سمت اینکه در بین اطرافیانت به عنوان یک برنامه نویس ماهر شناخته شوی.
پس تا پایان من را همراهی کن .
نکات کاربردی برای تبدیل شدن به یک کد نویسی حرفه ای
در قدم اول باید به خوبی با قابلیت های مربوط به محیط ویرایشگر کدهای وی بی ای آشنا شوید . خیلی از جاها این محیط کمک های خوبی را برای کد نویسی به من و شما می کند .
کمک های کوچک و بزرگی که گاهی اصلا به چشم ما نمی آید و شاید تا به حال از آنها هیچ خبری هم نداشتیم و به آنها اهمیتی هم نمی دادیم . در اینجا می خواهم به چند مورد از آنها اشاره کنم .
۱- برای بررسی اولین قابلیت به محیط کد نویسی VBA بروید و این کدهای ساده زیر را در آن تایپ کنید
قبل از اینتر زدن ' ۲+۳ بعداز اینتر زدن' ۲ + ۳
متوجه کاری که برنامه برای ما کرد شدید .
در واقع وقتی که خط اول از کد خودمان را می نویسیم با زدن دکمه Enter می خواهیم به سراغ خط دوم برویم . در این بین برنامه بطور خودکار فاصله هایی را در برخی از نقاط ایجاد می کند.
این کار باعث می شود که کاراکترهای موجود در خطوط کد ما کمی از هم فاصله گرفته و این کار کمک خوبی به خوانایی کدهای ما می کند .
این از اولین قابلیت مربوط به محیط ویرایشگر کدها یا همان VBE .
۲- قابلیت کاربردی دیگری که وجود دارد این است که برنامه بطور خودکار همه کلمات کلیدی را که ار آنها در ساختار کدهای خود استفاده می کنیم را به رنگ متفاوت از سایر خطوط کد در می آورد .
مثلا به خطوط کد زیر نگاه کنید .
'قبل inumber=activesheet.range("B2").value
حالا همین خط از کد را کپی کرده و آنها را در داخل محیط کد نویسی خود قرار دهید به محض Enter زدن تغییر رنگ در کلمات کلیدی به خوبی به نمایش در می آید .
۳- قابلیت دیگری که بطور خودکار از طرف ویرایشگر برنامه بر روی کدهای ما اعمال می شود این است که حرف اول تمام کلمات کلیدی را بطور خودکار به حروف بزرگ تبدیل می کند .
مثلا به کدهای زیر نگاه کنید .
'قبل inumber=activesheet.range("B2").value
'بعد inumber = Activesheet.Range("B2").Value
یک مطلب خواندنی : فیلتر کردن داده ها در اکسل توسط کدنویسی VBA
خط اول از این کدها آن چیزی است که ما می نویسیم و خط دوم همان کدها بعد از زدن دکمه Enter از طرف ما را به نمایش می گذارد متوجه تغییرات در خط دوم می شوید ؟
۴-یکی از قابلیت های بسیار مهم و کاربردی در محیط کدنویسی VBA قابلیتی است به نام Intelligence که خیلی جاها در حین کد نویسی می تواند به ما کمک کند .
این قابلیت معمولا وقتی به وجود می آید که ما در حین کد نویسی از یک علامت نقطه یا همان Dot استفاده می کنیم . بعد از این کار معمولا یک لیست برای ما نمایش داده می شود .
اما اگر بخواهیم بنا بر هر دلیل از این قابلیت در جاهای دیگری بنابر تشخیص خود استفاده کنیم کافی است که از روی صفحه کلید خود دکمه های CTRL و SpaceBar را بطور همزمان نمایش دهیم .
اینها چند مورد از قابلیت هایی بود که برنامه در اختیار ما قرار می دهد . چیز هایی که شاید در نگاه اول چندان مهم به نظر نرسند . اما یک لحظه تصورش را بکنید که بخواهید برای همه کدهای خود این کارها را خودتان بصورت دستی انجام دهید .
در این صورت به خوبی متوجه اهمیت این قابلیت های کاربردی خواهید شد .
همانطور که گفتم اینها قابلیت های درونی خود برنامه VBE است و فرقی هم نمی کند که من یا شما یک برنامه نویس حرفه ای باشیم یا یک برنامه نویس تازه کار چون در هر صورت این قابلیت ها کار خود را خواهند کرد .
اما از اینجا به بعد می خواهم به بررسی مواردی اشاره کنم که دیگر از طرف این محیط به ما ارائه نمی شود و این خود ما هستیم که با در نظر گرفتن و اجرا کردن این موارد می توانیم تا حد زیادی کدهای خود را به سمت حرفه ای تر شدن سوق دهیم.
کد های خود را بصورت خوانا بنویسید
همیشه یادتان باشد که کدها باید هم برای کامپیوتر شما قابل خواندن باشد هم برای خودتان . پس بهتر است که به نحوی کدهای خود را بنویسید که بعدا به راحتی برای خودتان قابل درک باشد .
مثلا به کدهای زیر نگاهی بکنید .
Sub MergeWBs()
Application.EnableEvents = False
Application.ScreenUpdating = False
Dim path As String, ThisWB As String, lngFilecounter As Long
Dim wbDest As Workbook, shtDest As Worksheet, ws As Worksheet
Dim Filename As String, Wkb As Workbook
Dim CopyRng As Range, Dest As Range
Dim RowofCopySheet As Integer
RowofCopySheet = 2 ' Row to start on in the sheets you are copying from
ThisWB = ActiveWorkbook.Name
path = GetDirectory("Select a folder containing Excel files you want to merge")
Set shtDest = ActiveWorkbook.Sheets(1)
Filename = Dir(path & "\*.xlsm", vbNormal)
If Len(Filename) = 0 Then Exit Sub
Do Until Filename = vbNullString
If Not Filename = ThisWB Then
Set Wkb = Workbooks.Open(Filename:=path & "\" & Filename)
Set CopyRng = Wkb.Sheets(1).Range(Cells(RowofCopySheet, 1), Cells(ActiveSheet.UsedRange.Rows.Count, ActiveSheet.UsedRange.Columns.Count))
Set Dest = shtDest.Range("A" & shtDest.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1)
CopyRng.Copy Dest
Wkb.Close False
End If
Filename = Dir()
Loop
Application.EnableEvents = True
Application.ScreenUpdating = True
"MsgBox "Macro Complete
End Sub
این کدها برای کامپیوتر ما به راحتی قابل خواندن و اجرا کردن هستند و هیچ مشکلی هم برای آن ایجاد نمی کنند .
اما آیا همان قدر که این کدها برای کامپیوتر قابل خواندن هستند برای ما هم قابلیت خوانایی دارند .
شاید برخلاف نظر من پاسخ شما به این سوال مثبت باشد . اما از شما می خواهم کمی صبر کنید و با هم یکسری از تعییرات را در ساختار این خط از کدها بدهیم بعد مجددا این سوال را از شما بپرسم .
بیایید با هم قدم به قدم پیش برویم و تغییراتی را در این کدها ایجاد کنیم . فقط یادتان باشد که ما قرار نیست هیچ تغییری در ماهیت این کدها بدهیم و خروجی این کدها قرار نیست هیچ تغییری بکند .
و اما کارهایی که می توانیم بکنیم .
پیشنهاد اول : فاصله خالی بین خطوط کدها
لازم نیست که همه صفحه کاری من و شما شامل خطوط فشرده ای از کدها باشد . برای ایجاد خوانایی بهتر کدها می توانیم بین آنها فاصله هایی را ایجاد کنیم .
مثلا به کدهای زیر که اصلاح شده کدهای قبلی هستند نگاه کنید .
می بینید که با ایجاد خطوط خالی در بین کدهای نوشته شده کمی از آن حالت تراکم خطوط کد که خیلی به هم نزدیک بودند کاسته شد و چشم ما بهتر می تواند در بین این خطوط حرکت کند .
پیشنهاد دوم : از تو رفتگی ها استفاده کنید
کار جالب دیگری که می توانیم بکنیم این است که در طول خطوط کد خود نیز یک سری از فواصل خالی را ایجاد کنیم و از این طریق نیز خوانایی بهتری به کدهای خود بدهیم .
مثلا به کدهای زیر نگاه کنید .
در اینجا هم با کمک تورفتگی هایی که در خطوط کد خود ایجاد کرده ایم خوانایی کدهای خود را تا حد زیادی راحت تر کردیم . .
برای ایجاد تورفتگی در یک یا چند خط از کدهای خود می توانیم از دکمه Tab صفحه کلید خود استفاده کنیم .
برای این کار کافی است نشانگر موس خود را قبل از خط کد مورد نظر قرار دهید . سپس با زدن دکمه Tab ملاحظه می کنید که خط مورد نظر ار سمت چپ فاصله می گیرد . این کار را تا رسیدن به نقطه مورد نظر خود تکرار کنید .
البته برای این کار روش دیگری هم وجود دارد و آن هم استفاده از آیکونی است به نام Indent که معمولا در نوار ابزار وجود دارد .
با هر بار کلیک بر روی این آیکون دقیقا عمل مشابه فشردن Tab برای ما رخ می دهد خطوط کد ما دچار فرو رفتگی می شوند .
پیشنهاد سوم : از کامنت گذاری کدها غتفل نشوید
شاید هیچ چیز در محیط کد نویسی به اندازه کامنت ها برای مخاطبی که دارد کدهای ما را بررسی می کند نمی تواند کمک کننده و راهگشا باشد و از طرفی هم برنامه ما را صاحب کد نویسی حرفه ای می کنند .
کامنت ها برای مفسر برنامه ما بی ارزش هستند .
این به این خاطر است که مفسر برنامه از آنها سر در نمی آورد و اصلا هم به آنها توجه نمی کند . اما در عوض کامنت ها برای خواننده انسانی کدها فوق العاده می توانند مهم باشند .
کامنت ها توضیحاتی هستند که برنامه نویس در مورد کاری که هر خط از کد یا هر بلوک از کد انجام می دهند برای فهم بهتر خواننده در بین خطوط کد خود درج می کند .
پیشنهاد چهارم : خطوط کد خو را طولانی نکنید
البته برای کامپیوتر تفاوتی نمی کند که شما کدهایی را که می توانید در سه خط مجزا بنویسید آنها را در یک خط بنویسید .
اما یادتان نرود شمت فقط برای کامپیوترها کد نویسی نمی کنید . بعضی از مواقع لازم است که کدهای نوشته شده از طرف شما توسط انسانها هم خوانده شوند .
اینجاست که بحث خوانایی کدها یک فاکتور خیلی مهم است . یکی از کارهایی که برای خوانایی بهتر کدها می توانید انجام دهید همین است که کدهای خود را در خطوط کوتاه بنویسید .
اما چطور می شود خطوط کد را کوتاه کرد به نحوی که به کار تفسیر کدها توسط کامپایلر هم اشکالی وارد نشود ؟
برای این کار می توانید از یک زیر خط استفاده کنید . کافی است در محلی از خطوط کد که می خواهید آنها را به خط جدید منتقل کنید یک کاراکتر زیر خط بگذارید .
مثلا به تصویر زیر نگاه کنید .
همانطور که می بینید در اینجا یکی از خطوط کد ما بیش از اندازه طول دارد . حالا همین کد را می خواهیم به دو یا چند خط کد دیگر بشکنیم . حالا به تصویر زیر نگاه کنید .
همانطور که می بینید در اینجا ما با استفاده از کاراکترهای & و زیر خط _ توانستیم خط طولانی کد را به دو خط کوتاهتر تقسیم کنیم .
اینطوری خوانایی این کدها برای ما بهتر خواهد بود و لازم نیست که برای خواندن یک خط طولانی از کدهایمان مدام به سمت چپ و راست اسکرول کنیم .
پیشنهاد پنجم : در نام گذاری ها نهایت دقت و وسواس را داشته باشید
در فرآیند برنامه نویسی خیلی جاها هست که شما نیاز به این دارید که برای بعضی از چیزها نام گذاری کنید . مثلا روی اشیای مختلف و یا بر روی متغیرهایی که از آنها در برنامه نویسی VBA خود استفاده می کنید .
اینها مواردی هستند که معمولا برای آنها نامهایی را تعریف می کنیم .
اما برای نام گذاری بر روی آنها بهتر است یک سری از قواعد را رعایت کنیم .
یک سری از این قواعد که اصلا الزامی هستند و ما به هیچ وجه نمی توانیم از آنها تخطی کنیم . اما بعضی از قواعد هستند که بیشتر جنبه توصیه ای دارند تا جنبه الزامی .
مثلا به کدهای زیر نگاه کنید .
dim a as string
dim strname as string
ما اینجا دو تا متغیر تعریف کردیم . هر دو تا آنها هم درست هستند . هیچ ایرادی هم از لحاظ برنامه نویسی برای نام گذاری اننها وجود ندارد و هیچ قاعده ای را هم نقض نکرده ایم .
اما خودتان یک قضاوت بکنید . کدام یک از این متغیرها بهتر می توانند منظوری که برای آن کار ایجاد شده اند را برساند .
متغیر اول به نام a تعریف شده و ما فقط می دانیم که نوع ان از نوع متن است .
اما قرار است در داخل این متغیر چه چیزی ذخیره شود ؟
یک اسم ، نام خانوادگی ، یک متن یا هر چیز دیگری از این نوع .
اما متغیر دوم تحت عنوان strname نام گذاری شده . اینجا ما متوجه می شویم که این متغیر قرار است یک اسم را در خود ذخیره کند .
حالت دوم نامگذاری همان چیزی است که معمولا برنامه نویسان حرفه ای از آن استفاده می کنند .
پس شما هم باید با این قواعد آشنا شده و از آنها در کدنویسی خود استفاده کنید .
در اینجا مطلب مربوط به کد نویسی حرفه ای به اتمام می رسد . امیدوارم که با در نظر گرفتن نکاتی که در این مطلب یاد گرفتید بتوانید در زمینه کد نویسی و برنامه نویسی VBA در اکسل پیشرفت های خوبی را تجربه کنید .
اگر علاقمند به یادگیری برنامه نویسی اکسل هستید می توانید از دوره برنامه نویسی وی بی ای در اکسل استفاده کنید .
مطالب زیر را حتما مطالعه کنید
ذخیره نمودارها با کدهای VBAبصورت تصویر+راهنمای گام به گام
لیست باکس ها در برنامه نویسی VBA ؛ تمام چیزی که باید بدانید .
۷ اشتباه در کدنویسی VBA که ممکن است شما هم مرتکب شوید ؟
توی این آموزش راجع به اشتباهاتی که ممکن است در برنامه نویسی VBA مرتکب آنها شوید صحبت می کنیم .
با این خطای Runtime Error 1004 در VBA چکار کنیم ؟
در این آموزش راجع به خطایی به اسم Run time error 1004 در برنامه نویسی وی بی ای با هم صحبت می کنیم .
چطور با کدهای VBA اطلاعات را از اکسس به ورد بفرستیم؟
کلمه کلیدی set و کاربردهای آن در برنامه نویسی VBA
1 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
تیتیر این صفحه از کدنویسی حرفه ای دراکسس گفتین ولی محتوای صفحه کدهای اکسلی هست؟؟؟!!!!۱۱