PDA

View Full Version : بار گذاری word در vb



hossein71
سه شنبه 07 اردیبهشت 1389, 21:52 عصر
سلام
دوستان عزیز
اگر بخوایم یک فایل ورد رو از پوشه ای انتخاب کنیم و به داخل برنامه بیاریم و اون فایل رو نمایش بده باید چیکار کنم؟

LORD AELX
چهارشنبه 08 اردیبهشت 1389, 07:54 صبح
از کد زیر استفاده کن:



Dim oWord As Object
Dim oDoc As Object
oWord.Visible = True
Set oWord = CreateObject("word.application")
Set oDoc = oWord.Documents.Add ("ADDRESS")
oWord.Quit
فقط جای ADDRESS آدرس فایل ورد رو باید قرار بدی. مثلا C:\test.doc یا یه متغیر حاوی آدرس. :چشمک:

hossein71
چهارشنبه 08 اردیبهشت 1389, 08:26 صبح
از کد زیر استفاده کن:

کد:
Dim oWord As Object
Dim oDoc As Object
oWord.Visible = True
Set oWord = CreateObject("word.application")
Set oDoc = oWord.Documents.Add ("ADDRESS")
oWord.Quit
فقط جای ADDRESS آدرس فایل ورد رو باید قرار بدی. مثلا C:\test.doc یا یه متغیر حاوی آدرس. :چشمک:

