• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

powerpoint 2003 -2010

Nơi trao đổi về VBA (Visual Basic for Application), lập trình cho ứng dụng Microsoft Office, AutoCAD...

Moderator: tungblt

User avatar
bangnhatquang68
Guru
Guru
Posts: 791
Joined: Tue 26/01/2010 12:44 pm
Location: Vĩ tuyến 17
Has thanked: 20 times
Been thanked: 38 times
Contact:

powerpoint 2003 -2010

Postby bangnhatquang68 » Sat 04/09/2010 5:22 pm

tui mới mò vba nên không biết nhiều! hỏi tí?
:D
trong powerpoint thì thêm mấy cái button và textbox thì vào chổ nào! add nó làm sao?

tui tải tập tin này lam ví dụ nhé!

xin hướng dẫn cách thêm các textbox, button vào PowerPoint.

hỏi thêm tí nữa:
- làm thế nào để lấy đường dẫn của file PP đang trình chiếu. (" nếu trong ứng dụng winform thì app.apth là có link rui")
- lấy đượng đường dẫn của ứng dụng pp đang hoạt động.=> code để delete cái PP đó như thế nào?
- làm thế nào đê cài thời gian(" sau vai tháng thì khi pp được sử dụng lại thì lập tức bị delete luôn)
=> mục đích của tui là chèn maco vào PP ( do PP của tui hơi bị "ngon" nên nếu có ai đó chôm chỉa thì sau vài tháng đó tiêu luôn)
Attachments
EQ_1.rar
(28.63 KiB) Downloaded 525 times


Mời anh em lên facebook giao lưu nào!
http://www.facebook.com/groups/145823032176611/

Phung Manh Ninh
Thành viên chính thức
Thành viên chính thức
Posts: 38
Joined: Sat 28/06/2008 8:30 pm

Re: powerpoint 2003 -2010

Postby Phung Manh Ninh » Fri 04/02/2011 1:02 am

- làm thế nào để lấy đường dẫn của file PP đang trình chiếu. (" nếu trong ứng dụng winform thì app.apth là có link rui")


Để lấy đường dẫn của thư mục chứa file pp đang trình chiếu, bạn dùng lệnh này:
ActivePresentation.Path

Như vậy, để lấy đường dẫn tới file pp đang trình chiếu thì dùng lệnh:
ActivePresentation.Path & "\<Tên file>"
-------------------------------------------------------------------------
do PP của tui hơi bị "ngon" nên nếu có ai đó chôm chỉa thì sau vài tháng đó tiêu luôn


"Kẹt" vừa thôi. Thế bạn thấy câu lệnh trên của tôi có "ngon" không?

User avatar
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Posts: 1259
Joined: Thu 03/06/2010 9:23 pm
Location: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 times
Been thanked: 138 times
Contact:

Re: powerpoint 2003 -2010

Postby VuVanHoanh » Sat 05/02/2011 9:38 am

Ặc, mấy tướng mò kiểu này thì sao mà ra???
Như vậy, để lấy đường dẫn tới file pp đang trình chiếu thì dùng lệnh:
ActivePresentation.Path & "\<Tên file>"

:))
1. Đường dẫn của file đang mở:
ActivePresentation.FullName
2. Xóa tệp powerpoint đang chạy:
  1. Private Sub Command1_Click()
  2.     ActivePresentation.Close
  3.     Kill ActivePresentation.FullName
  4. End Sub

3. Cho thời gian khoảng 5 tháng thì xóa file powerpoint:
[vb]Private Sub Active_Click()
SaveSetting Application.Name, "Delete", "File", ActivePresentation.FullName
SaveSetting Application.Name, "Delete", "TimeStart", Date$
End Sub

Private Sub Check_Click()
Dim dt As Integer
Dim file As Integer
file = GetSetting(Application.Name, "Delete", "File", "NoFile")
dt = GetSetting(Application.Name, "Delete", "TimeStart", "NoTimeStart")
If Month(Date$) - Month(dt) = 5 Then
Kill file
End If
End Sub[/vb]

User avatar
ngochoan2006
Guru
Guru
Posts: 184
Joined: Wed 25/10/2006 4:35 pm
Location: Phúc Yên - Vĩnh Phúc !
Been thanked: 1 time

Re: powerpoint 2003 -2010

Postby ngochoan2006 » Mon 07/02/2011 10:02 am

Hình như các bạn đang trả lời nhầm hướng thì phải !
nếu theo cách mình hiểu thì bạn Quang68 đang hỏi cách làm ntn trong file PowerPoint khi mà cái file PP của bạn ấy "ngon" mà khi người khác copy về thì sau một thời gian qui định dùng cái file "ngon" đó nó sẽ tự xóa file đó đi.
Bạn Hoanh hướng dẫn cách xóa file qua lệnh
  1.  Private Sub Command1_Click()
  2.     ActivePresentation.Close
  3.     Kill ActivePresentation.FullName
  4. End Sub
  5.  

