■ GetShortPathName

ファイルの短い形式のパス名 (いわゆる MS-DOS ファイル名 )を取得します
長いパス名の場合、名前の最後の部分が〜(チルダ)+連番で省略されます
長い形式のファイル名に対応していないアプリケーションなどを呼び出す場合に使用することがあります
この関数に頼ることなく、すべてファイル名 (拡張子は除く )は半角8文字以内にしたいところです
ファイル一覧を作成したときに長いファイル名があると納まらない場合が多い...

'------------------------------------------------------------------------------
'  DOSファイル名取得(宣言)
'------------------------------------------------------------------------------
Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" _
        (ByVal lpszLongPath As String, ByVal lpszShortPath As String, _
        ByVal cchBuffer As Long) As Long


Dim w_path            As String * 256   ' パス名
Dim w_ret             As Long           ' 戻り値(パス名のサイズ)

    ' 短い形式のパス名を取得する
    w_ret = GetShortPathName("C:\Program Files\Microsoft Office\Office\" & _
            "Excel.exe", w_path, Len(w_path))