آموزش ماکرونویسی - برنامه نویسی در اکسل به روش من

از ماکرونویسی نهراسید! بسیار ساده است!

صفحه اصلي | آرشيو مطالب | تماس با من                    ali_fatehi@yahoo.com

آموزش  مشاورهداستان وبلاگ من

 

كتاب ماكرونويسي و برنامه نويسي كار بردي به زبان VBA در Excel

به نگارش اينجانب منتشر شد
مولف: علي فاتحي
ناشر: انتشارات سازمان بورس

 مراكز پخش

«نمايشگاه و فروشگاه انتشارات بورس»
شماره تماس:  88648192
(تهران - ميدان ونك - خ ملاصدرا- شماره 25)
اطلاعات كتاب و سفارش خريد آنلاين از انتشارات بورس

«انتشارات صانعي»

شماره تماس:  5385  6640
(
تهران- خ انقلاب- روبروي  دانشگاه تهران- پلاك 1290)
www.saneibook.com

 

.....در زماني كوتاه و به راحتي مي توانيد در اكسل برنامه و ماكرو بنويسيد؛ حتي اگر شما برنامه نويس نباشيد ماكرونويسي و برنامه نويسي ابزاري مناسب براي كاربراني است كه مي خواهند در Excel بهتر و پوياتر عمل كنند. زبان برنامه نويسي مورد استفاده در Excel بسيار شبيه زبانهاي محاوره اي است و VBA

 (Visual Basic for Applictions )
نام دارد.
......

20 صفحه اول كتاب را از اينجا برداريد.


اين كتاب براي كاربراني نوشته شده كه با برنامه‌نويسي و ماكرونويسي آشنايي نداشته يا آشنايي كمي دارند و مي‌خواهند در نرم‌افزار اكسل كارهاي بهتر و پوياتري انجام دهند و با زباني ساده و به دور از پيچيدگي مفاهيم اوليه و كاربردي را گام به گام ارايه نموده است. مثال‌ها متنوع و كاربردي‌اند. از برنامه‌هاي ساده  و "تابع تبديل عدد به حروف" گرفته تا "پياده‌سازي مفاهيم مهندسي مالي" در كتاب آموزش داده شده‌اند..

 

 

 

 

آخرين مطالب

برای یادگیری ماکرونویسی از طر یق وبلاگ 

حتما دروس وبلاگ را بطور عملی انجام دهید.

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

همچنین مطالب وبلاگ و تجارب حاصل پرسشها و نظرات بازدیدکنندگان وبلاگ در کتاب زیر آمده است:

کتاب ماکرونویسی و برنامه نویسی کار بردی به زبان VBA در Excel

به نگارش اینجانب منتشر شد
مولف: علی فاتحی
ناشر: انتشارات سازمان بورس

مراکز پخش

«نمایشگاه و فروشگاه انتشارات بورس»

شماره تماس:  88648192
(تهران - میدان ونک - خ ملاصدرا- شماره 25)

«انتشارات الیاس»

شماره تماس 66405084-66955878
(تهران- خ انقلاب- نبش 12 فروردین- پلاک 1310)

 در صورت نیاز به مشاوره و هرگونه نظر یا پیشنهاد با ایمیل زیر ارتباط حاصل فرمایید:

ali_fatehi@yahoo.com

ali_fatehi@yahoo.com

نظر یادتون نره

 خواهشمند است نظرات خود را در مورد مطالب و کیفیت وبلاگ با گذاشتن کامنت یا از طریق نظر سنجی وبلاگ اعلام بفرمایید

 

 

در برنامه صفحه گسترده  اکسل تبدیل تاریخهای میلادی و شمسی و قمری بسیار مورد استفاده قرار می گیرد و با توجه به نیاز بسیاری از دوستان و بازدیدکنندگان وبلاگ،‌ توابعی بدین منظور تهیه شده و  در قالب یکadd ins قرار داده شده اند.همچنین تابعی نیز برای تبدیل یک عدد به حروف آماده شده است. می توانید این add-ins را از اینجا بردارید

اعتبار این مجموعه تا پایان سال 1393 می باشد

(بر روی لینک زیر کلیک راست و سپس Save Target As)

 ALFA_Utility 2012

نصب   ADD ins بسیار ساده است. این کار با چند کلیک انجام می شود.


