Tôi có một số mã yêu cầu tôi biết những gì SlideIndex
hoạt động trên (ví dụ: vị trí chèn trang trình bày mới, vị trí chèn ChartObject, v.v. .). Khoảng 99% thời gian, tôi thành công có thể có được SlideIndex
bởi:Làm thế nào tôi có thể lấy SlideIndex của một Slide hiển thị trong Powerpoint khi SelectionType = ppSelectionNone
Dim w as Long 'slide index variable
w = ActivePresentation.Windows(1).Selection.SlideRange(1).SlideIndex
Các khác 0,1% thời gian, khi ActivePresentation.Windows(1).SelectionType = ppSelectionNone
, nó sẽ thất bại, bởi vì (dễ hiểu) nó không thể có được SlideIndex
của lựa chọn, bởi vì không có lựa chọn. Điều này có thể xảy ra nếu người dùng vô tình "đã chọn" khoảng trống giữa hai trang trình bày trong ngăn Phác thảo.
Những gì tôi muốn làm, lý tưởng, là có được SlideIndex
tài sản của slide mà có thể nhìn thấy trong cửa sổ Slides:
Tôi hiện đang có một số mã kiểm tra liệu SelectionType
là ppSelectionNone
, vì vậy tôi có thể bẫy điều kiện, tôi chỉ không tìm ra cách để xác định slideIndex của Slides Pane.
Function GetMySlide()
Dim w as Long
If Not ActivePresentation.Windows(1).Selection.Type = ppSelectionNone Then
w = ActivePresentation.Windows(1).Selection.SlideRange(1).SlideIndex
Set GetMySlide = ActivePresentation.Slides(w)
Else:
MsgBox "No slide is currently selected. Please select a slide in the Outline pane in order to proceed.", vbInformation
Set GetMySlide = Nothing
Exit Function
End If
End Function
Cập nhật
giải pháp tạm thời của tôi là sử dụng một biến nào lastUsedSlide
trong một nỗ lực để theo dõi các phần Slide thời gian gần đây được lựa chọn nhiều nhất. Tôi có thể kết hợp điều này với sự kiện WindowSelectionChange
, nhưng hy vọng sẽ có một giải pháp đơn giản hơn. Nếu tôi nghĩ phương pháp này sẽ luôn hoạt động, tôi sẽ sử dụng nó, tuy nhiên, nó có khả năng giới thiệu các lỗi không lường trước được, vì lastUsedSlide
không phải là proxy đáng tin cậy cho what_slide_i_am_currently_looking_at
.
Tôi sẽ kiểm tra lại, nhưng khi tôi thử sáng nay, 'Kích hoạt' vẫn còn để lại cho tôi' SelectionType = ppSelectionNone', và vì vậy tôi không thể tham chiếu đến 'ActivePresentation.Windows (1) .Selection .SlideRange ... '. –
OK, tôi nghĩ điều này thực sự có thể hiệu quả. Hãy để tôi kiểm tra nó nhiều hơn một chút :) –
Khi ở chế độ xem Bình thường (PPT2016 btw), tôi có thể Kích hoạt Pane 2 (Trượt) rồi Pane 1 (hình thu nhỏ) để chọn hình thu nhỏ, nhưng CHỈ khi bước qua mã. Vào thời gian chạy, tôi kết thúc mà không có một lựa chọn! –