No.3
- 回答日時:
こんにちは。
maruru01です。tnakさんの回答の間違いを。
多分単なるタイプミスだと思いますが、
GetShortPathName "Z:\My Document\audio.wav", ShortName, 512
を、以下のようにします。
GetShortPathName "Z:\My Document\audio.wav", FileName, 512
あと、第3引数の文字列長は、
Len(FileName)
とした方がいいかも知れません。(変数宣言での文字列長の指定値を変えた時にいちいち変えなくても済みますから。)
ちなみに、戻り値をつけるなら()がいると思います。
lRet = GetShortPathName ("Z:\My Document\audio.wav", ShortName, 512)
横から口を出してすみません。
では。
No.2
- 回答日時:
えーと、このまま使っても実在するファイル名がなければ正しい答えを返し
てくれません。GetShortPathNameでは結果的にディスクに記録された8+3
形式のファイル名を吐き出してくれるだけですから実在しないと何も返しませ
ん。
"Z:\My Document\audio.wav"
を実在するファイル名に変えてください。
No.1ベストアンサー
- 回答日時:
GetShortPathNameというAPIを使用します。
VBAではAPIを使用する前に定義を書く必要があります。定義は次の通りです。
Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" ( _
ByVal LongPath As String, _
ByVal ShortPath As String, _
ByVal ShortPathSize As Long) As Long
以下はサンプルです。
Dim FileName As String * 512
GetShortPathName "Z:\My Document\audio.wav", ShortName, 512
MsgBox Left(FileName, InStr(FileName, vbNullChar) - 1)
この回答への補足
宣言からしますと、
Dim FileName As String * 512
Dim ShortName As String
Dim lRet As Long
lRet = GetShortPathName "Z:\My Document\audio.wav", ShortName, 512
で使い方合ってますか?
lRet = 0
ShortName ="" で戻ってきちゃうんですよ。
MSのHPで検索してもC言語の「GetShortPathName」しかでないし
困ってしまってます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) Excel ファイルを指定し、指定されたファイル内にシートを統合するVBA 8 2023/07/10 10:09
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- Excel(エクセル) 【VBA】フォルダAにある2つのファイルの内1つを、フォルダBへ。もう1つを、フォルダBへ移動したい 6 2022/07/26 08:51
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- XML エクセルのマクロについて教えてください。 3 2023/02/06 09:06
- Visual Basic(VBA) Excel VBA ファイル取得について フォルダの中に、ファイル名“会議“を含むファイルが1つまた 9 2022/10/12 01:18
- Excel(エクセル) フォルダAから1つのファイルだけを、フォルダBへを移動するVBAについて 2 2022/07/25 11:45
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) VBAで特定の場所にあるCSVファイル(複数)から特定場所を抜き出してExcelに転記したいです。 11 2023/05/23 16:29
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでパワーシェルを実行したい...
-
バッチファイル 二つ上のディ...
-
エクセルvbaでdocuworksprinter...
-
SaveAsの保存先について
-
【VB.NET】App.configにファイ...
-
エクセルVBAで一つ上の階層...
-
EXCEL(VBA)で指定フォルダ内の...
-
AccessからExcel最小化
-
VB2005 でパス名が誤っていない...
-
Excel 相対パス
-
パスワード保護されたExcelファ...
-
VBAでテキストファイル中の文字...
-
Excel VBAでテキストファイルを...
-
CreateProcess error=0
-
ListViewにSETしたファイル...
-
指定したフォルダ内の最新ファ...
-
VBAで、VBのapp.pathと同じ機能...
-
ExcelのVBAで上書き保存を確...
-
iniファイルのパス取得m_pszPro...
-
FolderBrowserDialogについて-2
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイル 二つ上のディ...
-
エクセルvbaでdocuworksprinter...
-
エクセルVBAで一つ上の階層...
-
Excel 相対パス
-
【VB.NET】App.configにファイ...
-
xcopyコマンドの進行状況を表示...
-
【VBA】ExcelマクロでCSVファイ...
-
EXCEL(VBA)で指定フォルダ内の...
-
エクセルのマクロで特定フォル...
-
パスワード保護されたExcelファ...
-
ExcelVBAの使い方 ¥の使い方...
-
開いているファイルを削除し、...
-
SaveAsの保存先について
-
初心者powershellのPS1ファイル...
-
fopenでのパス指定
-
VBA★PDFをPDFアプリで印刷し...
-
【Excel VBA】Power Qurry のソ...
-
指定したフォルダ内の最新ファ...
-
A列に記載されているフォルダ...
-
ExcelのVBAで上書き保存を確...
おすすめ情報