جناب LORD AELX (http://barnamenevis.org/forum/member.php?u=143822) ارور زیر رو میده.(ضمن تشکر از جوابتون)

http://up.iranblog.com/Files/2e0e882c54b34e458265.png

LORD AELX
چهارشنبه 08 اردیبهشت 1389, 09:35 صبح
اولا کد بالا رو به این شکل اصلاح می کنم:


Dim oWord As Object
Dim oDoc As Object
Set oWord = CreateObject("word.application")
oWord.Visible = True
Set oDoc = oWord.Documents.Add("C:\test.docx")
ببخشید متوجه نشدم، ظاهرا شما میخواید فایل ورد رو تو خود فرم VB نمایش بدید، درسته؟

پس اول یه OLE به فرم تون اضافه کنید و نوع اون رو Microsoft Office Word قرار بدید. سپس از کد زیر در رویداد مورد نظر استفاده کنید:


OLE1.AutoActivate = vbOLEActivateManual
OLE1.Class = "Word.Document.12" 'depends on what's installed on your system
OLE1.CreateEmbed "C:\abc.docx"
OLE1.DoVerb vbOLEUIActivate
OLE1.Visible = Trueتوجه داشته باشید که Word.Document.12 کلاس مربوط به MS Word 2007 هستش، و برای ورژن های مختلف، این مقدار متفاوت هستش. ولی وقتی داری از طریق IDE بصورت ویژوال OLE رو انتخاب می کنی و از اون MSW خودتو انتخاب می کنی، بصورت default ورژن مناسب شما رو Set می کنه ولی شما نیاز دارید تست کنید که ورژن MSW کاربر چیه و کلاس مناسب رو بصورت دستی Set کنید. در واقع بجای خط:

OLE1.Class = "Word.Document.12"این کد رو بنویسید:

OLE1.Class = "Word.Document." & Fix(CreateObject("Word.Application").Version)ببخشید دیر پاسخ دادم، موفق باشید :قلب:

hossein71
چهارشنبه 08 اردیبهشت 1389, 09:55 صبح
Dim oWord As Object
Dim oDoc As Object
Set oWord = CreateObject("word.application")
oWord.Visible = True
Set oDoc = oWord.Documents.Add("C:\test.docx")کد بالا رو باید در کجا قرار بدم.(ضمن تشکر)

LORD AELX
چهارشنبه 08 اردیبهشت 1389, 10:29 صبح
Dim oWord As Object
Dim oDoc As Object
Set oWord = CreateObject("word.application")
oWord.Visible = True
Set oDoc = oWord.Documents.Add("C:\test.docx")کد بالا رو باید در کجا قرار بدم.(ضمن تشکر)

دوست عزیز، همانطور که گفتم این کد رو میتونید برای باز کردن خود فایل ورد و دادان handle اون به برنامه استفاده کنید. برای چیزی که شما خواستید، بعد از اون کد، توضیح دادم، فقط اونا رو اعمال کنید.

راستی نیازی به توضیح RichTextBox دارید؟

hossein71
چهارشنبه 08 اردیبهشت 1389, 10:35 صبح
1-قسمت هندل کجاست. من هندل نمی دونم چیه.
2-اگر برای ریچ تکست باکس یک منبع آموزشی معرفی کنید یا اینکه خودتون یاد بدید خیلی ممنون میشم.(در اینجا بدردم نمی خوره ولی ممکنه بعدا بهش نیاز داشته باشم.)(باتشکر)

LORD AELX
چهارشنبه 08 اردیبهشت 1389, 11:00 صبح
Handle کردن در برنامه نویسی یعنی اداره کردن چیزی، مثل یه برنامه دیگه یا ... (اصلا مهم نیست :لبخند: اینو بیخیال، اون کد رو ولش کن، اصلا من که گفتم، این کد اولیه رو نمیخواد تایپ کنی، بیخیالش :چشمک: )

و در مورد آموزش، بله میشه.... :متفکر:

RichTextBox ها همانطور که از اسمشون پیداست، TextBox های گرانبار شده یا توانمند شده هستند که قابلیت های بیشتری از یه TextBox معمولی دارن، مثلا همین چیزی که من دارم توش پیغامم رو تایپ می کنم تا برای شما بفرستم یه RichTextBox هستش که قابلیت های یه ادیتور نسبتا کامل مثل MS Word رو داره. در اینجا منظورم از RichTextBox انواع Text Editor شون هستش نه معمولی شون :لبخندساده:. معمولا سایت هایی هستند که چنین RichTextBox هایی رو میسازن و بصورت یه OCX (برای VB البته) به شما ارایه می کنند. از جمله سایت:

www.chado-software.com (http://www.chado-software.com/aboutspe.htm?gclid=CMryy-rPqKECFc2S3wod7SjjEw)که از اینجا (سمت چپ صفحه) میتونید دانلود کنید:

http://www.chado-software.com/aboutspe.htm?gclid=CMryy-rPqKECFc2S3wod7SjjEwاگه مورد بالا رو دانلود کنید و Setup رو نصب کنید، در محل نصب یه فایل ChadoSpellEditor.ocx قرار میده که میتونید اونو به VB6 اضافه کنید:

Project -> Components -> Controls -> Browse -> OCX_Addressبعد از اضافه شدن کنترل، چک باکس اونو تیک بزنید (ChadoSpellEditor) و سپس میتونید ابزار جدید را در ToolBox مشاهده کنید. مثل بقیه ابزارها اونو به فرم اضافه کنید. این ابزار هم متد های خودش رو داره که میتونید باهاشون کار کنید. البته اینم بگم که این یه ابزار کامل هست و تمام کارهای داخلش رو اتوماتیک انجام میده و نیازی به کد نویسی برای هر چیزی نیست.

شما میتونید از سایت زیر هم ساختن یک Text Editor رو با استفاده از کنترل RTB یا همون Rich Text Box دنبال کنید. سورسش رو هم برای دانلود گذاشته.

http://www.vbdotnetheaven.com/uploadfile/scottlysle/wordprocessor09122006234320pm/wordprocessor.aspxموفق باشید :چشمک:

hossein71
چهارشنبه 08 اردیبهشت 1389, 11:24 صبح
من کد رو داخل یک کامند گذاشتم و برنامه درست کار می کنه اما وقتی فایل ورد در OLE نمایش داده میشه پیغام زیر داده میشه.
http://up.iranblog.com/Files/26d08432e7654808adc4.png

LORD AELX
چهارشنبه 08 اردیبهشت 1389, 19:02 عصر
احتمالا برنامه MS Word شما Busy بوده و VB نتونسته مستقیم بازش کنه.:متفکر:

اگه حل نشد، از اول: :لبخند:
از ToolBox تولز OLE رو انتخاب و به فرم اضافه می کنید، یه پنجره بنام Insert Object میاد که باید از اون Microsoft Office Word Document رو انتخاب کنید. علاوه بر این، یه Command هم به فرمتون اضافه کنید. حالا باید تو قسمت کد برنامتون کد زیر رو وارد کنید:


Private Sub Command1_Click()
OLE1.AutoActivate = vbOLEActivateManual
OLE1.Class = "Word.Document." & Fix(CreateObject("Word.Application").Version) 'depends on what's installed on your system
OLE1.CreateEmbed "C:\abc.docx"
OLE1.DoVerb vbOLEUIActivate
OLE1.Visible = True
End Subدر این مثال فرض می کنیم حتما یه فایل ورد بنام abc.docx در درایو C شما وجود داره.

hossein71
چهارشنبه 08 اردیبهشت 1389, 19:13 عصر
متاسفانه درست نشد.

LORD AELX
پنج شنبه 09 اردیبهشت 1389, 02:26 صبح
متاسفانه درست نشد.

به خدا درسته، تست هم کردم سه بار .... :لبخند: آقا اصلا اگه باور نمیکنی بیا، اینم عکسش!!! :لبخندساده: :متفکر:

LORD AELX
شنبه 11 اردیبهشت 1389, 08:10 صبح
اضافه کردن Scroll به OLE (http://support.microsoft.com/kb/147804)