cái này viết trong macro của file PowerPoint à ? sao mình thử chạy nó trong file PP mà nó ko xóa nhỉ ??? bạn kiểm tra lại hộ mình xem có xóa được file đang trình chiếu không với.
Thanks.
Kiến thức là vô hạn!
Hiểu biết của tui thì có hạn !
Nên dừng có ngạc nhiên khi tôi không biết 1+2 =? !

User avatar
ngochoan2006
Guru
Guru
Posts: 184
Joined: Wed 25/10/2006 4:35 pm
Location: Phúc Yên - Vĩnh Phúc !
Been thanked: 1 time

Re: powerpoint 2003 -2010

Postby ngochoan2006 » Mon 07/02/2011 2:40 pm

Quả thật cái việc 1 file đang trình diễn rồi thoát và xóa file đó đi chính bằng PowerPoint khó ăn phết.
mình cũng thử mấy cách rồi nhưng không hiệu quả !!!
nếu chạy PP thông qua VB thì việc xóa file mới ... còn dùng chính PP để xóa thì :(
có bác nào biết cách xóa ko ? vào đây cùng trao đổi luôn.
Kiến thức là vô hạn!
Hiểu biết của tui thì có hạn !
Nên dừng có ngạc nhiên khi tôi không biết 1+2 =? !

User avatar
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Posts: 1259
Joined: Thu 03/06/2010 9:23 pm
Location: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 times
Been thanked: 138 times
Contact:

Re: powerpoint 2003 -2010

Postby VuVanHoanh » Tue 08/02/2011 9:29 am

Hì hì, sao phải khổ thế nhỉ???
Lệnh ActivePresentation.Close đã đóng tệp PP đang chạy lại rùi, nếu cần thiết thì chúng ta lưu lại đường dẫn trước khi đóng là xóa được chứ gì???
Căn bản là khi anh gặp lệnh ActivePresentation.Close thì cái đang cần xóa nó tắt rồi, và thay vào đó là cái đang chạy khác, vậy thì làm sao mà kill được thưa anh???
=> Sửa:
  1. Private Sub Command1_Click()
  2.     Dim fName As String
  3.     fName = ActivePresentation.FullName
  4.     ActivePresentation.Close
  5.     Kill fName
  6. End Sub
  7.  

User avatar
ngochoan2006
Guru
Guru
Posts: 184
Joined: Wed 25/10/2006 4:35 pm
Location: Phúc Yên - Vĩnh Phúc !
Been thanked: 1 time

Re: powerpoint 2003 -2010

Postby ngochoan2006 » Tue 08/02/2011 9:39 am

Có lẽ bạn chưa chạy thử code mà bạn post lên.
Công việc ở đây là : Bạn đang mở file tên là A.ppt ( a.pptx ) nó đang show nhé.
khi đó bạn bấm 1 nút lệnh thực hiện việc là :
+ Đóng file A.ppt ( A.pptx ) lại
+ Xóa file A.ppt ( A.pptx ) vừa trình chiếu đó đi ( dù nó đang nằm ở đâu trong ổ đĩa đi chăng nữa )
chỉ đơn giản vậy thôi. Bạn thử đi, mình đã thử nhưng chưa thành công.
Kiến thức là vô hạn!
Hiểu biết của tui thì có hạn !
Nên dừng có ngạc nhiên khi tôi không biết 1+2 =? !

User avatar
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Posts: 1259
Joined: Thu 03/06/2010 9:23 pm
Location: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 times
Been thanked: 138 times
Contact:

Re: powerpoint 2003 -2010

Postby VuVanHoanh » Tue 08/02/2011 10:00 am

Thưa bạn, đã thử code
Bạn không thực hiện được khi ở FormField
Bạn vào tool\Macros\Record New Macro bạn tạo bừa một cái macro rồi bạn ấn Alt + F11, chỉnh sửa code của cái macro đó như code trên, đừng chạy thử mà đóng cái cửa sổ ấy lại. Ra màn hình soạn thảo của PP, nháy chuột phải lên thanh công cụ bất kỳ, chọn Customize, chọn thẻ Commands\Macros. Kéo thả con macro vừa tạo lên thanh công cụ bất kỳ. Đóng nó lại. Lúc đó thì bạn hãy chạy thử. :)

User avatar
ngochoan2006
Guru
Guru
Posts: 184
Joined: Wed 25/10/2006 4:35 pm
Location: Phúc Yên - Vĩnh Phúc !
Been thanked: 1 time

Re: powerpoint 2003 -2010

