SCENARIOएम्बेडेड वर्ड डॉक्टर पीडीएफ के रूप में सहेजें
एक शब्द दस्तावेज़ Excel 2011 फ़ाइल में एम्बेडेड है। मुझे इसे पीडीएफ के रूप में सहेजने की ज़रूरत है।
यह एक्सेल 2010 था, तो यह कोई समस्या नहीं होगी क्योंकि विन पीसी में एमएस-ऑफिस ओएलई स्वचालन का समर्थन करता है।
मैंने क्या किया है?
यह वह कोड है जिसे मैंने एक्सेल 2010 में करने की कोशिश की जो काम करता है।
Option Explicit
Sub Sample()
Application.ScreenUpdating = False
Dim shp As Shape
Dim objWord As Object
Dim objOLE As OLEObject
Set shp = Sheets("Sheet1").Shapes("Object 1")
shp.OLEFormat.Activate
Set objOLE = shp.OLEFormat.Object
Set objWord = objOLE.Object
objWord.ExportAsFixedFormat OutputFileName:= _
"C:\Users\Siddharth Rout\Desktop\Sid.pdf", ExportFormat:= _
17, OpenAfterExport:=True, OptimizeFor:= _
0, Range:=0, From:=1, To:=1, _
Item:=0, IncludeDocProps:=True, KeepIRM:=True, _
CreateBookmarks:=0, DocStructureTags:=True, _
BitmapMissingFonts:=True, UseISO19005_1:=False
objWord.Application.Quit
Set objWord = Nothing
Set shp = Nothing
Set objOLE = Nothing
Application.ScreenUpdating = True
End Sub
स्पष्ट रूप से मैं मैक में इसका उपयोग नहीं कर सकता। ऐसा नहीं है कि मैंने मैक में यह कोशिश नहीं की ... मैंने किया: -/(मूल मानव प्रकृति मुझे लगता है?)। यह उम्मीद के रूप में विफल रहा। :)
एक्सेल 2011 के लिए, मैंने कोशिश की। यह काम करता है लेकिन एक पीडीएफ नहीं बनाता है और न ही यह कोई त्रुटि संदेश देता है। मैंने इसे डीबग करने की कोशिश की लेकिन कोई खुशी नहीं।
'~~> Reference set to MS Word Object Library
Option Explicit
Sub Sample()
Dim oWord As Word.Application, oDoc As Word.Document
Application.ScreenUpdating = False
Sheets("Sheet1").Shapes.Range(Array("Object 1")).Select
Selection.Verb Verb:=xlPrimary
Set oWord = GetObject(, "word.application")
For Each oDoc In oWord.Documents
Debug.Print oDoc.FullName & ".pdf"
oDoc.SaveAs Filename:=oDoc.FullName & ".pdf", FileFormat:=wdFormatPDF
oDoc.Close savechanges:=False
Next oDoc
oWord.Quit
Set oworddoc = Nothing
Set oWord = Nothing
Application.ScreenUpdating = True
End Sub
मेरा मानना है कि यह ऐप्पलस्क्रिप्ट का उपयोग करके भी किया जा सकता है। तो मैंने एप्पलस्क्रिप्ट के साथ भी परीक्षण किया। यहां मैं सीधे एक शब्द दस्तावेज़ को पीडीएफ में बदलने की कोशिश कर रहा हूं। यदि मैं यह हिस्सा मिलता है तो मैं अपने कोड में एक छोटा सा चक्कर ले जा सकते हैं :)
Sub tester()
Dim scriptToRun As String
scriptToRun = "set pdfSavePath to " & Chr(34) & "Users:siddharth:Documents:Sid.pdf" & Chr(34) & Chr(13)
scriptToRun = scriptToRun & "set theDocFile to choose file with prompt " & Chr(34) & "Please select a Word document file:" & Chr(34) & Chr(13)
scriptToRun = scriptToRun & "tell application " & Chr(34) & "Microsoft Word" & Chr(34) & Chr(13)
scriptToRun = scriptToRun & "open theDocFile" & Chr(13)
scriptToRun = scriptToRun & "set theActiveDoc to the active document" & Chr(13)
scriptToRun = scriptToRun & "save as theActiveDoc file format format PDF file name pdfSavePath" & Chr(13)
scriptToRun = scriptToRun & "end tell" & Chr(13)
Debug.Print scriptToRun
'Result = MacScript(scriptToRun)
'MsgBox Result
End Sub
हालांकि मैं MacScript(scriptToRun)
पर रनटाइम त्रुटि मिल तो मुझे यकीन है कि मेरी Apple स्क्रिप्ट विफल हो रहा है कर रहा हूँ।
स्नैपशॉट
Apple स्क्रिप्ट त्रुटि
प्रश्न
मैं Excel 2011 में एम्बेडेड शब्द दस्तावेज़ कैसे बचा सकते हैं? मैं वीबीए और एप्पलस्क्रिप्ट के लिए खुला हूं।
+ 1 अच्छी तरह से समझाया गया प्रश्न के लिए। मेरे पास मैक नहीं है लेकिन देखें कि यह लिंक मदद करता है या नहीं? शायद आप पहले स्क्रिप्ट को APPLESCRIPT में आजमा सकते हैं? http://homepage.mac.com/swain/Macinchem/Applescript/AppScript_tut/AppScrip_tut_1/appscript_tut_1.htm –
धन्यवाद प्रदीप। मैंने अपने मैक की जांच की लेकिन एप्लिकेशन फ़ोल्डर में एप्पलस्क्रिप्ट नामक फ़ोल्डर नहीं मिला। शायद मुझे इसे डाउनलोड करने की ज़रूरत है? मुझे सेब स्टोर की जांच करने दो। –
@ प्रदीप कुमार: दिशा के लिए धन्यवाद। वास्तव में मदद की। –