
いつもお世話になります
DocuWorksの出力ファイルを操作する際、Declare Functionを使うのですが
環境依存文字を使ったファイルのハンドルを取るときなどに、ファイル名がFunctionの中で
化けているようでうまく行きません
(宣言例)
'2.64 XDW_OpenDocumentHandle DocuWorksファイルにアクセスするためのハンドルを得る。この場合だけ、pHandleはByRefで定義
Public Declare PtrSafe Function XDW_OpenDocumentHandle Lib "xdwapi.dll" (ByVal lpszFilePath As String, ByRef pHandle As LongPtr, ByRef pMode As XDW_OPEN_MODE) As LongPtr
Public Type XDW_OPEN_MODE
nSize As Long
nOption As Long
End Type
'2.6 XDW_CloseDocumentHandle DocuWorksファイルにアクセスするためのハンドルを解放する。
Public Declare PtrSafe Function XDW_CloseDocumentHandle Lib "xdwapi.dll" (ByVal handle As LongPtr, ByVal reserved As String) As LongPtr
(使用例)
'...DocuWorksファイルにアクセスするためのハンドルを得る。
XDW_OpenDocumentHandle FileInfo(1), lngHandle, myMode
'...FileInfo(1)のファイル、最終ページにFileInfo(2)以降の図面を挿入する。
XDW_InsertDocument lngHandle, myInfo.nPages + 1, FileInfo(k), vbNullString
ファイル名は変数、FileInfo(k)になります
今は、環境依存文字を見つけて一度、変換して処理して終了後に元戻す方法を考えています
これは、あきらめてファイル名を変更するしかないですか?
何か参考になることが有りましたら教えてください
以上、宜しくお願い申し上げます

- 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
- 今の自分の気分スタンプを選ぼう!
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>今は、環境依存文字を見つけて一度、変換して処理して終了後に...
同じ手間を掛けるなら、もう少しスマート?な方法として、一時的に OS のリンクファイルを作成したファイルを食わせれば上手く行くかもです。
バッチかPowerShellの前処理にて。
タイムスタンプなんかの一時ファイル名で...
参考:
https://ascii.jp/elem/000/004/146/4146389/#eid35 …
No.1
- 回答日時:
こんにちは
回答になっていませんけれど・・・
Functionの機能自体はDLL依存なので、DLL側にそのようなオプションが用意されていない限り正面からでは無理そうですね。
内部でどのように解釈されているかがわかれば、lpszFilePathをそのように変換して渡せばうまく行くかも知れません。
(Fujifilmに問い合わせれば回答を得られるかも知れません)
一方で、DocuWorks本体もUnicodeの扱いは上手くないようです。
https://opencds-fb.fujifilm.com/gen/docuworks_au …
----- 引用 --------
[CSV形式で結果保存]を選択してCSV出力するときに、検索結果のファイルパス中のUnicode文字は「?」で出力されます。
IMEで環境依存文字(Unicode)を入力すると、「?」に変換されることがあります。その場合は、ほかのアプリケーションから文字列をコピーして貼り付けるか、リスト表示に切り替えて名前を入力してください。
--- ここまで ---
とあります。
問い合わせで解決しなければ、あまりこだわらずに、ご提示の方法が宜しそうに思います。
>環境依存文字を見つけて一度、変換して処理して終了後に
>元戻す方法を考えています
多分、パス全体が問題なのでしょうから、安全な固定ディレクトリを作業フォルダとして、そこに必要なファイルを一旦全部コピーし、まとめてファイル名を変更してから処理するのが簡単ではないでしょうか?
上記なら、環境依存文字のチェックをしなくてもすむと思います。
ファイル数が大量だったり、容量が大きいと多少時間がかかる可能性はありますが・・
早々と本当にありがとうございます
多分、無理だろうと思いましたが念のため聞いてみました
本当にいつもご丁寧なご回答ありがとうございます
感謝しています
自分は78歳、長年コンピュータ会社で働いていましたが
70歳で設計会社に転職しました
まだまだやりたいこといっぱいです
これからもよろしくお願いいたします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) vba クリップボードクリアについて教えてください 1 2024/02/26 10:50
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:12
- CAD・DTP Docuworksに代わるソフトを教えてください。 2 2023/10/26 12:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) Excelのマクロについて教えてください。 5 2024/11/14 09:43
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2024/12/18 09:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2024/01/16 16:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】モジュール変数の記...
-
【マクロ】値を渡されたプロシ...
-
Excelのマクロについて教えてく...
-
ダブルクリックで貼り付けた画...
-
Excelのマクロについて教えてく...
-
VBAの質問(Msgboxについて)です
-
Excelのマクロについて教えてく...
-
Vba FileSystemObject オブジェ...
-
Excelのマクロについて教えてく...
-
エクセルVBA 段落番号自動取得方法
-
ExcelのVBAコードについて教え...
-
VBAの「To」という語句について
-
VBA ユーザーフォーム ボタンク...
-
算術演算子「¥」の意味について
-
VBAについてです。 どなたかご...
-
vba Windowオブジェクト(Window...
-
エクセルのVBAコードについて教...
-
Excel(M365) Vlookup/セル反転(...
-
エクセルのVBAコードについて教...
-
VBAでFOR NEXT分を Application...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.net 文字列から日付型へ変更...
-
VBA 最終行の取得がうまくいか...
-
VBAでエクセルのテキストデータ...
-
【ExcelVBA】5万行以上のデー...
-
エクセルVBAで在庫の組み換え処...
-
VBAから書き込んだ条件付き初期...
-
エクセルのVBAコードについて教...
-
VBAでユーザーフォームを指定回...
-
エクセルのVBAについて教えてく...
-
vbaマクロについて
-
ExcelのVBAコードについて教え...
-
【VBA】 結合セルに複数画像と...
-
WindowsのOutlook を VBA から...
-
質問58753 このコードでうまく...
-
ExcelのVBAコードについて教え...
-
Excel VBAについて。こんな動作...
-
[Excel VBA]特定の条件で文字を...
-
[VB.net] ボタン(Flat)のEnable...
-
エクエルのVBAコードについて教...
-
ExcelのVBAコードについて教え...
おすすめ情報