ادامه مطلب

یک روش کاربردی و مفید و سریع برای برنامه‎نویسی در VBA، استفاده از کدهایی است که جادوگر(Macro Recorder) به‌وجود آورده است. برای این‌منظور کافیست این کدها را کپی و به یک ماژول(Module) در محیط VBA منتقل کنید. ما پیش از این چندین ماکرو توسط جادوگر ایجاد کردیم.

 البته باید دقت داشته باشید که همه چیز را نمی‌توان با Macro Recorder ایجاد کرد. با این ابزار فقط می‌توانیم کدهایی را به‎دست آوریم که بتوانیم عملیات آن را به صورت مستقیم در اکسل انجام ‌دهیم. برای مثال با این روش، نمایش یک پیام در درون محیط اکسل امکان‌پذیر نیست و این قابلیتی است که در درون محیط برنامه‌نویسی وجود دارد. به هر ترتیب ما کارمان را با جادوگر شروع می‌کنیم و از آن ایده می‌گیریم. سپس در صورت نیاز بر روی کدهای تولید شده کار می‌کنیم و با اصلاح و تغییر به کدهای مورد نظرمان می‌رسیم.

مثال ‏: ماکرویی ایجاد کنید که نام اولین شیت را تغییر دهد. فرض کنید که نام این شیت را قبلا در سلول A1 وارد کرده‌ایم.

پاسخ: انجام این‌کار شامل دو بخش اصلی است:

الف)‌ ایجاد یک ماکرو به کمک جادوگر

در ابتدا به کمک جادوگر یک ماکرو ایجاد می‌کنیم و نام شیت1 را به یک نام دلخواه تغییر می‌دهیم. (بهتر است یک کپی از فایل خودتان داشته باشید و ضبط ماکرو را در آن انجام دهید و پس از اطمینان از درستی عملکرد آن، ماکروی ایجاد شده را به این فایل بیاورید.)

  • مسیر DeveloperàCodeàRecord Macro را انتخاب می‌کنیم.
  • پنجره Record Macro باز می‌شود.در این پنجره نامی مناسب مانند RenameSheet را وارد کنید.
  • دگمه OK را بزنید تا ضبط ماکرو شروع شود.
  • اکسل به‎طور خودکار یک ماژول جدید ایجاد می‌نماید و آن را به workbook‌ شما مرتبط می‌نماید.
  • از قسمت پایین صفحه که شامل نام شیت‌هاست بر روی نام شیت اول Double کلیک کنید و نام آن را به یک نام دلخواه مثلا ALI تغییر دهید.
  • حالا به مسیر زیر بروید و عملیات ضبط ماکرو را متوقف کنید:

Developer-->Code -->Stop Recording

ببینیم اکسل چه کدهایی ایجاد کرده است.

با فشردن دگمه‌های Alt+F11 به محیط VBE رفته و در پنجره Project Explorer در بخش مربوط به همین workbook کدهای VBA ‌را می‌بینیم. این کدها در یک ماژول ذخیره می‌شوند. اگر این اولین ماژول باشد نام آن Module1 و گرنه Module2 یا Module3‌... خواهد شد.

کدهای مربوطه به این‌صورت هستند:

Sub Macro1()

'

' Macro1 Macro

'

   Sheets("Sheet1").Select

   Sheets("Sheet1").Name = "ALI FATEHI  "

   

End Sub

ب)‌ ایده گرفتن از کدهای ایجاد شده و اصلاح و تغییر آن

کدهای بالا نشان می‌دهند که در ابتدا Sheet1 انتخاب شده و خط بعدی هم نشان می‌دهد که نام آن به "ALI FATEHI" تغییر یافته است. ما می‌خواهیم به‌جایFATEHI  ALI محتویات سلول A1 را بگذاریم. برای این‌کار در همان خط کد Range("A1").Value را به‌جای"ALI FATEHI" می‌گذاریم. .( دقت کنید که Sheet1 وجود داشته باشد؛ پس نام شیت را که به    ALI FATEHIتغییر یافته به همان نام قبلی یعنی‎ Sheet1 برگردانید.)

Sub Macro1()

'

'Macro1 Macro

'

  Sheets("Sheet1").Select

    Sheets("Sheet1").Name = Range("A1").Value

End Sub

