[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Docuworks Printerで印刷時ブック名を変更したい』(Docuworks Printer)
お世話になっております
Docuworks PrinterでExcelのブックを印刷(Docworksへ出力?)すると
Docworks上に表示される名前がブックの名前になってしまいます
任意の名前を付けたいと思い、いろいろ調べてみましたがギブアップです
申し訳ありませんが、助けてください
名無しさんの提案している1の方法がやりたいことです
https://www.excel.studio-kazu.jp/kw/20181225152707.html
Docuworks Printerの設定は下記URLを参考に削除しないにしてあります
https://opencds-fb.fujifilm.com/gen/docuworks_aux/v9/help/jpn/desk/deskdf017-4.html
色々なサイトを見て考えたマクロは下記になります
Sub DocuWorksPrinter()
Dim SaveName As String
Dim desktop As String
Dim i As Long
Dim FileName As String
SaveName = Sheet1.Range("B2").Value
desktop = CreateObject("wscript.shell").specialfolders("desktop") & "\Local"
FileName = desktop & "\" & "DocWP:" & SaveName & ".xlsm"
Do While Dir(FileName) <> ""
i = i + 1
FileName = desktop & "\" & "DocWP:" & SaveName & Format(i, "(0)") & ".xlsm"
Loop
ThisWorkbook.SaveCopyAs FileName:=FileName
End Sub
< 使用 Excel:Excel2019、使用 OS:Windows10 >
自分も初めて使ったのですが、リンク先の「3.DocuWorksAPIを使用する方法」でしたら、 うまく動作しているようなので、提案できます。 但し、質問者さんの環境が以下であることが条件です。 又、自分が使っているDocuWorksはVer7.1と古いので、バージョンの違いによってAPIが動作しないかもしれない 懸念は、あります。
(1)DocuWorks Development Tool Kitがインストールされていること。 これは、正規ユーザなら、富士フイルムのホームページからダウンロードできます。 https://www.fujifilm.com/fb/support/software/docuworks_9/info/contents/info_013.html
(まる2021) 2023/12/27(水) 01:11:20
DocuWorks9.1を使用中です
正規ユーザーですが、上長の方針でDocuWorks Development Tool Kitは使わない方針のようです
名無しさんの1番目の提案を実現できるようにSaveAsをもう少し勉強します
ありがとうございました
(Docuworks Printer) 2023/12/27(水) 16:04:57
返信、どうもです。了解しました。
>名無しさんの1番目の提案を実現できるようにSaveAsをもう少し勉強します これに沿ったものを考えてみました。要所にコメントを入れてるので、それを読んで下さい。
Sub Sample() Call WorkbookToDocuWorks(ThisWorkbook, Sheets("Sheet1").Range("A1").Value) End Sub
'第1引数:Workbookオブジェクト '第2引数:保存ファイルのBaseName 「C:\xxx\yyy\abc.xdw」なら「abc」を指定 '★部分をDocuWorks仮想プリンタの出力先に変更してください。 Private Sub WorkbookToDocuWorks(wb As Workbook, xdwBaseName$) Const xdwFolderName$ = "C:\DocuWorksData\DWFolders\ユーザーフォルダ" '★ご自身の環境に合わせて変更 Dim FSO As Object Dim orgFullPath$, tmpFolder$, tmpFullPath$, xdwFullPath$, tmpBaseName$, i& '未保存ブックは処理しない If InStr(wb.FullName, "\") = 0 Then _ MsgBox wb.FullName & vbCrLf & "未保存ブックです。障害に備えて先に保存して下さい!", vbCritical: Exit Sub orgFullPath = wb.FullName 'オリジナルのパスを変数に退避 Set FSO = CreateObject("Scripting.FileSystemObject") '保存先に同名がある場合は末尾にインクリメント xdwFullPath = FSO.BuildPath(xdwFolderName, xdwBaseName & ".xdw") Do While FSO.FileExists(xdwFullPath) i = i + 1 tmpBaseName = xdwBaseName & Format(i, "(0)") xdwFullPath = FSO.BuildPath(xdwFolderName, tmpBaseName & ".xdw") Loop xdwBaseName = FSO.GetBaseName(xdwFullPath) '一時フォルダ作成 tmpFolder = FSO.CreateFolder(FSO.GetSpecialFolder(2) & "\" & FSO.GetBaseName(FSO.GetTempName)).Path tmpFullPath = FSO.BuildPath(tmpFolder, xdwBaseName & "." & FSO.GetExtensionName(orgFullPath)) Application.DisplayAlerts = False On Error GoTo ErrProc wb.Save '障害に備えて、現在までの内容を保存 wb.SaveAs tmpFullPath '一時フォルダにSaveAs wb.PrintOut ActivePrinter:="DocuWorks Printer" '印刷 wb.SaveAs orgFullPath 'オリジナルのパスに復帰 If FSO.FolderExists(tmpFolder) Then FSO.DeleteFolder tmpFolder '一時フォルダ削除 Exit Sub ErrProc: MsgBox Err.Description, vbCritical End Sub
(まる2021) 2023/12/27(水) 20:57:47
私では到底考えられない、素晴らしいコードありがとうございます
分解してしっかり学習したいと思います
休暇中は自分の頭でマクロ考えて、あがいてみます
良い年末をお過ごし下さい
ありがとうございました
(Docuworks Printer) 2023/12/28(木) 09:42:39
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.