PDA

View Full Version : اعمال تغییرات در فایل ورد



hossein71
جمعه 10 اردیبهشت 1389, 20:04 عصر
سلام
دوستان عزیز
آیا میشه یک فایل ورد رو بدون اینکه در vb نمایش بدیم بوسیله الگوریتمی که برای متون درون فایل گفتیم. تغییراتی در متن ایجاد کنیم و تغییرات ایجاد شده رو در یک فایل جدید ذخیره کنیم؟
اگر میشه، چجوریه؟

pooya1072
جمعه 10 اردیبهشت 1389, 22:33 عصر
با سلام
اگه بلدي فايل word رو در vb باز كني براي رسيدن به هدفت فقط لازمه كه خاصيت visible مربوط
به document رو false كن.

hossein71
جمعه 10 اردیبهشت 1389, 23:10 عصر
اگر بخوایم فایل ورد وارد شده در OLE رو تغییرات روش اعمال کنیم(کم و زیاد کردن کلمات یا همون ویرایش) چیکار باد بکینم.
در تکست باکس با خاصیت text میشه داخلشو تغییر داد. حالا با این چطوری میشه داخلشو تغییر داد.

pooya1072
شنبه 11 اردیبهشت 1389, 03:05 صبح
تا اونجايي كه من مي دونم و اگه اشتباه نكنم روي ole تغييري نمي توني بدي.اگه بخواي فايل ورد رو تغيير بدي بايد برنامه ورد رو به كتابخانه vb اضافه كني.بعد توي برنامه فراخواني كني.از منوي project و گزينه refrences

microsoft word library

LORD AELX
شنبه 11 اردیبهشت 1389, 07:44 صبح
شما قبلا هم درباره نمایش Word Documents در VB سوال کردید که من روش OLE رو پیشنهاد دادم، اگه کد زیر رو قبل از کد نمایش OLE اضافه کنید، امکان Edit هم فراهم میشه:


OLE1.MiscFlags = vbOLEMiscFlagDisableInPlaceولی فکر نکنم این چیزی باشه که شما انتظار دارید :متفکر:

بگذارید یه چیز دیگه بهتون بدم، با دستورالعمل زیر پیش بروید:

اول Reference مربوطه رو به VB اضافه کنید:

Menu Bar > Project > References and check the "Microsoft Word x.x Object Library"سپس 3 تا Button و یه OLE رو بدن تغییر نام به فرم اضافه کنید. یه فایل abc.docx هم در درایو C ایجاد کنید. در آخر کد زیر رو وارد کنید:



Option Explicit
Dim oDocument As Object

Private Sub Command1_Click()
On Error GoTo Err_Handler
' Create a new Word Document...
OLE1.CreateEmbed vbNullString, "Word.Document"
' Add some text to the document. The OLE.Object
' property returns the document object...
Set oDocument = OLE1.object
oDocument.Content.Select
With oDocument.Application.Selection
' Add a heading at the top of the document...
.Style = oDocument.Styles("Heading 1")
.Font.Color = &HFF0000
.TypeText "Blue Sky Airlines"
.ParagraphFormat.Alignment = 1 '[wdAlignParagraphCenter]
.TypeParagraph
.TypeParagraph
' Now add some text...
.TypeText "Dear Mr. Smith,"
.TypeParagraph
.TypeText "PI - SOME TEXT HERE"
.TypeParagraph
.TypeText "PII LINE - Hellooooooooooo!!!"
.TypeParagraph
.Font.Italic = True
.TypeText "SHUT ME UP!!!"
.TypeParagraph
End With
' Zoom to see entire document...
OLE1.SizeMode = 3
OLE1.DoVerb -1
Command1.Enabled = False
Command2.Enabled = False
Command3.Enabled = True
Exit Sub
Err_Handler:
MsgBox "An error occurred: " & Err.Description, vbCritical
End Sub

Private Sub Command2_Click()
On Error GoTo Err_Handler
' Create an embedded object using the data
' stored in abc.docx.<?xm-insertion_mark_start author="v-thomr" time="20070327T040719-0600"?> If this code is run in Microsoft Office
' Word 2007, change the file name to abc.docxx.<?xm-insertion_mark_end?><?xm-deletion_mark author="v-thomr" time="20070327T040717-0600" data=".."?>
OLE1.CreateEmbed "C:\abc.docx"
Command1.Enabled = False
Command2.Enabled = False
Command3.Enabled = True
Exit Sub
Err_Handler:
MsgBox "The file 'C:\abc.docx' does not exist or cannot be opened.", vbCritical
End Sub

Private Sub Command3_Click()
On Error Resume Next
' Delete the existinf test file (if any)...
Kill "C:\abc.docx"
' Save the file as a native Word DOC file...
oDocument.SaveAs "C:\abc.docx"
Set oDocument = Nothing
' Close the OLE object and remove it...
OLE1.Close
OLE1.Delete
Command1.Enabled = True
Command2.Enabled = True
Command3.Enabled = False
End Sub

Private Sub Form_Load()
Command1.Caption = "Create"
Command2.Caption = "Open"
Command3.Caption = "Save"
Command3.Enabled = False
End Sub
در این مثال به کاربرد متد های TypeParagraph و TypeText توجه داشته باشید.

راستی، میتونید برای دکمه های Open و Save هم Dialog Box بگذارید. چون ربطی به سوال اینجا نداره من آموزش نمیدم و به همین Editor ساده اکتفا می کنم. فقط بگم که باید از تابع GetOpenFileName واقع در comdlg32.dll و به کمک کامپاننت CommonDialog استفاده کنید. تو کد هم Comment گذاشتم که میتونید خط به خط دنبال کنید.

موفق باشید :قلب: