• 締切済み

VBでファイルの判定

 VBでドラッグドロップやcommondialogなどで読み込まれたファイルの拡張子の判定をしたいのですがどうしたらよいかわかりません。  たとえば、テキストファイルが読み込まれるとテキストボックスに表示、ほかのファイルが読み込まれると違う処理をするというようなことをしたいのですがわからないので教えていただきたいです。

みんなの回答

  • Masato_a
  • ベストアンサー率21% (13/60)
回答No.5

VB6ならFSOをつかうと拡張子が取得できます。 拡張子は3文字とは決まってないのでFSOを使えば汎用性があっぷします。 FSOにはほかにも機能がたくさんあるのでぜひ。

  • tom777
  • ベストアンサー率77% (14/18)
回答No.4

VB6でしたら、InStrを使って文字列を検索するよりは InStrRevを使う方が簡単かと思います。 InStrRevはInStrの逆バージョンです。

  • osaosa42
  • ベストアンサー率60% (20/33)
回答No.3

以下の方法でファイル拡張子を取得できます。 ------------------------------------------------ Dim fs As Object Dim strExt As String Dim strPath As String Set fs = CreateObject("Scripting.FileSystemObject")'FileSystemObject作成 strExt=fs.extGetExtensionName(strPath)'ファイル拡張子取得 Debug.Print strPath ------------------------------------------------- つーことで。

  • nakashi
  • ベストアンサー率51% (21/41)
回答No.2

Dim sDest As String Dim sBuf() As String sDest = "C:\temp\abc.efg.txt" sBuf = Split(sDest, ".") Debug.Print sBuf(UBound(sBuf)) VB6なら

  • arata
  • ベストアンサー率49% (139/279)
回答No.1

ファイル名に"."があるかどうかは、Instrを使って調べます。結果が0だったら、拡張子なし。 ですが、ファイル名に"."が2つ以上ある場合、Instrは、最初の"."の位置を拾いますから、要注意です。 と言うわけで、 1.Instrで、"."の位置を調べる 2."."の位置が0なら拡張子なし。0より大きければ3以降の処理を行う 3."."の位置が0になるまで以下を繰り返す ・"."の位置+1を拡張子とする。(Mid関数を使用) ・調べる対象をこの拡張子とした文字列にする こんな感じです。 もっと直感的な方法で、文字を後から調べていく方法もあります。 文字の桁数をLen関数で調べて For i = Len(ファイル名) To 1 Step -1 でまわして、Mid(ファイル名,i,1)が"."だったら、この位置+1が拡張子(Mid(ファイル名,i+1))。あとはExit Forでループを抜ける。 この方が簡単ですね。

関連するQ&A