アプリ版:「スタンプのみでお礼する」機能のリリースについて

docuworksの仕様書に書いてある内容で
実際にvbaのコードをどう書けばいいかわからないので教えてほしいです。
(出力先ファイルパスは例として何でもいいです。)
以下仕様書を抜粋します。

8.5 アプリケーションから印刷によりDocuWorks文書を作成する方法について
DocuWorks APIを使わずに、アプリケーションからプリンタドライバをDocuWorks Printerに指定して印
刷を行うことにより、DocuWorks文書を生成することができる。このとき生成されるDocuWorks文書の
場所は、通常の動作では、そのときに開かれているDocuWorks Deskのフォルダ上となる。
Windowsディレクトリにあるwin.iniファイルで、DocuWorks Printerが作成するDocuWorks文書のパス
名を指定できる。指定方法は、[DocuWorks Printer] セクションの OUTPUT_FILE エントリーにフルパ
ス名で指定する。このエントリーが存在しないか、エントリーの値が空文字列の場合は、通常の動作と
なる。DocuWorks Printerは、このエントリーを参照したあと、エントリーの値を空文字列に設定する。す
なわち、この指定は一回の印刷ジョブのみ有効となる。




DocuWorks Printerが作成するDocuWorks文書のパス名を指定する場合は、以下のレジストリに値をフルパス名で指定することを推奨する。

レジストリキー
HKEY_CURRENT_USER\SOFTWARE\FujiXerox\MPM3\Driver
レジストリ名
値の名前 種類 内容
OutputPath REG_SZ DocuWorks Printerが作成するDocuWorks文書のフルパス 名を指定する。

このレジストリキーが存在しないか、レジストリ名の値が空文字列の場合は、通常の動作となる。

DocuWorks Printerは、このレジストリを参照したあと、値を空文字列に設定する。すなわち、この指定
は一回の印刷ジョブのみ有効となる。指定したディレクトリがない場合は生成に失敗する。また、win.ini
の[DocuWorks Printer] セクションの OUTPUT_FILE エントリーにフルパス名が指定されている場合は
その指定が優先される。

以上わかる方、よろしくお願いします。

質問者からの補足コメント

  • HAPPY

    できました!素晴らしい!
    ドキュの出力先指定は 調べる人が多いと思うので以下にコード載せます。

    (end-uさんに教えていただいた http://addinbox.sakura.ne.jp/Excel_Tips16.htm よりソースコードをいただいてきてから)

    Dim X, DAY As String, TITLE As String

    DAY = "FAX必要 " & Format(Now, "MM,DD,HH") & "時 発行分"
    TITLE = "(出力先フルパス)" & DAY & ".xdw"
    X = ktINI_ReWrite("C:\Windows\win.ini", "DocuWorks Printer", "OUTPUT_FILE", TITLE)
    ActiveSheet.PrintOut ActivePrinter:=printerName

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/01/27 14:08

A 回答 (1件)

DocuWorks APIを使う手法としては


『ExcelVBAで出力先(Path)指定でDocuWorks印刷する方法を教えてください。』
http://www.gizcollabo.jp/vbtomo/boards/vbqanda.p …
『【VBA】DocuworksAPIによるアプリケーションファイルを DocuWorks 文書に変換するマクロについて』
http://www.excel.studio-kazu.jp/kw/2019031423522 …
などの情報があるようです


でも質問文の主旨からすると、
docuworksの仕様書に
『Windowsディレクトリにあるwin.iniファイルで、DocuWorks Printerが作成するDocuWorks文書のパス名を指定できる。
指定方法は、[DocuWorks Printer] セクションの OUTPUT_FILE エントリーにフルパス名で指定する。』
とあり、
『win.iniファイルを書き換えればできる』はずなので、そのコードが知りたい、
という事でいいんでしょうかね
(レジストリは弄んないほうがいいよね)


手っ取り早いのは
『Tips16: INI ファイル操作関数』
http://addinbox.sakura.ne.jp/Excel_Tips16.htm
このktINI_ReWrite関数を利用させてもらえばいいんじゃないでしょうか


ただC:\Windows\win.iniの書換えはExcel自体を『管理者として実行』しておかないといけないみたいです
簡単なのはWindowsスタートメニューからExcel起動する時に、Excelメニューにフォーカスして[Shift]+[Ctrl]+[Enter]で起動
または[Shift]+[Ctrl]押しながらExcelメニューを右クリックして『管理者として実行』


C:\Windows\win.iniの書換えができる事は確認できますけど、
その後仕様書通り動作するかは環境がないので未確認。
この回答への補足あり
    • good
    • 1
この回答へのお礼

ありがとう

ありがとうございます!
いいサイト教えてもらいました。
ktINI_ReWrite (C:\Windows\win.ini,DocuWorks Printer, OUTPUT_FILE ,指定ファイルフルパス )
でコードの使い方は合ってますか?
週明けに動作確認してみます!

お礼日時:2020/01/25 06:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A