
いつもお世話になります
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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・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も見ています
-
算術演算子「¥」の意味について
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
以下のプログラムの実行結果はどうなると思いますか? その理由も教えてください。
Visual Basic(VBA)
-
8
Vba FileSystemObject オブジェクトに使って拡張子、BaseNameを取り出す
Visual Basic(VBA)
-
9
【マクロ】値を渡されたプロシージャから実行すると、渡したプロシージャを選択される?
Visual Basic(VBA)
-
10
【マクロ】変数を使った、文字の種類の変更にて、エラーとなる。
Visual Basic(VBA)
-
11
AccessのクエリをSQL文に変換するには
Access(アクセス)
-
12
【マクロ】【相談】Excelブックとマクロを早く動くようにする為には?
Excel(エクセル)
-
13
Vba セルの4辺について罫線が有るかどうか調べたいのですが
Visual Basic(VBA)
-
14
VBA 入力箇所指定方法
Visual Basic(VBA)
-
15
考えた式の戻り値が期待通りにならない
Excel(エクセル)
-
16
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
17
Vba エラーコード2147xxxxxxについて教えてください
Visual Basic(VBA)
-
18
VB.net 文字列から日付型へ変更したい
Visual Basic(VBA)
-
19
VBA 最終行の取得がうまくいかず上書きされてしまいます。
Visual Basic(VBA)
-
20
ユーザーマクロ作成
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでユーザーフォームを指定回...
-
【ExcelVBA】5万行以上のデー...
-
VBAでCOPYを繰り返すと、処理が...
-
【VBA】 結合セルに複数画像と...
-
【マクロ】シートの変数へ入れ...
-
Excel VBA 選択範囲の罫線色の...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
vbsでのwebフォームへの入力制限?
-
エクセルのマクロについて教え...
-
Excelのマクロについて教えてく...
-
Vba Array関数について教えてく...
-
Vba セルの4辺について罫線が有...
-
改行文字「vbCrLf」とは
-
ダブルクリックで貼り付けた画...
-
【マクロ】並び替えの範囲が、...
-
【マクロ】開いているブックの...
-
エクセルの改行について
-
エクセルのVBAコードと数式につ...
-
算術演算子「¥」の意味について
-
Excelのマクロについて教えてく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba セルの4辺について罫線が有...
-
vbsでのwebフォームへの入力制限?
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
【マクロ】並び替えの範囲が、...
-
エクセルの改行について
-
エクセルのマクロについて教え...
-
vb.net(vs2022)のtextboxのデザ...
-
VBAでCOPYを繰り返すと、処理が...
-
VBA ユーザーフォーム ボタンク...
-
エクセルのVBAコードと数式につ...
-
エクセルのVBAコードについて教...
-
[VB.net] ボタン(Flat)のEnable...
-
【マクロ】変数を使った、文字...
-
改行文字「vbCrLf」とは
-
質問58753 このコードでうまく...
-
【マクロ】シートの変数へ入れ...
-
ワードの図形にマクロを登録で...
-
算術演算子「¥」の意味について
おすすめ情報