Dim wdApp As New Word.Application 'word 應用物件
Dim wdDoc As Document '文檔物件
Dim wdTable As Table '表格
Set wdDoc = wdApp.Documents.Add
Set wdTable = wdDoc.Tables(1)
wdApp.Visible = True


//插入圖片

Dim shapeCode As Word.Shape
Set shapeCode = wdDoc.Shapes.AddPicture("d:\VB OFFICE\test.jpg", True, True)

//同一篇文檔的粘貼複製

ActiveDocument.Paragraphs(1).Range.Select
Selection.Cut
ActiveDocument.Range(100, 100).Select
Selection.Paste

//插入點移至文檔末尾

Set myrange = ActiveDocument.Range
myrange.Select
Selection.Collapse(wdCollapseEnd)

//當然了,如果將Set myrange = ActiveDocument.Range改成Set myrange = ActiveDocument.Range
(ActiveDocument.Paragraphs(1).Range.Start,ActiveDocument.Paragraphs(4).Range.End)將會把插入點移至第四段結尾處,若把wdCollapseEnd改成wdCollapseStart則相應的移至開頭。

//打開已有文檔,複製其中的內容到一個新建文檔

Set wddoc = wdapp.Documents.Open("D:\VB OFFICE\test.doc")
ActiveDocument.Paragraphs(1).Range.Select
Selection.Copy
wddoc.Close

Set wddoc = wdapp.Documents.Add
ActiveDocument.Range(0, 0).Select
Selection.Paste
wdapp.Visible = True

//運行到這裡有個問題,就是圖片總是在第一段首,下面我要研究一下怎麼把他放到游標的位置

//挖哢哢,經過我不懈的努力發現:寫成Selection.InlineShapes.AddPicture ("d:\VB OFFICE\test.jpg")

就會把圖片放在你所選定的位置了,如果像上面寫成Set shapeCode = wdDoc.Shapes.AddPicture("d:\VB OFFICE\test.jpg", True, True) ,就會把圖片放在文檔開頭,因為是wdDoc.嘛,糊塗了我,這麼簡單的問題想這麼久!不過在這過程中發現了一篇很有用的文章,整理出來存下 HOHO 多學無害

//修改表格添加行

Set myrange = ActiveDocument.Tables(1).Cell(ActiveDocument.Tables(1).Rows.Count, ActiveDocument.Tables(1).Columns.Count).Range
myrange.Select
Selection.MoveRight
Selection.InsertRows (5)

======================================================================================

VB調用WORD中的圖片問題(轉)





如何在word文檔中以shape類型將圖片加入到游標所在位置??且使這個圖片不可刪除??並將圖片的層設置在文字之下,其他圖片之上??即,文字可透過圖片看到,而其他圖片又不會覆蓋掉這個圖片??

第一種:shape (內嵌式圖片)

就是word中自帶的畫圖功能:就是繪圖工具欄上的那些功能。

第二種:inlineshape(文字間圖片)

就是通過「插入」->「圖片」->「來自檔...」

----------------------------------------------------------------

shape(內嵌式圖片)是沒有具體的插入位置的,只有一個「錨鏈」的位置。

而inlineshape(文字間圖片)是有具體位置的,也就是說inlineshape是可以插入到文字中間的,是有插入點位置的。

關於inlineshape圖片定位的問題,以前也有人問過,我的也試著解決過,

不過,inlineshape在插入這後,只有編號,位置,沒有名字,

但是在有一個解決的方法,就是在插入圖片的時候,在inlineshape圖片物件的一個「替代文字」裡寫上圖片的名字,

到時候再用迴圈去判斷

dim i as long

for i=1 to wordDoc.inlineshapes.count

if worddoc.inlineshapes(i).AlternativeText = "你的圖片的名字" then

.....

end if

next i










======================================================================================

VB代碼word,excel



8月3日



這些VBA代碼會有用


