به منظور طراحی فرم در اکسل ، فرمهای ساخته شده بر سه نوع میباشند که در نوع اول از ابزار فرم موجود در اکسل استفاده می شود، در روش دوم از سلولهای اکسل به عنوان قسمتهای مربوط به وارد کردن اطلاعات استفاده می شود و با استفاده از ماکرو و تخصیص آن به یک دکمه، اطلاعات به محل مد نظر منتقل میشوند و در روش سوم تمام فرایند، از جمله طراحی فرم در محیط VBE صورت میپذیرد.
ابزار Form
در حالت پایه اکسل دارای ابزار فرم ساز میباشد که متناسب با جدول اطلاعات و دیتابیس شما، با یک کلیک فرم را ایجاد مینماید و دستوراتی از جمله اضافه کردن رکورد جدید، حذف رکورد موجود، پیدا کردن یک رکورد و جابه جایی بین رکوردها را در اختیار کاربر قرار میدهد.
البته این ابزار در حالت عادی غیر فعال بوده و نیاز به فعال سازی دارد و برای فعال سازی آن کافی است از مسیر File، قسمت Option، حالت Quick Access Toolbar را انتخاب کرده تا صفحه ای مشابه با صفحهی زیر باز شود. سپس از قسمت Choose Commands From، حالت Command not in The Ribbon را انتخاب کرده و از قسمت زیرین دستور Form را انتخاب نموده و در انتها دکمه Add را زده تا ابزار Form به قسمت دسترسی سریع اکسل شما (نموار سفید رنگ بالای اکسل) اضافه گردد.
بعد از فعال کردن دستور Form در اکسل به منظور استفاده از آن کافی، است یکی از سلولهای دیتا بیس را انتخاب کرده و بر روی Form کلیک نموده تا فرم پیش فرض اکسل به صورت زیر نمایان شود.
در این صفحه با زدن New فیلدهای خالی جهت ورود رکورد جدید باز میشود و میتوان رکورد جدید را وارد نمود. همچنین مینوان با اسکورول کردن و انتخاب رکورد مد نظر بر روی Delete کلیک کرده تا ان رکورد از مجموعه داده ها حذف شود. با زدن Find Prev و Find Next بر روی رکوردهای بعدی یا قبلی حرکت خواهد کرد و همچنین با زدن کلید Criteria میتوان رکورد خاصی را جست و جو نمود.
طراحی فرم با سلولهای اکسل
در این روش از سلولهای خام اکسل به عنوان محل ورود اطلاعات استفاده می شود و با استفاده از کد VBA اطلاعات ثبت شده به سلولهای مد نظر منتقل میشوند. برای مثال در شکل زیر ابتدا کاربر در سلولهای C4، C5 و C6 به ترتیب نام، نام خانوادگی و کد ملی را وارد می کند و در نهایت با زدن کلید ثبت، اطلاعات درون دیتا بیس در ستونهای j تا L ثبت میگردد.
در این مثال کد مربوط به جابجایی اطلاعات به جدول مد نظر میتواند به صورت ذیل باشد.
Sub transfer()
i = Range(“j1000”).End(xlUp).Offset(1, 0).Row
Cells(i, 10) = Range(“c4”)
Cells(i, 11) = Range(“c6”)
Cells(i, 12) = Range(“c8”)
Range(“c4:c8”) = “”
End Sub
کد فوق شامل قسمتهای ذیل میباشد:
- خط ۱: تعریف اسم ماکرو
- خط ۲: مشخص کردن شماره ردیفی که اطلاعات باید درون آن ثبت شود (از سلول j1000 به سمت بالا حرکت میکند و آخرین سلول پر را پیدا میکند)
- خط ۳: ثبت اطلاعات سلول C4 درون ستون j و ردیف پیدا شده در خط ۲
- خط ۴: ثبت اطلاعات سلول C6 درون ستون k و ردیف پیدا شده در خط ۲
- خط ۵: ثبت اطلاعات سلول C8 درون ستون L و ردیف پیدا شده در خط ۲
- خط ۶: پاک کردن اطلاعات ثبت شده درون فرم
- خط ۷: پایان کد.
با ثبت کد فوق کافی است از تب Insert یک Shpae رسم نموده و بر روی آن راست کلیک کرده و در قسمت Assign Macro ماکرو Transfer را انتخاب نموده تا ماکرو ثبت شده به آن تخصیص داده شود و با کلیک کردن بر روی آن اجرا شود.
طراحی فرم درون محیط VBE
این روش نسبت به دو روش قبلی کاراتر بوده و البته دشوارتر، در این روش کافی است با زدن کلید Alt+F11 وارد محیط VBE شده و در قسمت Project Window راست کلیک نموده و از قسمت Insert حالت User Form را انتخاب نموده تا صفحه ی طراحی فرم به صورت زیر فعال شود.
در این قسمت میتوان با انتخاب ابزار مد نظر از قسمت ToolBox و رسم آن در صفحه فرم، فرم مد نظر را طراحی نمود ولی برای احرای آن و وارد نمودن اطلاعات درون اکسل نیاز به برنامه نویسی در اکسل میباشد.
در این حالت کد تخصیص داده شده به دکمه فرم برای نمایش فرم به صورت زیر میباشد.
Sub display_form()
UserForm1.Show
End Sub
و همچنین کد تخصیص داده شده به دکمه ثبت، برای ثبت داده ها درون دیتا بیس و بستن فرم به صورت زیر میباشد.
Private Sub ToggleButton1_Click()
i = Range(“j1000”).End(xlUp).Offset(1, 0).Row
Cells(i, 10) = TextBox1
Cells(i, 11) = TextBox2
Cells(i, 12) = TextBox3
Unload UserForm1
End Sub