Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(指定なし : Excel 2021)
ファイル名に含まれる認識できない文字コードを置換したい
投稿日時: 25/07/09 19:11:07
投稿者: mieharu

PDFファイルのファイル名にShift-JISの文字コードで
表記できない文字0x80が含まれるため
PDFのプレビューが出来ない
 
EXCELのVBAを使用して
フォルダ内のPDFファイルの一覧を取得して
Replace関数やワークシート関数Substituteを使用して表示できない文字を削除したいが
置換対象の文字列がShift-JISの場合の指定方法や検索方法を教えてください

回答
投稿日時: 25/07/10 11:15:07
投稿者: Suzu

引用:
フォルダ内のPDFファイルの一覧を取得して
Replace関数やワークシート関数Substituteを使用して表示できない文字を削除したいが
置換対象の文字列がShift-JISの場合の指定方法や検索方法を教えてください

 
=SUBSTITUTE(A1,CHAR(128),"")
等で良いでしょう。
 
 
 
0x80 の文字 との事ですが、そのファイルは どんな OSで作成されたのでしょうか?
 
0x80 は 制御文字であり Windowsの場合、単体では、ファイル名に使用できません。
あるとすれば、0x80 文字コードの一部として持つ様な特殊文字をファイル名に指定したのでしょうか?
 
再現できないので、確認のしようもありませんが、
エクスプローラー上からそのファイル名を修正する事は出来ますか?
 
できないのであれば、
本来想定していない 0x80 を含むファイル名を VBAのオブジェクトから操作するのは
難しいかもしれません。
そんな場合は元の OS システム側でファイル名を変える方法を探った方が早いと思います。

回答
投稿日時: 25/07/10 12:23:52
投稿者: sk

引用:
Shift-JISの文字コードで表記できない文字0x80

Windows-1252 におけるユーロ記号(€)。
 
引用:
PDFのプレビューが出来ない

その文字は Windows におけるファイル命名規則において使用できないわけではなく、
また Adobe Acrobat ではその文字が含まれている PDF ファイルも開くことができるのですが、
PDF ファイルのプレビューを行なっているアプリケーションは何なのでしょうか。
 
引用:
EXCELのVBAを使用

引用:
表示できない文字を削除したい

引用:
置換対象の文字列がShift-JISの場合の指定方法や検索方法

その文字だけを狙い撃ちしたいのであれば Chr(128) の戻り値を
空文字列に置換なさればよろしいでしょう。
 
-----------------------------------------------------------------
 
NewFileName = Replace(OldFileName, Chr(128), "")
 
-----------------------------------------------------------------
 
引用:
Excel 2021

また、「印刷できない文字」をまとめて削除したいのであれば、
ワークシート関数の CLEAN でも一応可能でしょう。
 
-----------------------------------------------------------------
 
NewFileName = WorksheetFunction.Clean(OldFileName)
 
-----------------------------------------------------------------

トピックに返信