حال بافشردن کلید F5 یا روشهای دیگر این ماکرو را اجرا کنید. می‌بینید که نام شیت اول تغییر می‌کند.

در این بخش در نظر داریم مثالی کاملا کاربردی ارایه دهیم. این مثال میتواند با کمی تغییر کاربردهای گوناگون پیدا کند. حتی می توانید بخشهایی از آنرا در برنامه های خود استفاده کنید.

در این بخش در نظر داریم تا اطلاعاتی را از چندین فایل اکسل در یک فایل تجمیع کنیم. فرض کنید که اطلاعاتی که در ورک بوکها هستند ازیک الگو پیروی می کنند به عنوان مثال  در همه ورک بوکها اطلاعات در شیت1 و در ناحیه A1:A10 باشد. یک ورک جدید باز میکنیم و کدهای زیر را در یک ماژول می نویسیم.

در این برنامه از ماکرو IntegrateData استفاده می کنیم. این ماکرو نیز در داخل خود از ماکروهای PicFolder و getdata‌ استفاده می کند. تابع PicFolder نام فولدری را که فایلها در آن هست از کاربر میگیرد. تابع getdata‌ هم اطلاعات را از فایل جدا و در  فایل مقصد کپی میکند.

Dim AllAnswers
Dim PathName
Sub IntegrateData()
AllAnswers = ThisWorkbook.Name
 PathName = PicFolder()


ادامه مطلب

فایل پی دی اف زیر خلاصه ای از VBA  برای حرفه ای هاست. بسیار سودمند و خلاصه و کاربردی

از اینجا بردارید

 

بسیار سودمند و خلاصه و کاربردی

دستور GoToکنترل برنامه را به خط دیگری می برد. استفاده از این دستور خیلی ساده است و   بدین شکل بکار می‌رود:

GoTo  linename

 linename  نام یک خط و عبارت  است و  در نظر داریم کنترل برنامه را به آنجا بفرستیم. برای اینکه یک خط را نامگذاری کنیم و در اصطلاح به آن Label  بدهیم در ابتدای خط نام آن را با یک عبارت متنی می آوریم و در انتهای آن علامت دو نقطه یعنی  :  قرار می دهیم.

 


ادامه مطلب

   اکسل بطور پیش فرض در ضبط ماکرو از آدرس دهی مطلق استفاده می نماید. البته در برخی موارد نیاز است که از آدرس دهی نسبی استفاده شود. در آدرس دهی مطلق آدرس سلولها همانطور که هستند در کدهای ماکرو آورده می شود. به عنوان مثال اگر ما کار ضبط ماکرو را از سلول c1 شروع کنیم و بعد به سلول C3برویم دقیقا آدرسها به همین صورت کد می‌شوند. 


ادامه مطلب

     ساختار With…End With برای اجرای دستوارت و تنظیمات متعدد مربوط به یک شیء (یک چیز)مورد استفاده قرار می گیرد. 

به عنوان مثال کدهای زیر را در نظر بگیرید: 

SubChangeFont()
    Selection.Font.Name = "Times New Roman"
    Selection.Font.Size = 12
    Selection.Font.Bold = True
    Selection.Font.Italic = True
    Selection.Font.ColorIndex = 5
End Sub
 


ادامه مطلب

 زمانیکه یک تابع (یا رویه) در یک  Workbook تعریف و ایجاد می شود این تابع تنها در همان Workbook قابل استفاده خواهد بود. تابع را در Workbook های دیگر نمی توان بکار برد و  با پیغام #Name. روبرو می‌شویم.

 چگونه می‌توان توابع نوشته شده در یک  فایل را همیشه و همه جا بکار برد؟

 


ادامه مطلب

مثال:یک تاریخ مشخص مانند تاریخ 18/1/1392 را که با ممیز"/" از هم جدا شده اند را در نظر می گیریم. ماکروی زیر سال، ماه و روز را جدا نموده و در سه کادر پیغام نمایش میدهد. محل "/" مشخص نیست و ممکن است تاریخ به شکلهای گوناگونی مانند 18/01/1392 یا 18/1/1392 یا 18/01/92نوشته شود.


ادامه مطلب
........ مطالب قديمي‌تر >>

.: Weblog Themes By Iran Skin :.

درباره وبلاگ

آرشيو مطالب
امکانات وب