نمایش نتایج: از شماره 1 تا 2 , از مجموع 2

موضوع: ایجاد فرم های سفارشی توسط VBA

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1


    آخرین بازدید
    2022/06/28
    تاریخ عضویت
    May 2010
    محل سکونت
    بلژیک
    نوشته ها
    174
    امتیاز
    108
    سپاس
    0
    سپاس شده
    119 در 53 پست
    تعیین سطح نشده است

    ایجاد فرم های سفارشی توسط VBA

    [align=center][size=x-large]لینک کمکی اضافه شد[/size][/align]

    با سلام دوستی سوال فرمودند که چطور می شود فرم های سفارشی در VBA ساخت. به این مفهوم که بشود بر اساس نیاز مشتری Control هایی (button, textbox, label) بسازیم.

    نقل قول نوشته اصلی توسط دوستی
    سلام آقای داوری.
    چطور میشه از طریق کد در Form،یک کنترل(مثل:label,textbox,...)به فرم اضافه کرد.
    [size=large]این فایل رو من خیلی ساده جهت آموزش در مدت کوتاه درست کردم. لذا ممکن است ایراداتی داشته باشد.[/size]

    http://www.mediafire.com/file/28v0tpepm2v8bhv/CustomizeControls_with_VBA.xlsm

    لینک کمکی:
    http://uplod.ir/gax3gakjje3h/CustomizeControls_with_VBA.zip.htm

    در فایل بالا دو label ایجاد شده است. یک textbox و دو button

    برای ایجاد label ها از کد های زیر استفاده کردم:

    Dim label As MSForms.label
    Set label = Me.Controls.Add("Forms.Label.1", "myLabe", True)
    With label
    .Caption = "write some text here:"
    .Width = 60
    .Height = 25
    .Top = 110
    .Left = 10
    .ZOrder (0)
    End With

    Dim label2 As MSForms.label
    Set label2 = Me.Controls.Add("Forms.Label.1", "myLabel2", True)
    With label2
    .Caption = "then click these two buttons"
    .Width = 200
    .Height = 20
    .Top = 140
    .Left = 10
    .ZOrder (0)
    End With



    برای تولید textbox از کد زیر:

    Dim mytextbox As Control
    Set mytextbox = Me.Controls.Add("Forms.TextBox.1", "MyTextBox1", True)
    With mytextbox
    .Width = 150
    .Height = 25
    .Top = 110
    .Left = 70
    .ZOrder (0)
    End With


    دو نوع button درست کردم: اولی withoutevent
    Dim mybutton As Control
    Set mybutton = Me.Controls.Add("Forms.CommandButton.1", "MyButton1", True)

    With mybutton
    .Caption = "without events"
    .Width = 200
    .Height = 25
    .Top = 160
    .Left = 10
    .ZOrder (0)
    End With

    اگر همین طور ساده button و یا هر control دیگری رو ایجاد کنید. این کنترل event نخواهد داشت. به این مفهوم که شما قادر خواهید بود از امکانات اون استفاده کنید اما event نخواهد داشت. یعنی تابعی به نام button_click() وجود نخواهد داشت. در واقع وقتی کنترلی به این روش درست می کنید باید event اون رو هم دستی ایجاد کنید.

    دو راه برای رفع این مشکل وجود دارد.
    راه سخت تر:
    برای ایجاد event به صورتی دستی (manual) باید از یک event در control مادر (که userform هست) استفاده کنید. مثلا می خواهید رویداد click بسازید. می توانید از رویداد click یوزر فرم استفاده کنید. فقط باید شرطی بگذارید که مکان موس رو ارزیابی کنه در لحظه کلیک و اگر مکان موس روی مقتصات button بود دستورات مورد نظر رو اجرا کنه. در صورت تمایل بیشتر توضیح می دهم.


    راه ساده تر
    البته راه آسون تر استفاده از control های withevent هست. [size=medium]البته این روش محدودیت هایی رو ایجاد می کنه.[/size] اما برای استفاده در ابتدای راه خیلی مفید می باشد:

    ابتدا یک شی اما private خارج از هر گونه تابعی در یوزر فرم ایجاد می کنید با این دستور:
    Private WithEvents mybut As MSForms.CommandButton

    سپس در تابعی که control ها رو میسازید این کد را اضافه می کنید.
    Set mybut = Me.Controls.Add("Forms.CommandButton.1", "mybut", True)

    With mybut
    .Caption = "with events"
    .Width = 200
    .Height = 25
    .Top = 190
    .Left = 10
    .ZOrder (0)
    End With


    به این صورت می توانید event click این button رو فرآخوانی کنید:

    Private Sub mybut_Click()
    MsgBox ("you wrote '" + Me.Controls("MyTextBox1") + "' in the textbox above.")
    End Sub

    توجه فرمایید که Me.Controls("MyTextBox1") مقدار داخل textboxی که از طریق VBA ایجاد کرده اید رو برای شما بر میگرداند.

    همان طور که گفتم این روش محدودیت هایی رو ایجاد می کنه:
    به این مفهوم که باید شما برای هر control یک دستور جداگانه private withevents بنویسید که این در صورتی که تعداد control ها مشخص نباشد و یا به هر دلیلی نشود این کار رو انجام داد محدودیت اساسی است. دیگر محدودیت هایی نیز دارد.



    همچینی می توانید button در شیت و سلول ایجادنمایید.
    البته روش اون کار فرق می کند.

    موفق و پیروز باشد.
    اخطار: این یک موضوع قدیمی است
    به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.

  2. #2


    آخرین بازدید
    2023/05/03
    تاریخ عضویت
    January 2012
    محل سکونت
    استان اردبیل / شهرستان پارس آباد (مغان)
    نوشته ها
    1,213
    امتیاز
    2633
    سپاس
    1,399
    سپاس شده
    2,089 در 665 پست
    سطح اکسل
    73.00 %

    Javid Mokhtari به Yahoo ارسال پیام

    RE: ایجاد فرم های سفارشی توسط VBA

    با سلام.
    آقای داوری،بابت توضیحاتتون بسیار-بسیار ممنون.همیشه زحمت ما گردن شماست.هر موقع وقت کردین توضیحات بالا رو گسترش دهید و هر چیزی که به نظرتون رسید،بنویسید.
    سایت فیلتر هستش اگه میشه فایل رو دوباره آپلود کنید.


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. حل مسئله n وزیر به روش عقب گرد توسط VBA
    توسط ~M*E*H*D*I~ در انجمن مهندسی صنایع و اکسل
    پاسخ ها: 3
    آخرين نوشته: 2014/11/13, 20:06
  2. تنظیم دیده شدن یا نشدن شیتهای یک فایل اکسل توسط کابران دومین
    توسط farzin17273 در انجمن سوالات اكسل - Excel Questions
    پاسخ ها: 1
    آخرين نوشته: 2013/06/10, 15:01
  3. نصب یک برنامه توسط یک باتن در وی بی
    توسط امیر رضا دهقان در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 1
    آخرين نوشته: 2012/12/29, 20:53
  4. آمار گيري توسط اكسل
    توسط ali2449 در انجمن توابع اکسل - Excel Functions
    پاسخ ها: 1
    آخرين نوشته: 2012/10/09, 11:11
  5. انتخاب آیتم های کومبوباکس توسط کیبرد
    توسط saber2q در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 6
    آخرين نوشته: 2012/06/27, 18:05