QQ:有沒有辦法得到一個excle表的行的總數和列的總數??

AA:

xlSheet.UsedRange.Rows.Count

xlSheet.UsedRange.Cols.Count

QQ:

如何打開一個word的範本!

最近做一個word的範本程式,打開word是Set NewDoc = MyWord.Documents.Add

這是一個新的doc,名字叫文檔1(後面會累加,自動的),但是現在我希望直接新建打開一個我寫好的範本程式,名字還是叫文檔1。請問應該怎麼寫!

AA:

On Error Resume Next '忽略錯誤

Set Wrd = GetObject(, "Word.Application") '查找一個正在運行的Word拷貝

If Err.Number <> 0 Then '如果 Word 沒有運行則

Set Wrd = CreateObject("Word.Application") '運行它

End If

Err.Clear '清除發生錯誤的 Err 物件

On Error GoTo 0 '保留普通錯誤進程

Dim dot As String

Dim doc As String

Wrd.Visible =true

dot = "C:\temp.dot"

doc = "c:\temp.doc"

Documents.Open FileName:=dot, _

ConfirmConversions:=False, ReadOnly:=True, AddToRecentFiles:=False, _

PasswordDocument:="", PasswordTemplate:="", Revert:=False, _

WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _

0

Wrd.ActiveDocument.Close

Wrd.Documents.Add Template:=dot, NewTemplate:=False

'結果系列操作

ActiveDocument.SaveAs FileName:=doc, FileFormat:=wdFormatDocument, _

LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _

:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _

SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _

False

'列印出來

ActiveDocument.PrintOut FileName:=doc, Range:=wdPrintAllDocument, Item:= _

wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _

ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _

False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _

PrintZoomPaperHeight:=0

Wrd.ActiveDocument.Close

WORD中打字

Selection.TypeText Text:="您好,先生"

如何讓Word的保存命令調用我自己編寫的保存方法?

在doc文檔被修改以後,在退出的時候當提示使用者文檔已經修改,問是否保存

和直接點擊保存按鈕的時候,能否讓Word去調用我自己編寫的SaveDoc方法,

如何實現?

創建名為「FileSave」的宏,把你的代碼寫入在這個宏中。當點擊「保存」按鈕或退出程式要求「保存」時,都會直接執行你的「FileSave」宏,而不再執行Word的內置命令。

怎麼樣判斷Word文檔中有沒有圖片?

Word裡的圖片包括兩種(據我所知),樓上的漏掉了InlineShapes

If ActiveDocument.Shapes.Count + ActiveDocument.InlineShapes.Count > 0 Then

MsgBox "esit"

Else

MsgBox "Document doesn't contain a shape"

End If

QQ:怎樣在程式中把圖片寫入到word中。

AA:

功能是:在指定位置插入圖片並設置圖片的格式(包括設置為襯托于文字下    方)

Sub 設置圖片格式()

Selection.InlineShapes.AddPicture FileName:="D:\Mypicture\800x600.jpg", _

Selection.InlineShapes.AddPicture FileName:="D:\Mypicture\800x600.jpg", _

LinkToFile:=False, SaveWithDocument:=True

Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend

Selection.InlineShapes(1).ConvertToShape.Select

Selection.ShapeRange.Fill.Visible = msoFalse

Selection.ShapeRange.Fill.Transparency = 0#

Selection.ShapeRange.Line.Weight = 0.75

Selection.ShapeRange.Line.DashStyle = msoLineSolid

Selection.ShapeRange.Line.Style = msoLineSingle

Selection.ShapeRange.Line.Transparency = 0#

Selection.ShapeRange.Line.Visible = msoFalse

Selection.ShapeRange.LockAspectRatio = msoTrue

Selection.ShapeRange.Height = 361.4

Selection.ShapeRange.Width = 481.6

Selection.ShapeRange.PictureFormat.Brightness = 0.5

Selection.ShapeRange.PictureFormat.Contrast = 0.5

