
いつもお世話になります
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)になります
今は、環境依存文字を見つけて一度、変換して処理して終了後に元戻す方法を考えています
これは、あきらめてファイル名を変更するしかないですか?
何か参考になることが有りましたら教えてください
以上、宜しくお願い申し上げます
No.1ベストアンサー
- 回答日時:
こんにちは
回答になっていませんけれど・・・
Functionの機能自体はDLL依存なので、DLL側にそのようなオプションが用意されていない限り正面からでは無理そうですね。
内部でどのように解釈されているかがわかれば、lpszFilePathをそのように変換して渡せばうまく行くかも知れません。
(Fujifilmに問い合わせれば回答を得られるかも知れません)
一方で、DocuWorks本体もUnicodeの扱いは上手くないようです。
https://opencds-fb.fujifilm.com/gen/docuworks_au …
----- 引用 --------
[CSV形式で結果保存]を選択してCSV出力するときに、検索結果のファイルパス中のUnicode文字は「?」で出力されます。
IMEで環境依存文字(Unicode)を入力すると、「?」に変換されることがあります。その場合は、ほかのアプリケーションから文字列をコピーして貼り付けるか、リスト表示に切り替えて名前を入力してください。
--- ここまで ---
とあります。
問い合わせで解決しなければ、あまりこだわらずに、ご提示の方法が宜しそうに思います。
>環境依存文字を見つけて一度、変換して処理して終了後に
>元戻す方法を考えています
多分、パス全体が問題なのでしょうから、安全な固定ディレクトリを作業フォルダとして、そこに必要なファイルを一旦全部コピーし、まとめてファイル名を変更してから処理するのが簡単ではないでしょうか?
上記なら、環境依存文字のチェックをしなくてもすむと思います。
ファイル数が大量だったり、容量が大きいと多少時間がかかる可能性はありますが・・
早々と本当にありがとうございます
多分、無理だろうと思いましたが念のため聞いてみました
本当にいつもご丁寧なご回答ありがとうございます
感謝しています
自分は78歳、長年コンピュータ会社で働いていましたが
70歳で設計会社に転職しました
まだまだやりたいこといっぱいです
これからもよろしくお願いいたします
No.2
- 回答日時:
>今は、環境依存文字を見つけて一度、変換して処理して終了後に...
同じ手間を掛けるなら、もう少しスマート?な方法として、一時的に OS のリンクファイルを作成したファイルを食わせれば上手く行くかもです。
バッチかPowerShellの前処理にて。
タイムスタンプなんかの一時ファイル名で...
参考:
https://ascii.jp/elem/000/004/146/4146389/#eid35 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
算術演算子「¥」の意味について
Visual Basic(VBA)
-
VBAでFOR NEXT分を Application.OnTimeを使って
Visual Basic(VBA)
-
ダブルクリックで貼り付けた画像からリンクのみ削除し、画像を残したい。
Visual Basic(VBA)
-
-
4
【ExcelVBA】dictionaryの重複判断の基準(セル結合だと違う値として認識される)
Visual Basic(VBA)
-
5
質問58753 このコードでうまく動作しません。どうしたら良いですか Private Sub Wor
Visual Basic(VBA)
-
6
VBAの「To」という語句について
Visual Basic(VBA)
-
7
Vba FileSystemObject オブジェクトに使って拡張子、BaseNameを取り出す
Visual Basic(VBA)
-
8
以下のプログラムの実行結果はどうなると思いますか? その理由も教えてください。
Visual Basic(VBA)
-
9
AccessのクエリをSQL文に変換するには
Access(アクセス)
-
10
【マクロ】値を渡されたプロシージャから実行すると、渡したプロシージャを選択される?
Visual Basic(VBA)
-
11
【マクロ】変数を使った、文字の種類の変更にて、エラーとなる。
Visual Basic(VBA)
-
12
【マクロ】【相談】Excelブックとマクロを早く動くようにする為には?
Excel(エクセル)
-
13
【マクロ】変数に入れるコードを少しでも短くする為には?
Excel(エクセル)
-
14
Vba セルの4辺について罫線が有るかどうか調べたいのですが
Visual Basic(VBA)
-
15
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
16
Vba エラーコード2147xxxxxxについて教えてください
Visual Basic(VBA)
-
17
VB.net 文字列から日付型へ変更したい
Visual Basic(VBA)
-
18
VBA 最終行の取得がうまくいかず上書きされてしまいます。
Visual Basic(VBA)
-
19
ユーザーマクロ作成
Excel(エクセル)
-
20
vbaマクロについて
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のExcelファイルをマージす...
-
VBAでCOPYを繰り返すと、処理が...
-
【ExcelVBA】5万行以上のデー...
-
エクセルの改行について
-
【マクロ】並び替えの範囲が、...
-
【ExcelVBA】値を変更しながら...
-
Vba FileSystemObject オブジェ...
-
VBA ユーザーフォーム ボタンク...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
Vba セルの4辺について罫線が有...
-
[Excel VBA]特定の条件で文字を...
-
エクセルVBAのブックを開く方法...
-
Excel VBA 選択範囲の罫線色の...
-
vbsでのwebフォームへの入力制限?
-
【マクロ】変数を使った、文字...
-
改行文字「vbCrLf」とは
-
ダブルクリックで貼り付けた画...
-
VBAの「To」という語句について
-
算術演算子「¥」の意味について
-
Excel マクロについて詳しい方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba Array関数について教えてく...
-
VBAでCOPYを繰り返すと、処理が...
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】シートの変数へ入れ...
-
vbsでのwebフォームへの入力制限?
-
エクセルのマクロについて教え...
-
【マクロ】並び替えの範囲が、...
-
Vba セルの4辺について罫線が有...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
VBAでユーザーフォームを指定回...
-
【マクロ】開いているブックの...
-
エクセルの改行について
-
vb.net(vs2022)のtextboxのデザ...
-
エクセルのVBAコードと数式につ...
-
算術演算子「¥」の意味について
-
Excelのマクロについて教えてく...
-
改行文字「vbCrLf」とは
-
ワードの図形にマクロを登録で...
-
VBAの「To」という語句について
-
【マクロ】変数を使った、文字...
おすすめ情報