kk_lee69
发表于 2017-7-28 13:15:28
回复 15# yamakawa
就是真的不熟 才想出用PNG 的方法 是我可以理解的最簡單方式了 當然最好是 直接畫就好但是真的不熟
yamakawa
发表于 2017-7-28 19:35:02
回复 16# kk_lee69
{:face (356):}只能祝你好运了。。。vba真的无能为力
oceanwind
发表于 2017-7-28 20:04:32
http://club.excelhome.net/forum.php楼主的问题这里应该可以解决,不过你不妨把你带macro的word文件放上来看看,之前也作过一个移动图片的macro.
oceanwind
发表于 2017-7-28 20:10:04
楼上有位朋友说的方法不错,在ps中有js脚本可以使用。
oceanwind
发表于 2017-7-28 20:15:33
之前写的一个移动图片的片段。
Sub movepic(temp_splitn, temp_edge, temp_topwz) '移动图片位置
Dim mywidth, pgwd As Single
pgwd = 595.2755906 '此为A4无边距磅数宽度
Dim ii As Integer
For ii = temp_splitn To 1 Step -1
With ActiveDocument.Shapes("split#=" & ii)
mywidth = .Width'现图片宽度
myH = .Height '现图片高度
.Anchor.Cut
Selection.GoTo wdGoToPage, wdGoToAbsolute, , ii & ""
'ActiveDocument.Range(1, 1).Paste
Selection.Paste
End With
With ActiveDocument.Shapes("split#=" & ii)
.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
.Left = pgwd - mywidth - temp_edge '靠右边
.RelativeVerticalPosition = wdRelativeVerticalPositionPage
.Top = temp_topwz
End With
Next
End Sub
kk_lee69
发表于 2017-7-28 21:57:40
回复 20# oceanwind
恩 這沒問題 下星期在把檔案放上來 在公司
不過 我的語法中已經是 全部VBA語法了....
選定位置 複製圖片 然後再 做個日期的文字然後把兩個組成一個圖片就是上面與法
只是定位不到一起 一定要 細部調整
等待 kevinch 老大出現
kevinch
发表于 2017-7-30 22:04:58
定位时要加上左边距和上边距,还有文字行的段落间距
Dim Sh As Object, PS As Object
Set Sh = ThisDocument.Shapes(1)
Set PS = ThisDocument.PageSetup
Sh.Select
With ThisDocument.Shapes.AddTextbox(msoTextOrientationHorizontal, Sh.Left + PS.LeftMargin, Sh.Top + PS.TopMargin + Selection.Information(wdVerticalPositionRelativeToTextBoundary), Sh.Width, Sh.Height)
.Line.Visible = msoFalse
.Fill.Transparency = 1
With .TextFrame
.VerticalAnchor = msoAnchorMiddle
With .TextRange
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Font.Size = 24
.Font.ColorIndex = wdBlue
.Text = Format(Date, "yyyy.mm.dd")
End With
End With
End With
另外图片要去掉多余的白边,上面这段代码在不同版本中的表现可能会有差异
kk_lee69
发表于 2017-8-1 09:09:02
回复 22# kevinch
感謝 老大的回覆
我在測試看看 研究一下 感謝
kk_lee69
发表于 2017-8-1 17:33:28
回复 22# kevinch
試過了 搞不定自己修改不了不知道 是否 可以用我上面 那段的邏輯
幫我修改一下確定可以執行的 .....
kevinch
发表于 2017-8-2 17:50:06
高版本里可以完美实现,低版本里似乎文字垂直居中一句不行
kk_lee69
发表于 2017-8-2 18:08:29
回复 25# kevinch
我想這樣是有點誤會了
應該這樣說我附上全部檔案 你就可以理解
附件中 圖片999 是獨立放在電腦的其他地方本身WORD 沒有 圖片
然後 巨集的語法中第一段 是要從電腦的絕對位置插入999這張圖片
然後根據圖片所在位置加上 加上日期
然後再把圖片與文字框 合成一個組合圖
圖片插入大小 需要保持 列印出來在大約 1.6CM
你可以看一下我的附件 原本一開始的寫法是 如這個話題一開始的語法
附件中是我後來修改的
我們公司office 為2013
oceanwind
发表于 2017-8-3 00:23:27
Sub insertpic()
'
' 筿?彻?ボ虫ノ
'
PLeft = Selection.Information(wdHorizontalPositionRelativeToPage)
PTop = Selection.Information(wdVerticalPositionRelativeToPage)
PLPOS = Selection.Information(wdHorizontalPositionRelativeToTextBoundary)
Dim Sh As Object, PS As Object
Set PS = ThisDocument.PageSetup
'MsgBox (PLeft & "" & PTop)
Dim arr(0 To 1) As Variant
Set myDocument = ActiveDocument
With myDocument.Shapes
With .AddPicture(FileName:="E:\Study\office\word\au3bbsproblem\2\999.jpg", LinkToFile:=False, SaveWithDocument:=True, Left:=PS.LeftMargin, Top:=PS.TopMargin)
.Name = "shp1"
arr(0) = .Name
End With
Set Sh1 = ThisDocument.Shapes("shp1")
Sh1.Select
With ThisDocument.Shapes.AddTextbox(msoTextOrientationHorizontal, PS.LeftMargin, PS.TopMargin, Sh1.Width, Sh1.Height)
.Name = "shp2"
.Line.Visible = msoFalse
.Fill.Transparency = 1
With .TextFrame
.VerticalAnchor = msoAnchorMiddle
With .TextRange
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Font.Size = 7.5
'.Font.Name = "夹发砰"
.Font.ColorIndex = wdBlue
.Text = Format(Date, "yyyy.mm.dd")
End With
End With
End With
Set Sh2 = ThisDocument.Shapes("shp2")
Dim target_left, target_top As Single
With Sh1
target_left = .Left
target_top = .Top
End With
With Sh2
.Left = target_left
.Top = target_top
End With
' With .Range(Array("shp1", "shp2")).Group
'.Fill.PresetTextured msoTextureBlueTissuePaper
'.Rotation = 45
' .ZOrder msoSendToBack
' End With
End With
End Sub
oceanwind
发表于 2017-8-3 00:24:13
修改了一点点,我这边2013是可以用。
oceanwind
发表于 2017-8-3 00:26:31
你传的图片象素是400点,改成word96点,应该大小各*0.4就行了。
kk_lee69
发表于 2017-8-3 09:38:19
回复 29# oceanwind
感謝 我測試看看
另外請教一下您說的這句話象素是400点,改成word96点,应该大小各*0.4
在談的是哪段的 算法??老實說 像素 怎麼換算成長寬 上面的數字 我也是 搞不太清楚