Windows 7の右クリックコンテキストメニューにいくつかのオプションを追加できる方法を探しています。プログラミングの経験はあまりありませんが、非常に熱心で学びたいと思っています。
具体的には、Word文書を右クリックして、変換するか、.PDFファイルとして保存できるようにしたいと思います。既存のドキュメントをPDF形式に変換できるようにしたい。ドキュメントは99%の確率でMicrosoft Wordドキュメントになるので、それを自動化する方法があれば、ガイダンスをいただければ幸いです。 。
「PDFプリンター」をダウンロードするなど、他の方法があることは承知していますが、できればその方法は避けたいと思います。また、可能であれば、ユーザーのPCにインストールするソフトウェアをさらにダウンロードすることは避けたいと思います。
うまくいけば、私はそれほど要求が厳しくありませんが、あなたが提供できるどんな助けやガイダンスにも本当に感謝しています。
(ボーナスとして、[名前を付けて保存] PDFおよび可能であれば添付ファイルとして送信する]オプションも取得できるかどうかを確認したいと思います。)
この質問を忘れてしまったことをお詫びしますが、少なくとも私はついに質問に答えていますよね?
思い通りにこれを達成する方法が見つからなかったので、少し回避策を講じました。 2つの別々の.ahk( AutoHotkey )スクリプトを作成してコンパイルし、それらを右クリックのコンテキストメニューに追加しました。
スクリプトは次のとおりです。
; AutoHotkey Script by Cyborg v1.5
; This script is designed to be compiled and ran in the user's Send To Right-Click Menu.
; The user needs to right click a Word document go into the send to menu and choose this
; script. After launching the script the selected file will open in its version of Word
; and open the menus to save it as a PDF. In this version the user is unable to rename the
; the file.
; NOTE: In order for this to work correctly with Office 2007 you MUST have already installed
; the PDF/XPS converter from Microsoft.
SetTitleMatchMode 2
Loop %0%
{
Path := %A_Index%
Run,% Path
}
IfWinExist, Microsoft Word
WinActivate
sleep 1000
Word2007:
IfExist, C:\Program Files (x86)\Microsoft Office\Office12\WINWORD.EXE ; Microsoft Word 2007
{
Send ^s
Send !f
Send f
Send p
Sleep 500
Send {Enter}
Sleep 500
WinClose, Microsoft Word
}
else
{
Goto, Word2010
}
return
Word2010:
IfExist, C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE ; Microsoft Word 2010
{
Send ^s
Send !f
Send d
Send p
Send a
Sleep 500
Send {Enter}
Sleep 500
WinClose, Microsoft Word
}
else
{
Goto, Word2013
}
return
; AutoHotkey Script by Cyborg v1.5
; This script is designed to be compiled and ran in the user's Send To Right-Click Menu.
; The user needs to right click a Word document go into the send to menu and choose this
; script. After launching the script the selected file will open in its version of Excel
; and open the menus to save it as a PDF. In this version the user is unable to rename the
; the file.
; NOTE: In order for this to work correctly with Office 2007 you MUST have already installed
; the PDF/XPS converter from Microsoft.
SetTitleMatchMode 2
Loop %0%
{
Path := %A_Index%
Run,% Path
}
IfWinExist, Microsoft Excel
WinActivate
sleep 1500
Excel2007:
IfExist, C:\Program Files (x86)\Microsoft Office\Office12\Excel.EXE ; Microsoft Excel 2007
{
Send ^s
Send !f
Send f
Send p
Sleep 700
Send {Enter}
Sleep 700
WinClose, Microsoft Excel
}
else
{
Goto, Excel2010
}
return
Excel2010:
IfExist, C:\Program Files (x86)\Microsoft Office\Office14\Excel.EXE ; Microsoft Excel 2010
{
Send ^s
Send !f
Send d
Send p
Send a
Sleep 500
Send {Enter}
Sleep 500
WinClose, Microsoft Excel
}
else
{
Goto, Excel2013
}
return
Excel2013:
MsgBox, Excel 2013 Not Configured for this Script.
return
これらのスクリプトを作成して.exeにコンパイルしたら、 HowToGeekによるこのガイドに従って によってSendToに配置しました。
各スクリプトを各ファイルタイプに適用することもできるかもしれませんが、私はそれを調べませんでした。
これがWord2013のソリューションです。これには、Visual BasicマクロをWordに追加するだけで、いくつかのレコードをレジストリに追加するだけです。
Word 2013でグローバルマクロを作成します。Wordで任意のドキュメントを開き、組み込みのVisual Basicエディター(Alt + F11)を開き、左側のパネルでNormalを選択し、メインメニューにを挿入し、次にModuleを挿入して、コードをエディターにコピーします。
Sub ExportToPDFext()
ChangeFileOpenDirectory ThisDocument.Path
ActiveDocument.ExportAsFixedFormat _
OutputFileName:=Left(ActiveDocument.FullName, InStrRev(ActiveDocument.FullName, ".")) + "pdf", _
ExportFormat:=wdExportFormatPDF, _
OpenAfterExport:=False, _
OptimizeFor:=wdExportOptimizeForPrint, _
Range:=wdExportAllDocument, _
From:=1, _
To:=1, _
Item:=wdExportDocumentContent, _
IncludeDocProps:=True, _
KeepIRM:=True, _
CreateBookmarks:=wdExportCreateNoBookmarks, _
DocStructureTags:=True, _
BitmapMissingFonts:=True, _
UseISO19005_1:=False
Application.Quit SaveChanges:=wdDoNotSaveChanges
End Sub
モジュールを保存し(Ctrl + S)、VisualBasicエディターとWordを閉じます。
次に、コンテキストメニューオプションをレジストリに追加します。拡張子が.reg
のファイルを作成して実行します。
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Word.Document.8\Shell\SavePDFhere]
@="Save PDF here"
[HKEY_CLASSES_ROOT\Word.Document.8\Shell\SavePDFhere\command]
@="\"C:\\Program Files\\Microsoft Office\\Office15\\WINWORD.EXE\" /mExportToPDFext /q \"%1\""
[HKEY_CLASSES_ROOT\Word.Document.12\Shell\SavePDFhere]
@="Save PDF here"
[HKEY_CLASSES_ROOT\Word.Document.12\Shell\SavePDFhere\command]
@="\"C:\\Program Files\\Microsoft Office\\Office15\\WINWORD.EXE\" /mExportToPDFext /q \"%1\""
「保存PDFここに」」を右クリックすると、エクスプローラーでDOCおよびDOCXファイルが表示されます。
サイレントに動作し、選択した複数のドキュメントのバッチ変換をサポートします。
PDFCreatorをその COMモジュール と一緒にダウンロードしてインストールします。 COMモジュールは重要です。そうでない場合、次のVBscriptはPDFプリンターと通信できません
このコードをコピーしてテキストファイルに貼り付け、Convert2PDF.vbs
として保存します
Set fso = CreateObject("Scripting.FileSystemObject")
Set PDFCreator = Wscript.CreateObject("PDFCreator.clsPDFCreator", "PDFCreator_")
With PDFCreator
ReadyState = 0
.cStart "/NoProcessingAtStartup"
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveFormat") = 0
.cOption("AutosaveStartStandardProgram") = 0
DefaultPrinter = .cDefaultprinter
.cDefaultprinter = "PDFCreator"
.cClearcache
.cPrinterStop = false
.cOption("AutosaveDirectory") = fso.GetParentFolderName(WScript.Arguments(0))
.cOption("AutosaveFilename") = fso.GetBaseName(WScript.Arguments(0))
.cPrintfile cStr(WScript.Arguments(0))
c = 0
Do While (ReadyState = 0) and (c < 120)
c = c + 1
Wscript.Sleep 250
Loop
.cDefaultprinter = DefaultPrinter
.cClearcache
WScript.Sleep 200
.cClose
End With
Public Sub PDFCreator_eReady()
ReadyState = 1
End Sub
より高速にアクセスできるように、VBscriptへのショートカットをShell:sendtoフォルダーに配置します
(または)
出力ファイル名を完全に制御したい場合は、コマンドラインからVBScriptを実行します。
これを使用してください このために少し変更されたコード 。
C:\Convert2PDF.vbs "C:\inputfile.doc" "C:\outputfolder" "outputfilename"