Selection.ShapeRange.PictureFormat.ColorType = msoPictureAutomatic

Selection.ShapeRange.PictureFormat.CropLeft = 0#

Selection.ShapeRange.PictureFormat.CropRight = 0#

Selection.ShapeRange.PictureFormat.CropTop = 0#

Selection.ShapeRange.PictureFormat.CropBottom = 0#

Selection.ShapeRange.RelativeHorizontalPosition = _

wdRelativeHorizontalPositionColumn

Selection.ShapeRange.RelativeVerticalPosition = _

wdRelativeVerticalPositionPage

Selection.ShapeRange.Left = wdShapeCenter

Selection.ShapeRange.Top = wdShapeCenter

Selection.ShapeRange.LockAnchor = False

Selection.ShapeRange.WrapFormat.AllowOverlap = True

Selection.ShapeRange.WrapFormat.Side = wdWrapBoth

Selection.ShapeRange.WrapFormat.DistanceTop = CentimetersToPoints(0)

Selection.ShapeRange.WrapFormat.DistanceBottom = CentimetersToPoints(0)

Selection.ShapeRange.WrapFormat.DistanceLeft = CentimetersToPoints(0.32)

Selection.ShapeRange.WrapFormat.DistanceRight = CentimetersToPoints(0.32)

Selection.ShapeRange.WrapFormat.Type = 3

‘實際上真正有用的是下面的語句設置圖片為襯托于文字下方

Selection.ShapeRange.ZOrder msoSendBehindText

End Sub

QQ:有沒有方法,把一個word檔,按編號返回一段一段的段落文章。

比如

1 XXXX

1.1 YYYY

1.1.1 ZZZZ

QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ

1.1.2 SSSS

PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP

能夠返回 一個編號對應的一個標題和一段話。

謝謝

AA:

載入Microsoft Word 9.0 Object Library

Dim dcApp As Word.Application

Dim dcWd As Word.Document

Private Sub Form_Load()

Set dcApp = New Word.Application

Set dcWd = dcApp.Documents.Open("c:\rpt.doc")

For i = 1 To dcWd.Paragraphs.Count

Debug.Print dcWd.Paragraphs(i).Range.Text

Next

dcWd.Close

Set dcWd = Nothing

dcApp.Quit

Set dcApp = Nothing

End Sub

QQ:如何用vb實現在word的bookmark後插入字元

在word模版中指定了boolmark:a,

Dim wrdapp As Word.Application

Dim wrddoc As Word.Document

Dim strFileName As String

Dim i As Variant

dim s as string

s="要插入的字元"

Set wrdapp = CreateObject("Word.Application")

strFileName = App.Path & "\temp.dot"

Set wrddoc = wrdapp.Documents.Open(strFileName)

i = wrddoc.Range.GoTo(wdGoToBookmark, , , "a")

後面該如何寫,才能將s插入到bookmark後面?另外我上面的代碼正確嗎?謝謝

??????????????

QQ: VBA:在word文檔中搜索單詞「審稿人」,將游標移到它後面,插入圖片?怎麼實現!!!

我現在可以打開檔和插入圖片了,就是沒有搜索單詞、移動游標、插入指定大小的圖片的功能,那位老大出來指點指點呀?

我的代碼如下:

Option Explicit

Dim Doc As New Document

Dim Visi As Boolean

Dim wordApp As Word.Application

Dim docWord As Word.Document

Private Sub Command2_Click()

Set wordApp = New Word.Application

Set docWord = Word.Documents.Open("D:\test.doc")

ActiveDocument.Shapes.AddPicture ("d:\shan.jpg")

docWord.Save

docWord.Close

wordApp.Application.Quit()

End Sub

AA:

wordApp.Find.ClearFormatting

wordApp.Find.Text = "審稿人"

wordApp.Find.Replacement.Text = ""

wordApp.Find.Forward = True

