『壹』 Word郵件合並以後如何做個vba,自動刷新圖片
Word中的郵件合並中,要把照片顯示出來是有講究的,不能像其它內容一樣直接插入。
1. 首先要准備好好照片,照片大小和解析度應一致,並把照片文件全部放到數據源同一個文件夾下
2. 在數據源表格(一般為Excel表格或Word表格),表格標題名稱照片,下面各行分別是照片的文件名,文件名應與前面的姓名相同,擴展名一般為.jpg
3. 在主文檔中,插入照片的位置處,插入域——Includepicture,為便於後續處理,在「文件名或URL」框中,隨便輸入一預設文件名,圖片中輸入了1。
5. 按Alt+F9切換域結果的格式,這樣就完成了照片的郵件合並
6. 完成合並郵件。
『貳』 怎麼在ppt里插入vb程序以隨機調用文本,並用一個控制項來控制刷新
文本的我會,如圖排列一下對象,名稱圖上有標
然後用VBA
因為急,所以用網上1現成的改動了一下,快停電了.....
這是VBA
Dimtxtline
PrivateSubCommandButton2_Click()
DimTextLine1
Ifxhs.Text=""Then
aa=MsgBox("請輸入與本Powerpoint文件在同一文件夾下文本文件名!",vbDefaultButton4,"提示")
ElseIfxhs.Text+".txt"<>Dir(xhs.Text+".txt")Then
aa=MsgBox("該文件不存在!請輸入與本Powerpoint文件在同一文件夾下"+vbCrLf+"其他文本文件的文件名後再按「導入」。",vbDefaultButton4,"提示")
xhs.Text=""
Else
Openxhs.Text+".txt"ForInputAs#1
DoWhileNotEOF(1)
LineInput#1,TextLine1
h=h+TextLine1+vbCrLf
Loop
txtline=Split(h,vbCrLf)
Length=UBound(txtline)
LineCount.Text=CStr(Length)
IfLineCount.Text>0ThenGo.Enabled=True
xms.Text=h+vbCrLf
EndIf
Close#1
EndSub
PrivateSubCommandButton4_Click()
xms.Text=""
EndSub
PrivateSubGo_Click()
IfCInt(TargetLine.Text)<CInt(LineCount.Text)Then
xms.Text=vbCrLf+"這是第"+TargetLine.Text+"行的內容"+vbCrLf+txtline(CInt(TargetLine.Text)-1)
Else
aa=MsgBox("行數超出文本最大行數",vbDefaultButton4,"提示")
EndIf
EndSub
說明下:CommandButton2是那個導入的名稱.....
這個很簡單的,一看就明白,就是讀出來,然後用split將其打開成數組,然後分數組讀出來就OK...
『叄』 EXCEL 如何利用vba 插入本地一張圖片 並且每次自動更新呢
工作簿打開時導入圖片
Private Sub Workbook_Open()
ActiveSheet.Pictures.Insert("C:\123\456.jpg").Select
End Sub
A1不為空時刪除圖片
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("a1") <> "" Then
For Each sh In ActiveSheet.Shapes
sh.Delete
Next
End If
End Sub
這樣每次打開工作簿就載入指定的圖片,如果圖片名稱為456.jpg圖片更新了,載入的圖片也是最新的。
『肆』 如何使用VBA調用EXCEL裡面的圖片和數據生成PPT裡面的圖片和數據
本次案例來自網友提問:需要從600個Excel文件中導出每個文件中的2個圖片,之前由於時間原因,回復比較簡單沒有給出具體實現方法,今天花時間整理寫成圖文,希望小夥伴們都可以學會。
一、 數據模擬
為了更加真實的還原提問者遇到的問題,我們需要准備600個且都包含有2個圖片的Excel文件。一兩個文件我們可以手動新建就可以了,這可是600個文件吶!
別擔心,既然我們是用VBA來解決問題,解決這種事情重復機械的勞動,當然不是什麼難事。圖片我們用以下兩個代替,放到當前文件目錄下,分別命名為test1.png和test2.png,模擬數據時將test1.png插入到第一個表,test2.png插入到第二個工作表。
test1.png
test2.png
分步操作過程:
第一步:新建一個Excel文件,將它另存為.xlsm格式。
啟用宏工作簿
第二步:打開新建好的.xlsm文件,按快捷鍵ALT+F11進入VBE界面。
進入VBE界面
第三步:在VBE工程種插入一個模塊。
插入模塊
第四步:在剛剛新建的模塊中粘貼以下代碼。
Sub 生成600個含圖片的Excel文件()
'關閉刷新,防止屏幕抖動
Application.ScreenUpdating = False
'定義變數i
Dim i As Integer
'定義i從1循環到600
For i = 1 To 600
'新增一個工作簿
Workbooks.Add
'往工作簿的第一個工作表中插入圖片test1.png
ActiveWorkbook.Sheets(1).Pictures.Insert(ThisWorkbook.Path & "\test1.png").Select
'往工作簿的第二個工作表中插入圖片test2.png
ActiveWorkbook.Sheets(2).Pictures.Insert(ThisWorkbook.Path & "\test2.png").Select
'將工作簿存儲到當前路徑下
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & i & ".xlsx"
'關閉工作簿
ActiveWorkbook.Close
'繼續循環新建其他工作簿
Next
'恢復屏幕刷新
Application.ScreenUpdating = True
'處理完成給出提示
MsgBox "600個含圖片的Excel文件生成完成!", vbInformation, "提示信息"
End Sub
第五步:執行VBA代碼,生成我們需要的600個Excel文件。
執行VBA代碼
連貫操作演示:
操作演示
二、 圖片導出
600個案例文件已經准備好了,接下來就是導出文件中的圖片。
解決思路:
1. 一個個的找出當前目錄下的所有Excel文件。
2. 打開找到的Excel文件。
3. 一個個的找出Excel文件中的工作表。
4. 找出工作表中的所有圖片對象。
5. 把找到的每一個圖片導出到當前目錄下。
如果文件不多的情況下,按上面的思路手動操作導出也是可以的,其實通過VBA來解決問題也是要先把復雜問題進行簡單化,一步步進行分解問題,最終形成完整解決方案。VBA代碼使用方式在上面數據准備過程中已經有詳細描述了,本次我們直接來運行下代碼,實現導出文件中的圖片。
Sub 導出當前路徑下工作簿中的圖片()
Dim wk$ '定義為工作簿文件
Dim i As Integer '定義工作簿中的工作表數量
Dim ii As Integer '定義為工作表中的對象個數
'關閉刷新,防止抖動
Application.ScreenUpdating = False
'遍歷第一個工作簿文件
wk = Dir(ThisWorkbook.Path & "\*.xlsx")
'遍歷到的文件名不等於空的情況下
Do While wk <> ""
'如果文件名稱和當前的名稱是不一樣的。
If wk <> ThisWorkbook.Name Then
'打開遍歷到的工作簿
Workbooks.Open (ThisWorkbook.Path & "\" & wk)
'對打開的工作簿文件進行以下操作
With ActiveWorkbook
'循環出工作簿中的每一個工作表
For i = 1 To .Sheets.Count
'循環出工作表中的每一個對象shape
For ii = 1 To .Sheets(i).Shapes.Count
'臨時變數,統計shape的個數
k = k + 1
'復制shape對象
.Sheets(i).Shapes(ii).Copy
'創建一個圖表對象,寬高與與對象保持一致
With .Sheets(i).ChartObjects.Add(0, 0, .Sheets(i).Shapes(ii).Width, .Sheets(i).Shapes(ii).Height).Chart
'把圖片插入進去
.Paste
'通過圖表對象的導出方法,把圖片導出到當前目錄下
.Export ThisWorkbook.Path & "\" & wk & "_" & k & ".png"
'刪除圖表
.Parent.Delete
End With
Next
Next
'關閉打開的工作簿
.Close False
End With
End If
'繼續遍歷下一個工作簿
wk = Dir
Loop
'開啟屏幕刷新
Application.ScreenUpdating = True
End Sub
圖片導出演示
『伍』 如何用vba做ppt
首先,新建一個PPT文檔,並復制這段代碼。點擊「開發工具」→Visual Basic或查看代碼
Sub一鍵EMF()
ActiveWindow.View.PasteSpecial (ppPasteEnhancedMetafile)
ActiveWindow.Selection.ShapeRange.Ungroup.Ungroup.Select
ActiveWindow.Selection.ShapeRange(msoAutoShape).Delete
ActiveWindow.Selection.ShapeRange.Regroup
End Sub
如果沒有開發工具選項卡,請點擊文件→選項→自定義功能區→主選項卡→勾選「開發工具」→確定。然後根據第一步繼續。如果已經有開發工具選項卡,跳過此步。
進入VBA界面後,點擊插入→模塊→在新建的空白區域按Ctrl+V粘貼復制好的代碼→關閉窗口,返回PPT界面。
我們也可以把宏放到快速訪問工具欄中,方法是:文件→選項→「從下列位置選擇命令」下面選擇「宏」→將一鍵EMF添加到對話框右側的快速訪問工具欄里。此時宏就出現在了快速訪問工具欄上。復制素材後點擊此按鈕,就做到了一鍵導入。經常從AI往PPT導素材的朋友,不妨試試。
PS:
1.建議將做好的宏處理文檔單獨保存為pptm格式,使用時打開導入素材,然後把處理後的素材再復制到需要的ppt里,此pptm只作為中轉。
2.使用一鍵前,請注意先復制元素,否則VBA會報錯。
3.代碼在PPT2010、2013中測試無誤。