بازدید کنندگان با جستجو های زیر این صفحه را پیدا کرده اند

اموزش ساخت فرم vba در اکسل

ایجاد رویداد در اکسل

ایجاد فرم با vbaدر اکسل

رویدادها و دستورات vba

نحوه ساخت یوزر فرم در اکسل

آموزش ایجاد فرم در اکسل به همراه vba

نحوه انتخاب یک کنترل فرم در vba

ساخت فرم در اکسل با vba

dim withevents vba مورد

ساختن یک user form در اکسل

نحوه ساختن فرم در vba

ساختن فرم در اكسل رايگان

ساخت فرم vb اکسل

ساخت یوزرفرم در اکسل

ساخت یوزر فرم در اکسل با vba

برنامه ساخت فرم سفارشی در ویژوال بیسیک

اموزش طراحی فرم در vba

رو ایجاد فرم در اکسل

ایجاد فرم در اکسل با vba

طریقه طراحی فرم vb اکسل

ایجاد label در فرم اکسل 2010

روش textbox در فرم اکسل

ساخت فرم vb در اکسل

نحوه ساختن فرم در اکسل

ساخت یوزر فرم در اکسل

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
  • BB code ها فعال هستند
  • شکلک ها فعال هستند
  • کد [IMG] فعال است
  • کد [VIDEO] فعال است
  • کد HTML غیر فعال است
با ما در تماس باشيد