wordApp.Find.Wrap = wdFindContinue

wordApp.Find.Format = False

wordApp.Find.MatchCase = False

wordApp.Find.MatchWholeWord = False

wordApp.Find.MatchByte = True

wordApp.Find.CorrectHangulEndings = False

wordApp.Find.MatchAllWordForms = False

wordApp.Find.MatchSoundsLike = False

wordApp.Find.MatchWildcards = False

wordApp.Find.MatchFuzzy = False

wordApp.Find.Execute

QQ:請問如何將載入的功能表不是以懸浮的功能表形式出現?

AA:CommandBar的Position屬

QQ: 在vb 中將word檔保存為純文字

AA:

Private Sub Command1_Click()

Dim oW As Object, oD As Object, x As Object

Set oW = CreateObject("word.application")

Set oD = oW.documents.open("c:\aaa.doc")

'oW.Visible = True

For Each x In oD.words

Text1 = Text1 & x

Next x

Open "c:\bbb.txt" For Output As #1

Print #1, Text1

Close #1

oW.quit

End Sub

QQ:怎麼在一個word文檔的最後插入東西

AA:

WORD XP的VB説明中有示例:

本示例在名為「Changes.doc」的文檔末尾插入文本。「For Each...Next」語句用來判斷此文檔是否已打開。

For Each aDocument In Documents

If InStr(LCase$(aDocument.Name), "changes.doc") Then

Set myRange = Documents("Changes.doc").Content

myRange.InsertAfter "the end."

End If

Next aDocument

QQ:在WORD的宏裡如何編寫查詢頁數和行數,

AA:

ActiveDocument.BuiltInDocumentProperties(wdPropertyPages)

ActiveDocument.BuiltInDocumentProperties(wdPropertyLines)

QQ:請問網頁考到word後,那個向下的箭頭是什麼標記,如何自動替換掉?手工替換很麻煩阿!但又不知道這是什麼標記,無法下手阿。急用!!

AA:

手工分行符號

可以用查找替換的,或者試試這個

Sub blankdel()

Dim i As Integer

For i = ActiveDocument.Paragraphs.Count To 1 Step -1

ActiveDocument.Paragraphs(i).Range.Select

a = Selection.Words.Count

If a = 1 Then

Selection.Delete

m = m + 1

End If

Next i

MsgBox "共刪除空白段落" & m & "個"

End Sub

按ALT+F11,把代碼COPY進去運行一下就行了

QQ:請問怎麼樣用word物件中控制word的分頁?

AA:

我剛剛試出來的:此VB6下的代碼可以解你問題

Set pword = CreateObject("Word.Application")

pword.Documents.Add dotName, False

pword.WindowState = 2 'wdWindowStateMinimize '2

pword.Selection.InsertBreak wdPageBreak

QQ:我想控制使用者只能修改Word檔的部分內容,所以需要設置部分區域為唯讀,不知道該用什麼方法,請大家賜教。

AA:

Selection.InsertBreak Type:=wdSectionBreakContinuous

ActiveDocument.Sections(1).ProtectedForForms = False

ActiveDocument.Sections(2).ProtectedForForms = True

ActiveDocument.Protect Password:="", NoReset:=False, Type:= _

wdAllowOnlyFormFields

QQ:請問怎麼插入圖片的

AA:

Dim myShape As Shape

Dim MyInshape As InlineShape

'插入一個文字間圖片物件

Set MyInshape = Selection.InlineShapes.AddPicture(FileName:="D:\pic001.jpg", _

LinkToFile:=False, SaveWithDocument:=True)

'將InlineShape物件轉變為Shape物件

Set myShape = MyInshape.ConvertToShape

'使圖片浮于文字上方

myShape.WrapFormat.Type = wdWrapNone

QQ:如何訪問表格儲存格內容

AA:

objWordDoc.Tables(3).Cell(1, 1).Range.Text






Posted by shadow at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()