Postby ngochoan2006 » Tue 08/02/2011 10:09 am

câu lệnh :
  1.     ActivePresentation.Close
  2.  

tác dụng của lệnh này là gì nhỉ ??? mình cũng chưa hiểu rõ lắm về nó.
sau khi lệnh này thực thi thì lệnh sau :
[vb]
Kill fName
[/vb]
Lệnh Kill này sẽ thực thi bằng đối tượng nào ??? Thắc mắc mãi chỗ này, chạy thử ở máy mình cũng chả thấy nó chạy lệnh Kill. Thay lệnh Kill bằng lệnh Msgbox để hiện thông báo nó cũng chả thèm báo gì :(
Kiến thức là vô hạn!
Hiểu biết của tui thì có hạn !
Nên dừng có ngạc nhiên khi tôi không biết 1+2 =? !

User avatar
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Posts: 1259
Joined: Thu 03/06/2010 9:23 pm
Location: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 times
Been thanked: 138 times
Contact:

Re: powerpoint 2003 -2010

Postby VuVanHoanh » Tue 08/02/2011 10:15 am

:))
Lệnh ActivePresentation.Close để đóng cái pp đang được activate lại. như thế mới kill nó được chớ.
Còn lệnh kill ở đây thì có công dụng chẳng khác gì trong VB6 cả.
còn biến fName thì Hoành đặt cho giá trị là FilePath của tệp PP trước khi tắt. Bởi nếu tắt nó rồi thì giá trị ActivePresentation.FullName sẽ khác.
Chắc bạn chưa nhìn kỹ phép gán: fName = ActivePresentation.FullName

User avatar
ngochoan2006
Guru
Guru
Posts: 184
Joined: Wed 25/10/2006 4:35 pm
Location: Phúc Yên - Vĩnh Phúc !
Been thanked: 1 time

Re: powerpoint 2003 -2010

Postby ngochoan2006 » Tue 08/02/2011 10:35 am

:)
lạ thật, sao mình chạy mà nó vẫn không thực thi lệnh Kill vậy ? Có bạn nào chạy lệnh trên mà lệnh Kill nó hoạt động không ?
Cú pháp lệnh của bạn thì là đúng, Nhưng cái mình đang thắc mắc ở đây là khi cái ActivePresentation đó được đóng lại rồi, thì lệnh Kill khi đó sẽ được đối tượng nào thực thi ? vì trước khi ActivePresentation đóng thì nó sẽ là thằng thực thi các lệnh.
Kiến thức là vô hạn!
Hiểu biết của tui thì có hạn !
Nên dừng có ngạc nhiên khi tôi không biết 1+2 =? !

User avatar
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Posts: 1259
Joined: Thu 03/06/2010 9:23 pm
Location: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 times
Been thanked: 138 times
Contact:

Re: powerpoint 2003 -2010

Postby VuVanHoanh » Tue 08/02/2011 10:41 am

Hì hì, mình đã nói ở trên là bạn tạo một cái macro đây thây??? Cái macro đó (thuộc mặc định) sẽ thực hiện lệnh kill tiếp theo, không phải là cái ActivePresentation đó thực thi mà từ đầu đến cuối, chương trình hay nói cách khác là cái tệp chứa thiết lập mẫu đó (trong word thì gọi là Normal.dot đó). Vì nó thuộc mặc định nên kể cả có đóng cái tệp PP kia lại thì nó vẫn hoạt động tiếp. :)

User avatar
ngochoan2006
Guru
Guru
Posts: 184
Joined: Wed 25/10/2006 4:35 pm
Location: Phúc Yên - Vĩnh Phúc !
Been thanked: 1 time

Re: powerpoint 2003 -2010

Postby ngochoan2006 » Tue 08/02/2011 10:45 am

ok. Cái vấn đề này hay hay nên mình sẽ tạo ra 1 tip khác để trao đổi nhé.
Kiến thức là vô hạn!
Hiểu biết của tui thì có hạn !
Nên dừng có ngạc nhiên khi tôi không biết 1+2 =? !

User avatar
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Posts: 1259
Joined: Thu 03/06/2010 9:23 pm
Location: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 times
Been thanked: 138 times
Contact:

Re: powerpoint 2003 -2010

Postby VuVanHoanh » Tue 08/02/2011 10:48 am

Thôi bạn ạ, mình sẽ cố gắng tạo project mẫu để đưa cho bạn. Có gì bạn liên lạc qua kongminh9x@yahoo.com cho nó dễ dàng hơn. Cứ post xong rồi lại chờ thì mình nghĩ là mệt lắm, lại thêm nặng cho 4r nữa.


Return to “Visual Basic for Application (VBA)”

Who is online

Users browsing this forum: No registered users and 1 guest