Xin giúp : Mở 1 file trong VBA
Nhờ các anh chị giúp đỡ
Trong VBA, để mở một file Word, Access … thìShell "[B]Winword[/B] PathABC.doc" Shell "[B]MSAccess[/B] PathABC.mdb"vậy muốn mở file *.html và *.pdf thì tên ứng dụng là gì ?
Nếu không muốn dùng
Shell "C:Program FilesInternet ExplorerIEXPLORE.EXE PathABC.html"
Mong được giúp đỡ, xin cám ơn !TDN
anh có thể chỉ cho em cách mở 1 file POWER POINT và File WORD trong VBA trên EXCEL được không
nếu có ví dụ cụ thể càng tốt. em xin cảm ơn anh nhiều
Câu lệnh: CreateObject("Shell.Application").Open "Đường dẫn đến file" để mở bất cứ file nào
(miễn là file ấy có thể mở được bằng cách double click vào file)
TRONG EXCLE MUỐN TẠO MỚI 1 FILE POWER POINT CÓ SẲN THÌ MÌNH LÀM NHƯ THẾ NÀO ANH NDU
trong word thì em mò ra rồi
đây là code tạo mới một 1 file word có sẵn
Set wordapp = CreateObject("word.Application")
wordapp.Documents.Add Template:="D:ABC.doCX"
wordapp.Visible = Truecòn file PP thì chịu mong anh hướng dẫn dùm, xin cảm ơn anh nhiều
TẠO MỚI 1 FILE POWER POINT CÓ SẲN nghĩa là thế nào nhỉ? Tôi không hiểu
có nghĩa là đã có 1 file nào đó là file mẫu, người ta không muốn mở trực tiếp file đó lên rồi save as thành file khác
người ta muốn nhấn 1 nút thì nó sẽ ra file mới hoàn toàn (giống như file mẫu) sau đó tự người ta save lại tùy ý
Chỗ xanh xanh không cần thực hiện thì chuyển thành chú thích
Sub Button1_Click()
Dim PPApp As Object, P As Object, index As Long
Set PPApp = CreateObject("PowerPoint.Application")
PPApp.Activate
Set P = PPApp.Presentations.Add
P.ApplyTemplate "C:Program FilesMicrosoft OfficeTemplates1033ContemporaryPhotoAlbum.potx" ' "c:hehe.potx"
[COLOR=#0000ff]For index = 1 To P.SlideMaster.CustomLayouts.Count
P.Slides.AddSlide index, P.SlideMaster.CustomLayouts(index)
Next
P.SaveAs "c:hichic.pptx"[/COLOR]
End Sub
nếu mình lấy luôn tất cả toàn bộ thông tin trên file đó không bỏ cái gì thì nên làm như thế nào thầy? vì trong file của thầy chỉ lấy toàn bộ các mẫu layout chứ không có toàn bộ nội dung file
ý của em là tạo mới 1 file từ 1 file có sẵn. có nghĩa là nó lấy toàn bộ file kia (thay vì em copy bên ngoài rồi save as thành file khác) nhưng bây giờ em muốn nhấn nút thì nó sẽ tự động làm như vậy. xin chân thành cảm ơn các thầy đã quan tâm vấn đề này. xin chân thành cảm ơn
Tôi nghĩ là thế này. Template nó chỉ là cái sườn. Bạn dự định làm 10 presentation nhưng chúng chỉ khác nhau về nội dung còn có chung một cái sườn. Lúc đó thay vì 10 lần tạo "sườn – cấu trúc" từ A tới Z thì bạn chỉ tạo 1 lần duy nhất. Sau đó thì mỗi lần làm presentation mới thì bạn "load" cái sườn vào rồi nhập nội dung hiện hành.
Lúc đó thì dùng code trước thôi. Nhưng bạn phải tạo sườn. Cách tạo thì xin mời tìm đọc. Vắn tắt thì là: Mở PowerPoint –> View –> Slide Master –> chỉnh sửa –> save dưới định dạng "potx"
Bạn không thể: Mở PowerPoint –> thiết kế 1 presentation hoàn chỉnh –> nhưng không save ở dạng "pptx" mà save ở dạng "potx".
Có nghĩa là lúc đó thì bạn không có cái sườn kia. Tức nếu sau khi thực hiện code trong Excel bạn chuyển sang PowerPoint để thao tác bằng tay thì khi chọn menu Home –> New Slide thì bạn không có những slide trong sườn của mình để thêm vào. Vì bạn tạo sườn không đúng cách. Tôi nghĩ là thế vì tôi không nghiên cứu PP.
Nếu bạn cố tình: Mở PowerPoint –> thiết kế 1 presentation hoàn chỉnh –> nhưng không save ở dạng "pptx" mà save ở dạng "potx". thì
Sub Button1_Click()
Dim PPApp As Object, P As Object
Set PPApp = CreateObject("PowerPoint.Application")
PPApp.Activate
Set P = PPApp.Presentations.Open("c:hehe.potx")
P.SaveAs "c:hichic.pptx"
End Sub
Tức bạn mở "gốc" rồi saveas, vậy gốc vẫn còn.
Chỉ có điều lúc đó chỗ xanh xanh save luôn thành "pptx" cho rồi.
Cuối năm rồi nên làm thầy bói đoán thử 1 quẻ. Có phải ý bạn là chỉ đơn giản thế này không?
Không trúng coi như vui hén.Sub Copy_File_As()
Dim FileSource, FileDes
FileSource = ThisWorkbook.Path & "presentation1.pptx"
FileDes = ThisWorkbook.Path & "presentation2.pptx"
With CreateObject("Scripting.FileSystemObject")
.copyfile FileSource, FileDes
End With
End SubThế dùng tạm cái này đi
Nếu ở trong powerpoint thì dùng cái này
Sub CommandButton1_Click()
Dim sTemplate As String
sTemplate = "C:UsersnewnewAppDataRoamingMicrosoftTemplatesMau_moi14.potx"
Presentations.Open sTemplate, False, True, True
End SubThích ở Excel thì dùng cái này (sửa từ code bác Siwtom, cám ơn bác)
Sub Button1_Click()
Dim PPApp As Object,sTemplate As StringsTemplate = "C:UsersnewnewAppDataRoamingMicrosoftTemplatesMau_moi14.potx"
Set PPApp = CreateObject("PowerPoint.Application")
PPApp.Activate
PPApp.Presentations.Open sTemplate, False, True, True
End Subtự sửa giá trị đường dẫn sTemplate lại cho hợp lý
—
Mà Thầy ơi là thầy, hỏi bao nhiêu lần ở GPE rui, mà sao không có file ví dụ cho người ta thử người ta làm cho, cứ phát biểu xuông vậy
vì thế thầy tự test nhé – đặc biệt là cái sub sau cho excel
có chi phản hồi sớm
xin cảm ơncảm ơn các bạn bè và các bậc tiền bối. [URL="https://www.giaiphapexcel.com/forum/member.php?491962-vodoi2x"]vodoi2x ,[URL="https://www.giaiphapexcel.com/forum/member.php?u=134916"]quanghai1969, [URL="https://www.giaiphapexcel.com/forum/member.php?43018-siwtom"]siwtom và anh Ndu. mình đã giải quyết được vấn đề. Code của voidoi2x là đúng yêu cầu, qua đây mình học hỏi được thêm vài cách mở file của thầy [URL="https://www.giaiphapexcel.com/forum/member.php?43018-siwtom"]siwtom. và anh [URL="https://www.giaiphapexcel.com/forum/member.php?u=134916"]quanghai1969. chúc đại gia đình GPE đón xuân mới vui vẻ. thật tình từ khi biết đến GPE mình đã giải quyết được rất nhiều việc, hiện tại vì cơm áo gạo tiền nên ít có thời gian góp sức cho GPE. Hy vọng sau này có nhiều thời gian để cùng GPE giúp đỡ cho những người (chẳng hạn giống như tôi bây giờ) giải quyết được nhiều công việc. một lần nữa xin chân thành cảm ơn
www.giaiphapexcel.com/diendan/threads/xin-gi%C3%BAp-m%E1%BB%9F-1-file-trong-vba.2619/
Xây dựng Lương 3P, KPI cho Doanh nghiệp
Làm thế nào để trả lương cho nhân viên chính xác nhất? Đây là một trong những câu hỏi khó trong quản trị nhân...
Xem khóa học