باشه. از فردا شروع مي كنيم.نوشته شده توسط mefmef [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
باشه. از فردا شروع مي كنيم.نوشته شده توسط mefmef [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
اگه خودتون رنگ متن رو سفيد نكرده باشيد، احتمالاً اشكال از اكسل هست و بايد اون رو پاك كرده، مجدداً Install كنيد.نوشته شده توسط h.eivazi [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
اكسل خودم هم يه مدت اينجوري شده بود آخر هم نفهميدم چي شده. مجبور بودم جدول هاش رو ببرم توي Word پرينت كنم.
ولي اگه پلاگين خاصي براش نصب كرديد مثل ٌWord2PDF convertor يا Adove Acrobar writer و... اون رو Uninstall كنيد شايد حل شد.
برنامه نويسي ويژوال بيسيك در اكسل
درس اول: مفاهيم پايه، برنامه نويسي شيء گرا يعني چه؟
جعبه ابزار ويژوال بيسيك را فعال كنيد.
در 2003: View> Toolbars> Control Toolbox (يك نوار ابزار جديد روي صفحه ظاهر مي شود)
در 2007: Microsoft Office> Excel Options> Customize> Choose Commands From: Developer Tab> Controls> Add> OK (يه آيكون جديد به قسمت Quick Access اضافه ميشه)
به هر كدوم از كنترل ها (ابزارها) ي جعبه ابزار يه شيء (Object) ميگيم. مثلاً Textbox, CommandButton و... .
در زبان هاي برنامه نويسي جديد، بر خلاف گذشته، هر برنامه اي از تعدادي شيء و مقداري برنامه متني تشكيل شده. در حالي كه قبلاًبرنامه ها فقط متن خالي بودند. به همين دليل، زبان هاي جديد رو شيء گرا (Objective) مي نامند.
تمرين كار با كنترل ها (اشياء) ويژوال بيسيك:
دو TextBox به كاربرگ اضافه كنيد و برنامه اي بنويسيد كه با تغيير متن TB اول، متن دومي، معادل اولي بشه. يعني هر چيزي كه توي اولي مي نويسيم، توي دومي هم نوشته بشه.
روش كار:
دو TextBox به كاربرگ (شيت) اضافه كنيد و روي اولي، دوبار كليك كنيد تا وارد محيط برنامه نويسي بشيم.
(تذكر: بايد در جعبه ابزار، گزينه Design Mode فعال باشه تا بتونيم اين كارها رو بكنيم)
در اونجا، دو خط برنامه مي بينيد كه با Private Sub شروع شده و با End Sub تموم ميشه. به قسمت هايي از برنامه كه با اون دو عبارت شروع و ختم ميشن، يك روال (Sub) ميگيم. داخل اون روال (بين دو خط برنامه موجود) كد زير رو بنويسيد:
(وقتي ميگم كد بنويسيد يعني برنامه بنويسيد)
حالا، همونجا گزينه Save رو زده، برنامه رو ذخيره كرده و بدون اين كه محيط برنامه نويسي رو ببنديد به محيط كار اكسل برگرديد.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا، محيط كار رو از حالت Design Mode خارج كنيد (با كليك روي دكمه Design Mode در جعبه ابزار) و داخل TB اول متن دلخواهي رو بنويسيد. ببينيد چه اتفاقي مي افته؟!
بله! متن TB دوم مطابق TB اول تغيير مي كنه.
تا اينجاي كار رو داشته باشيد و با چيزهايي كه گفتم كمي ور بريد تا آشناتر بشيد و اگه سوالي داشتيد بگيد تا بقيه مطالب رو اگه خواستيد بعداً ادامه بديم.
تذكر: اگه Macro Security رو روي High تنظيم كرده باشيد يا ماكروها رو Disable كرده باشيد، بعداً كه فايل رو دوباره باز مي كنيد، برنامه ها اجرا نخواهند شد.
در 2003: Tools> Options> Security> Macro Secuity: Settings> Low> OK> OK
در 2007: Microsoft Office> Excel Options> Trust Center> Trust Center Settings> Macro Security> Enable All Macros> OK> OK
Last edited by javad2625; 06-08-2007 at 00:44.
حالا بگذاريد خودم هم يه سوال از حرفه اي تر ها بپرسم كه من هم يه چيزي ياد گرفته باشم:
چطور ميشه با برنامه نويسي، اولين خانه خالي از يك رديف يا يك ستون رو پيدا كرد؟
من از اين كد استفاده مي كنم:
شما روش بهتري سراغ نداريد؟کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
متشكرم
Last edited by javad2625; 06-08-2007 at 00:39.
دوست عزیز javad2625
خیلی عالی بود لطفا ادامه بده
Last edited by mefmef; 06-08-2007 at 11:42.
برنامه نويسي ويژوال بيسيك در اكسل
درس دوم: كار با مولفه ها (Properties)
سه Textbox و يك CommandButton به كاربرگ اضافه كنيد. (در حالت Design Mode)
(اگه خواستيد، رنگ كل جدول رو كمي تيره كنيد، تا TB ها رو بهتر ببينيد)
روي يكي از TB ها راست كليك و گزينه Properties رو انتخاب كنيد تا ستون تنظيمات ظاهر شود.
به هر كدام از خونه هاي ستون تنظيمات، يك مولفه (Property) ميگيم.
مولفه Name نام اون شيء رو به ما ميگه. (مثلاً TextBox1) كه البته مي تونيم اين نام رو به دلخواه تغيير بديم.
مولفه Backcolor رنگ زمينه TB (يا CB) رو تنظيم مي كنه.
مولفه ForeColor رنگ متن TB (يا CB) رو تنظيم مي كنه.
مولفه Text متن پيشفرض TB رو تعيين مي كنه. (براي تغيير متن CB ها بايد از مولفه Caption استفاده كنيم)
مولفه LinkedCell اون TB رو به يكي از خانه هاي جدول لينك مي كنه به طوري كه هر چيزي داخل TB بنويسيم داخل اون خونه هم نوشته ميشه.
و....
تمرين:
رنگ زمينه و متن TB ها و CB موجود رو به دلخواه تنظيم كرده Textbox1 تا TextBox3 رو به خانه هاي G1 تا G3 لينك كنيد و برنامه اي بسازيد كه با كليك روي CommandButton1 مقدار عددي TextBox3 در خانه G4 نوشته بشه.
تذكر:
وقتي ميگيم مقدار عددي، يعني اگه داخل اون TB عدد باشه، مقدار عددي رو بنويسه، اما اگه متن باشه، مقدار 0 رو بنويسه.
روش كار:
در حالت Design Mode روي تك تك TB ها كليك كرده، جلوي مولفه LinkedCell آدرس خانه هاي دلخواه از جدول مثلاً G1 براي TB1 و G2 براي TB2 و... رو مي نويسيم.
روي CommandButton1 دوبار كليك مي كنيم تا وارد محيط كدنويسي (برنامه نويسي) بشيم.
در روال (Sub) موجود، كد زير رو مي نويسيم:
همونطور كه مي بينيد براي فهميدن مقدار عددي TB3 از دستور Val استفاده كرديم.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا همونجا دكمه Save رو زده، برنامه رو ذخيره مي كنيم و بدون بستن محيط كدنويسي، به محيط اكسل بر مي گرديم (اگر هم ببنديم مهم نيست).
گزينه Design Mode رو غير فعال كرده و ستون Properties رو مي بنديم. حالا داخل TB هاي 1 تا 3 متن دلخواهي رو بنويسيد. چه اتفاقي مي افته؟
دكمه CommandButton1 رو بزنيد. چه اتفاقي مي افته؟
اگه داخل Tb3 عدد بنويسيم و CB1 رو بزنيم چي ميشه؟
بله! مقدار عددي TB3 در خانه G4 نوشته ميشه.
حالا يك سوال علمي:
كسي مي تونه برنامه اي بنويسه كه با كليك روي CommandButton1 مقدار عددي TextBox3 در 2 ضرب شده و داخل خانه G5 نوشته بشه؟
هر كي تونست، كد رو بنويسه اينجا بگذاره.
مخصوصاً شما جناب Mefmef. جواب رو ميتونيد بگيد؟
Last edited by javad2625; 06-08-2007 at 13:43.
دستت درد نکنه خیلی عالی است با جزییات کافی
ببخشید من بار اول چون عجله داشتم فقط تونستم تشکر کنم و همین عجله باعث شد تا دو تا پست بفرستمكسي مي تونه برنامه اي بنويسه كه با كليك روي CommandButton1 مقدار عددي TextBox3 در 2 ضرب شده و داخل خانه G5 نوشته بشه؟
هر كي تونست، كد رو بنويسه اينجا بگذاره.
مخصوصاً شما جناب Mefmef. جواب رو ميتونيد بگيد؟
واما در پاسخ به سوال شما با بگویم که متاسفانه من هنوز تعریف بعضی از دستوراتی را که تا به حال استفاده کردید را نمی دانم مثلا Rang چه کاری را انجام می دهد یا برای دسترسی پیدا کردن به محتوی یک سلول چکار باید کرد اگر لطف کنید عملکرد این دستورات را بگویید یا منبعی را معرفی کنید که با استفاده از ان بتوان این اطلاعات را بدست اورد فکر کنم بهتر بتوانم به سوالات پاسخ بدهم
Last edited by mefmef; 07-08-2007 at 11:10.
درود بر همگي مخصوصا ... دوست عزيز آقا جواد
يه سوال دارم.... اميدوارم كه تكراري نباشه .. چون وقتي براي مطالعه كامل پستها ندارم..
فرض كنين كه شما سطر اول رو نوشتين : رديف ... نام ... تاريخ ... و ...
و سطرهاي دوم رو با مطالب مربوط به آنها پر كردين ...
حالا ميخواين سطر اول قفل باشه ... كه هر وقت كه ميخواين بر اساس هر ستون (تاريخ يا نام) سورت كنين ... سطر اول كه شامل عنوان هر ستونه سورت نشه ...
بايد چكار كرد؟
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)