گاهی اوقات برخی کاربران می خواهند ماکروها و فرم هایشان هنگام فعال شدن کاربرگ به صورت خودکار و اتوماتیک اجرا گردد. برای اینکار وارد محیط VBA Excel اکسل شده ( Alt + f11 ) ، از پنجره project کاربرگ مورد نظر را انتخاب کرده در قسمت بالای کد گزینه worksheet و سپس رویداد Activate آنرا انتخاب کرده کد ها و دستورات لازم را درون آن می نویسیم.
همانطور که می دانید رویدادها اقتضایی هستند نه آنی .یعنی به محض نوشتن یا فشردن کلید اجرا ، عمل نمی کنند آنها تحت شرایط تعریف شده اجرا می شوند. یعنی این کد ( "msgbox "salam ) تنها در صورتی اجرا می شود که کاربرگ یک Sheet1 اکتیو یا فعال گردد.
+ نوشته شده در پنجشنبه پانزدهم مرداد ۱۳۹۴ ساعت 11:49 توسط علی توضیح
|
برخی اوقات کاربر لازم دارد با فعال شدن یک کاربرگ مثلا کاربرگ 1 ( sheet1 ) عملیات خاصی اجرا گردد . برای اینکار به سراغ محیط وی بی ای رفته ( alt + f11) در پنجره پروجکتس projects برروی کاربرگ 1 دبل کلیک می کنیم اینکار سبب می شود تا رویدادهای کاربرگ 1 ، فراخوانی شوند. ابتدا در پنجره کد گزینه workshhet را انتخاب کرده سپس رویداد مورد نظر را انتخاب می کنیم ( مثلا رویداد فعال شدن که همان activate است ).
حال کد و عملیات مورد نظر را اعمال می کنیم. مثلا به کاربرگ دستور می دهیم که هنگام فعال شدن ، به وسیله یک msgbox به کاربر نام خود را اعلام کند.
()Private Sub Worksheet_Activate
MsgBox Sheet1.Name
End Sub
+ نوشته شده در جمعه چهاردهم تیر ۱۳۹۲ ساعت 19:23 توسط علی توضیح
|
لیست های تکراری ، جداولی هستند که رکورد های آن مجاز به تکرار می باشند ، مثلا علی میتواند به هر تعداد که دوست دارد مراجعه و وجه نقد دریافت کند.یکی از روش های گزارش گیری از داده ها استفاده از ابزار قدرتمند جداول محوری است . ابزار subtotal نیز یکی دیگر از روش های گزارش گیری از جداول تکراری است.
نوشتن برنامه های وی بی ای نیز یکی از زیباترین ، شیوه های کار با اکسل است.حال برای آشنایی و دوستی با این بخش از اکسل یک مثال را برای کاربران حرفه ای تر اکسل مطرح می کنیم.
مثال : فرض کنید جدولی داریم که افرادی معدود طی چند بار مراجعه کار انجام داده اند و پول دریافت کرده اند.حال می خواهیم با استفاده از برنامه نویسی VBA اسامی آنها را به صورت غیر تکراری از جدول خارج کرده نمایش دهد.
برای نوشتن این کد باید کلید های Alt+F11 را فشرد تا به محیط VBA وارد شویم.از منوی Insert گزینه ی Module را انتخاب می کنیم و سپس کد مورد نظر را در آن می نویسیم.
Sub list() Dim i As Integer Dim r As Integer
'shomareh radif akharin celol database r = Range("a1").CurrentRegion.Rows.Count
'avalis celol database Cells(1, 13) = Cells(1, 2)
'asami bedone tekrar For i = 1 To r If WorksheetFunction.CountIf(Range("m:m"), Cells(i, 2)) < 1 Then
Cells(i, 13) = Cells(i, 2)
End If Next
End Sub
+ نوشته شده در چهارشنبه دوم اسفند ۱۳۹۱ ساعت 8:28 توسط علی توضیح
|
امنیت یکی از ارکان مهم آفیس می باشد که آشنایی با برخی از المان های آن رمز موفقیت یک کاربر حرفه ای محسوب می گردد.برای پنهان سازی یک کاربرگ که حتی با unhide.. نیز آشکار نگردد باید به سراغ vba رفت.همانطور که می دانید vba یک زبان شی گرا در آفیس است . یعنی در هر application یا نرم افزار گروه آفیس ( اکسل - اکسس - ورو - پاورپوینت و... ) اشیایی منحصر به فرد وجود دارد. به طور مثال اشیای موجود در اکسل سلول ها ، کاربرگ ها ، کارپوشه ها ، پنجره ها نمودارها و. ... می باشند.حال برای برنامه نویسی کافی است خصوصیات این اشیا را تغییر دهید. مثلا نام شی کاربرگ یک" sheet1 "را می خواهیم به کلمه ali تغییر دهیم .
ابتدا با فشردن کلید های alt , f11 به محیط برنامه نویسی می رویم و در انجا در محیط وی بی ای به سراغ پنجره projects می رویم و شی مورد نظر " sheet1" را انتخاب می کنیم تا خصویاتش در پنجره زیر نمایش داده شود. حال در قسمت name نام کاربرگ را تغییر می دهیم.
برای تغییر خصوصیت visible یا نوع نمایش کاربرگ نیز می توان اقدام کرد. سومین گزینه از خصوصیت visible کاربرگ عبارت xlsheetveryhidden است که با انتخاب آن کاربگ به کلی پنهان شده و حتی از طریق unhide نیز نمایش داده نمی شود.لازم به ذکر است که حتی این گزینه فعال نمی شود که کاربر به آن شک کند و می توان با خیال راحت کاربرگ های سری را از دسترس افراد پنهان نمود.
+ نوشته شده در چهارشنبه بیست و دوم آذر ۱۳۹۱ ساعت 9:31 توسط علی توضیح
|
با استفاده از زبان برنامه نویسی اکسل می توان عملیات پرحجم و پیچیده ای را برروی داده های اکسل انجام داد . یکی از این قابلیت ها فرم سازی در اکسل است . فرم ها شبیه آنچه در ویندوز مشاهده می شوند قابل استفاده هستند
ابزارهایی که برروی فرم ها قرار می گیرند به کامپوننت مشهورند و کاربران می توانند با استفاده از این ابزار ورود وو خروج داده را سهل تر کنند. از جمله این ابزار LISTBOX است که به کاربرانش اجازه می دهد تا یک لیست را در درونش مشاهده نمایند .در اینجا یک مثال از استفاده این ابزار را به همراه ADVANCE FILTER به دوستان گرامی تقدیم می کنم تا شاید بخشی از مشکلاتشان را مرتفع نماید.
در این مثال یک لیست دریافت و کارکرد موجود است که داده ها به ترتیب زیر هم نوشته می شوند با فشردن کلید وسط صفحه شما می توانید اسامی را به صورت غیر تکراری مشاهده کرده انتخاب نمایید و سپس جمع دریافتی را مشاهده نمایید.
اگر رکوردی به لیست اضافه شود با زهم عمل کرده نام را به صورت غیر تکراری نمایش می دهد.
مثال های بیشتر را در اینده دنبال خواهیم کرد.
موفق باشید
+ نوشته شده در شنبه یکم بهمن ۱۳۹۰ ساعت 9:12 توسط علی توضیح
|
FOR يكي از پر كاربردترين نوع حلقه در زبان هاي برنامه نويسي است و براي شمارش بكار ميرود. ساختارش چنين است :
FOR انتها تو ابتدا = شمارنده STEP گام
عمليات
NEXT
مثال : در ساختار زير سلول هاي ستون A تا A100 از 1 تا 100 پر مي شوند:
FOR I=1 TO 100
CELLS(I,1)=I
NEXT
مثال : جدولي در كاربرگ 1 طراحي كنيد كه شامل ستون نام و دريافتي و ماه دريافت باشد ، سپس اسامي چند نفر را در آن وارد نماييد ( تكراري هم داشته باشد ) آنگاه ماكرويي طراحي كنيد كه نام فرد را دريافت كرده سپس جمع كل دريافتي هاي وي را نمايش دهد .
+ نوشته شده در دوشنبه نهم دی ۱۳۸۷ ساعت 9:40 توسط علی توضیح
|
تمرين - فرض كنيد ليستي داريد به شكل زير ، كه از سلول A2 آغاز شده است . حال قصد داريم تابعي طراحي كنيم كه با ارسال سلول آغازين ليست به آن تعداد سطر هاي ليست محاسبه شود .
+ نوشته شده در شنبه بیست و سوم آذر ۱۳۸۷ ساعت 11:26 توسط علی توضیح
|
براي جلو گيري از استفاده ي تكراري از تابع inputbox كافي است متغيرهاي مورد استفاده را به صورت پارامتر يا آرگومان به تابع يا ماكرو ارسال كنيم ،براي اين منظور كافي است متغير ها را درون پرانتز جلوي نام تعريف كنيم :
function ali_link(a as string, b as string)
ali_link = a & " " & b
end function
اين تابع دو رشته را از كاربر دريافت كرده آنها را با يك فاصله در كنار هم قرار داده و به خروجي تابع ارسال مي كند. براي استفاده از آن كافي است آنرا به همراه دو متغيرش درون يك ماكرو صدا بزنيم :
sub ali_text()
msgbox ali_link("ali","tozih")
end sub
+ نوشته شده در جمعه بیست و دوم آذر ۱۳۸۷ ساعت 8:0 توسط علی توضیح
|
براي استفاده از يك ماكرو درون ماكرو هاي ديگر كافي است ابتدا ماكرو را تعريف كرده سپس درون يك ماكرو ديگر با استفاده از كلمه ي كليدي CALL آنرا صدا بزنيم :
SUB TEST3()
DIM S AS STRING * 5
S= INPUTBOX("YOUR NAME ")
END SUB
______________________________________
SUB TEST4()
CALL TEST3
END SUB
ماكرو TEST3 درون ماكرو TEST4 صدا زده شده است .
به اين نكته توجه كنيد كه هر گاه بخواهيم يك ماكرو فقط در همان ماژول تعريف شده ، شناخته شود كافي است قبل از كلمه ي كليدي SUB از كلمه ي كليدي PRIVATE استفاده شود .
* ماكرو ها به صورت پيش فرض در تمام پروژه شناخته مي شوند.
+ نوشته شده در جمعه بیست و دوم آذر ۱۳۸۷ ساعت 7:11 توسط علی توضیح
|
همانطور كه در جلسات قبل ذكر كرديم متغير ها در زبان وي بي اكسل چند دسته اند :
1- عددي
2- غير عددي
3- ثابت ها
4- كاربر ساخته
كه محدوده ي هر كدام را در زير مشاهده ميكنيد ( راهنماي اكسل 2007 ) :
Data Type Summary
The following table shows the supported data types, including storage sizes and ranges.
Data type
Storage size
Range
Byte
1 byte
0 to 255
Boolean
2 bytes
True or False
Integer
2 bytes
-32,768 to 32,767
Long (long integer)
4 bytes
-2,147,483,648 to 2,147,483,647
Single (single-precision floating-point)
4 bytes
-3.402823E38 to -1.401298E-45 for negative values; 1.401298E-45 to 3.402823E38 for positive values
Double (double-precision floating-point)
8 bytes
-1.79769313486231E308 to -4.94065645841247E-324 for negative values; 4.94065645841247E-324 to 1.79769313486232E308 for positive values
Currency (scaled integer)
8 bytes
-922,337,203,685,477.5808 to 922,337,203,685,477.5807
Decimal
14 bytes
+/-79,228,162,514,264,337,593,543,950,335 with no decimal point; +/-7.9228162514264337593543950335 with 28 places to the right of the decimal; smallest non-zero number is +/-0.0000000000000000000000000001
Date
8 bytes
January 1, 100 to December 31, 9999
Object
4 bytes
Any Object reference
String (variable-length)
10 bytes + string length
0 to approximately 2 billion
String (fixed-length)
Length of string
1 to approximately 65,400
Variant (with numbers)
16 bytes
Any numeric value up to the range of a Double
Variant (with characters)
22 bytes + string length
Same range as for variable-length String
User-defined (using Type)
Number required by elements
The range of each element is the same as the range of its data type.
اين متغير هاكه با كلمه ي كليدي DIM معرفي مي شوند حيطه ي فعاليت ( اثر ) مشخصي دارند :
1- متغير هاي ماكرو
2- متغير هاي ماژول
3- متغيرهاي پروژه ( سراسري)
1- متغير هايي كه در سطح ماكرو تعريف مي شوند تنها در همان ماكرو شناخته مي شوند.
SUB TEST1()
DIM A AS SINGLE
A=INPUTBOX(" ENTER A NUMBER :")
MSGBOX A
END SUB
2- اما نوع دوم متغير ها آنهايي هستند كه بايد درون تمام ماکروهای يك ماژول شناخته شوند ، براي اينكار كافي است متغير را در ابتداي ماژول قبل از تمام ماكروها ( قسمت اعلان يا DECLARATION) تعريف كرد و سپس در تمام ماکرو های آن ماژول میتوان از آن استفاده کرد:
۳- اما اگر بخواهیم این متغیر در تمام ماژول های یک پروژه شناخته شود کافی است در قسمت اعلان بجای کلمه ی dim از كلمه ي GLOBAL استفاده كنيم .در اين حالت متغير سراسري شده و در تمام ماكرو ها ي يك پروژه شناخته مي شود.
GLOBAL S AS STRING
در ضمن بايد بدانيم كه مجموعه ماكرو ها تشكيل يك ماژول داده و مجموعه ي ماژول ها تشكيل يك پروژه را مي دهد .
نكته 1 : اگر بخواهيم درون يك ماكرو پس از اتمام آن مقادير متغير هايش تهي نشود كافي است بجاي DIM از واژه كليدي STATIC استفاده كنيم . در اين حالت حتي پس از اتمام ماكرو مقادير متغير ايستا حفظ شده تا مقادير جديد به آن تعلق پيدا كند.
+ نوشته شده در پنجشنبه بیست و یکم آذر ۱۳۸۷ ساعت 10:26 توسط علی توضیح
|
An expression of the form TypeOfobjectnameIsobjecttype. The objectname is any object reference and objecttype is any valid object type. The expression is True if objectname is of the object type specified by objecttype; otherwise it is False.
statements
Optional in block form; required in single-line form that has no Else clause. One or more statements separated by colons; executed if condition is True.
condition-n
Optional. Same as condition.
elseifstatements
Optional. One or more statements executed if associated condition-n is True.
elsestatements
Optional. One or more statements executed if no previous condition or condition-n expression is True.
Remarks
You can use the single-line form (first syntax) for short, simple tests. However, the block form (second syntax) provides more structure and flexibility than the single-line form and is usually easier to read, maintain, and debug.
Note With the single-line form, it is possible to have multiple statements executed as the result of an If...Then decision. All statements must be on the same line and separated by colons, as in the following statement:
If A > 10 Then A = A + 1 : B = B + A : C = C + B
A block form If statement must be the first statement on a line. The Else, ElseIf, and End If parts of the statement can have only a line number or line label preceding them. The block If must end with an End If statement.
To determine whether or not a statement is a block If, examine what follows the Thenkeyword. If anything other than a comment appears after Then on the same line, the statement is treated as a single-line If statement.
The Else and ElseIf clauses are both optional. You can have as many ElseIf clauses as you want in a block If, but none can appear after an Else clause. Block If statements can be nested; that is, contained within one another.
When executing a block If (second syntax), condition is tested. If condition is True, the statements following Then are executed. If condition is False, each ElseIf condition (if any) is evaluated in turn. When a True condition is found, the statements immediately following the associated Then are executed. If none of the ElseIf conditions are True (or if there are no ElseIf clauses), the statements following Else are executed. After executing the statements following Then or Else, execution continues with the statement following End If.
TipSelect Case may be more useful when evaluating a single expression that has several possible actions. However, the TypeOfobjectnameIsobjecttype clause can't be used with the Select Case statement.
NoteTypeOf cannot be used with hard data types such as Long, Integer, and so forth other than Object.
+ نوشته شده در سه شنبه نوزدهم تیر ۱۳۸۶ ساعت 9:41 توسط علی توضیح
|
برای استفاده از متغیر ها در وی بی ای VBA بهتر است که آنها را تعریف کنیم ، دو نوع متغیر عددی و غیر عددی وجود دارد که عددی ها عبارتند از :
BYTE
INTEGER
LONG
SINGLE
DOUBLE
CURRENCY
DECIMAL
و غیر عددی عا عبارتند از:
BOOLEAN
OBJECT
STRING
VARIANT
DATE
روش معرفی متغیر ها استفاده از کلمه ی کلیدی DIM بعد از نام ماکروست . به مثال زیر توجه کنید:
I به عنوان یک عدد صحیح ( متغیر) معرفی شده است .
SUB ALI()
DIM I AS INTEGER ' I به عنوان یک عدد صحیح معرفی
I = INPUTBOX (" ENTER A NUMBER INTEGER:")
END SUB
Data Type Summary
The following table shows the supported data types, including storage sizes and ranges.
Data type
Storage size
Range
Byte
1 byte
0 to 255
Boolean
2 bytes
True or False
Integer
2 bytes
-32,768 to 32,767
Long (long integer)
4 bytes
-2,147,483,648 to 2,147,483,647
Single (single-precision floating-point)
4 bytes
-3.402823E38 to -1.401298E-45 for negative values; 1.401298E-45 to 3.402823E38 for positive values
Double (double-precision floating-point)
8 bytes
-1.79769313486231E308 to -4.94065645841247E-324 for negative values; 4.94065645841247E-324 to 1.79769313486232E308 for positive values
Currency (scaled integer)
8 bytes
-922,337,203,685,477.5808 to 922,337,203,685,477.5807
Decimal
14 bytes
+/-79,228,162,514,264,337,593,543,950,335 with no decimal point; +/-7.9228162514264337593543950335 with 28 places to the right of the decimal; smallest non-zero number is +/-0.0000000000000000000000000001
Date
8 bytes
January 1, 100 to December 31, 9999
Object
4 bytes
Any Object reference
String (variable-length)
10 bytes + string length
0 to approximately 2 billion
String (fixed-length)
Length of string
1 to approximately 65,400
Variant (with numbers)
16 bytes
Any numeric value up to the range of a Double
Variant (with characters)
22 bytes + string length
Same range as for variable-length String
User-defined (using Type)
Number required by elements
The range of each element is the same as the range of its data type.
NoteArrays of any data type require 20 bytes of memory plus 4 bytes for each array dimension plus the number of bytes occupied by the data itself. The memory occupied by the data can be calculated by multiplying the number of data elements by the size of each element. For example, the data in a single-dimension array consisting of 4 Integer data elements of 2 bytes each occupies 8 bytes. The 8 bytes required for the data plus the 24 bytes of overhead brings the total memory requirement for the array to 32 bytes.
A Variant containing an array requires 12 bytes more than the array alone.
Note Use the StrConv function to convert one type of string data to another.
+ نوشته شده در سه شنبه پنجم تیر ۱۳۸۶ ساعت 13:16 توسط علی توضیح
|
هر گاه کاربر قصد دریافت داده ها را از کاربرگ نداشته باشد و بخواهد آنها را مستقیما دریافت کند از این ابزار استفاده می کند :
Sub ALI() I = InputBox(" عدد مورد نظر را وارد کنيد ") End Sub
در مثال فوق ماکرو ساده ای را مشاهده می کنید که پیام " عدد مورد نظر را وارد کنید " را نمایش داده و عدد یا متن کاربر را دریافت کرده و در متغییر I می ریزد .
شکل این تابع به صورت زیر است :
InputBox Function
Displays a prompt in a dialog box, waits for the user to input text or click a button, and returns a String containing the contents of the text box.
Required. String expression displayed as the message in the dialog box. The maximum length of prompt is approximately 1024 characters, depending on the width of the characters used. If prompt consists of more than one line, you can separate the lines using a carriage return character (Chr(13)), a linefeed character (Chr(10)), or carriage return–linefeed character combination (Chr(13) & Chr(10)) between each line.
title
Optional. String expression displayed in the title bar of the dialog box. If you omit title, the application name is placed in the title bar.
default
Optional. String expression displayed in the text box as the default response if no other input is provided. If you omit default, the text box is displayed empty.
xpos
Optional. Numeric expression that specifies, in twips, the horizontal distance of the left edge of the dialog box from the left edge of the screen. If xpos is omitted, the dialog box is horizontally centered.
ypos
Optional. Numeric expression that specifies, in twips, the vertical distance of the upper edge of the dialog box from the top of the screen. If ypos is omitted, the dialog box is vertically positioned approximately one-third of the way down the screen.
helpfile
Optional. String expression that identifies the Help file to use to provide context-sensitive Help for the dialog box. If helpfile is provided, context must also be provided.
context
Optional. Numeric expression that is the Help context number assigned to the appropriate Help topic by the Help author. If context is provided, helpfile must also be provided.
Remarks
When both helpfile and context are provided, the user can press F1 (Windows) or HELP (Macintosh) to view the Help topic corresponding to the context. Some host applications, for example, Microsoft Excel, also automatically add a Help button to the dialog box. If the user clicks OK or presses ENTER , the InputBox function returns whatever is in the text box. If the user clicks Cancel, the function returns a zero-length string ("").
Note To specify more than the first named argument, you must use InputBox in an expression. To omit some positional arguments, you must include the corresponding comma delimiter.
مثال :
Sub proInput()
J = InputBox("For what year do you need this report?")
End Sub
+ نوشته شده در سه شنبه پنجم تیر ۱۳۸۶ ساعت 10:3 توسط علی توضیح
|
برای ایجاد محیطی که بتوان ماکرو را در آن نوشت ابتدا باید وارد محیط vbe شد سپس از منوی insert گزینه module را انتخاب می کنیم تا محیط کد نویسی فعال شود . ماکرو ها ، ماژول ها را می سازند و ماژول ها ، پروژه ها را . در حقیقت پروژه از تعدادی شی و ماژول تشکیل شده است .
اشیا یی مانند range دارای تعدای خصوصیت به شرح زیر می باشند :
value
font . name
font . size
font . bold
font . italic
font . underline
font . colorindex
interior.colorindex
formula
تمرین 1 - ماکرویی بنویسید که اندازه فونت محتویات سلول d3 را به 25 و حالت پررنگ تغییر دهد و نوع فونت را به titr .
sub ali23()
range("d3").font.name ="titr"
range("d3").font.size = 25
range("d3").font.bold = true
end sub
+ نوشته شده در شنبه پنجم خرداد ۱۳۸۶ ساعت 14:58 توسط علی توضیح
|
برای تسلط به VBA یا همان زبان برنامه نویسی آفیس ، چند تمرین ساده را مرور می کنیم و بعد به سراغ معرفی اشیاء درون وی بی ای خواهیم رفت تا برخی از خصوصیات و متد های آنها را معرفی کنیم .
تمرین 1 - ماکروییی بنام EDITB1 بنویسید که محتویات سلول A1 را در درون سلول B1 قرار دهد .
SUB EDITB1()
RANGE("B1") = range("a1")
END SUB
تمرین 2- ماکرویی بنویسید که عدد 14 را درون c1 و عدد ۱۴- را درون c2 قرار دهد .
SUB ali22()
RANGE("c1") = 14
RANGE("c2") = -14
END SUB
+ نوشته شده در شنبه پنجم خرداد ۱۳۸۶ ساعت 12:0 توسط علی توضیح
|
برای انجام عملیات تکراری و جستجو ی داده های مورد نظر می توان از ابزار قدرتمند ماکروها در اکسل استفاده کرد. ورود به ساختار برنامه نویسی ویژال بیسیک در اکسل که با عنوان VBA یا VISUAL BASIC FOR APPLICATION در اکسل و یا آفیس از آن یاد می گردد ، از مسیر زیر انجام می گیرد :
TOOLS | MACRO | VISAUL BASIC EDITOR
در حقیقت ماکرو ها، همان کدهایی هستد که توسط کاربر یا ماشین تولید می شوند. اگر شما یک ماکرو را با استفاده از ابزار ماکرو سازی طراحی و اجرا کنید آنرا توسط ماشین ساخته اید ولی اگر بخواهید انعطاف بیشتری به آن بدهید باید آنرا بنویسید( کد نویسی ). زبان وب بی ای در حقیقت معماری درونی اکسل و ابزاری قدرتمند برای نوشتن برنامه های پیشرفته و حلقوی است . این زبان که یک زبان شئ گراست ، اجزای درونی خود را به شکل اشیائی در نظر می گیرد که نرم افزار اکسل را تشکیل می دهند، مثل فایل ( کارپوشهWORKBOOK ) ، کاربرگ یا WORKSHEET و یاسلولRANGE.در حقیقت کارپوشه ها از اشیاء کاربرگ تشکیل شده اند و کاربرگ ها با اشیاء سلول کامل می شوند . هر شیء دارای یک سری خاصیت است . مثلا شما یک سنگ را در نظر بگیرید ، رنگ ، وزن ، شکل و... خواص سنگ محسوب می شوند .در وی بی ایVBA نیز همینطور است ، مثلا یک سلول دارای خواصی مثلمحتویات ، اندازه فونت ، نام فونت ، رنگ ، فرمول ، کادر و .... می باشد. کاربران در برنامه نویسی در حقیقت این خواص را تغییر می دهند .
بیایید یک تمرین را باهم انجام دهیم :
ابتدا نوار ابزار ویژال بیسیک را فعال کنید ، سپس ماکرویی را طراحی کنید که در سلول A1 از کاربرگ 2وارد شود .
مراحل ساخت ماکرو :
ابتدا کلید RECORD MACRO را می فشاریم و سپس به کاربرگ 2 و سلول A1 وارد می شویم و در آخر کلید STOP را می فشاریم .
حال برای دیدن کد ماکرو مسیر زیر را دنبال کنید :
کلید RUN را فشرده تا اسامیماکرو ها ظاهر شود سپس ماکروی مورد نظر را انتخاب کرده کلید EDIT را می فشاریم تا متن ماکرو ( کد ) نمایش داده شود .
همانطور که مشاهده می کنید ماکرو باSUB و نام ماکرو ،شروع و با END SUB تمام می شود و در بین آنها عبارات برنامه نویسی نوشته شده است . سه رنگ در بدنه ی ماکرو بکار رفته 1- سبز: که معرف توضیحات برنامه است و هیچ تاثیری بر عملکرد ماکرو ندارد 2- آبی : کلمات کلیدی3- سیاه : دستورات
Sub Macro1()
' Macro1 Macro
' Macro recorded 2007/04/23 by tozih
Sheets("Sheet2").Select
Range("A1").Select
End Sub
همانطور که از کد ها مشخص است ماکرویی بنام MACRO1 به کاربرگ 2 رفته و سلول A1 را در آن انتخاب می کند . در ساختار برنامه نویسی VBA تغییر خواص به صورت توارثی انجام می پذیرد ، یعنی هر خاصیت باید به شئ مورد نظر، با یک نقطه متصل باشد.
Range("A1").Select
در حقیقت برای تغییر خاصیت اشیاء باید ابتدا نام شئ را ذکر کرده سپس نقطه را قرار داده و آنگاه خاصیت مورد نظر را ذکر کنیم و مقادیر آنرا تغییر دهیم . مثلا :
RANGE("A2:A10").FONT.SIZE = 16
اندازه فونت محتویات سلول های A1 تا A10 را به 16 تغییر می دهد .
مثال دیگر ، محتویات سلول D2 از کاربرگ 3 را عبارت ALI TOZIH قرار دهید .
SHEETS("SHEET3").RANGE("D5").VALUE = "ALI TOZIH"
در ضمنخاصیت VALUE پیش فرض است و می توان آنرا حذف کرد :
SHEETS("SHEET3").RANGE("D5") = "ALI TOZIH"
+ نوشته شده در دوشنبه سوم اردیبهشت ۱۳۸۶ ساعت 12:11 توسط علی توضیح
|
بنام خدا این وبلاگ آموزشی سعی دارد با ایجاد یک کلاس آموزشی مجازی و تعاملی در حد امکان به نیاز های روزمره کاربران نرم افزار صفحه گسترده اکسل اعم از شناخت محیط ،قالب بندی ها ،ترسیم جداول ، رنگها ، شرطها ، محاسبات ، فرمول نویسی ، استفاده از توابع ، نمودار ها ، چاپ ، تحلیل داده ها توابع آرایه ای فیلتر سازی و جداول محوری و ماکرو نویسی در اکسل - vba Excel...