• 締切済み

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

  • VBでファイル読み込み

    VBであるところにあるCSVファイルのデータを読み込みエクセルへ変換出力したいのですが教えてください。コモンダイアログボックス(?)と言うものを使って作成したいのです。よろしくお願いします。 がんばってやってみたのですがわかりません。教えてください。 Private Sub Command1_Click() Dim gnum(25), tensuu(32, 99) Dim sougouten(99), heikin(99), gouhi$(99) 'ファイルを開く On Error GoTo ErrHandler 'コモンダイアログボックス CommonDialog1.CancelError = True CommonDialog1.Filter = "すべてのファイル (*.*)|*.*|" _ & "テキスト ファイル (*.txt)|*.txt|バッチ ファイル (*.bat)|*.bat" CommonDialog1.FilterIndex = 2 CommonDialog1.ShowOpen With CommonDialog1 .FileName = "" .ShowOpen End With Exit Sub ErrHandler: ' ユーザーが [キャンセル] ボタンをクリックしました。 End Sub

  • VB6でのドラッグ&ドロップについてです

    VB6でのことなんですが、リネームツールを作ろうと思って色々やってるのですが、うまくいきません。 フォルダをドラッグ&ドロップをして、 text1にフォルダの中のファイル名を表示して、text2にファイル名をコピーしてリネーム、というようなものを作りたいと考えています。 フォルダをドラッグ&ドロップして表示されるのが、そのフォルダのフルパスになってしまいます。 ドラッグ&ドロップしたフォルダの中のファイル名だけを表示する方法はどうすればいいのでしょうか? よろしくお願いします。

  • VB バイナリファイル判定

    掲題通りです。 VBを用いて任意のファイルの対し、処理を行う際、 そのファイルがバイナリかアスキーか判定したいです。 何か効率のよい方法はないでしょうか。

  • Access ファイルかフォルダの判定

    お世話になります。 Access2010 フォーム上にActiveXのProgressBarコントロールを設置し、 そこにドラッグ&ドロップされた画像を、フォーム上のイメージ コントロールに表示するようにしました。 また、複数ファイルをドラッグ&ドロップされた場合は、エラーメッセージ を表示するようにしてます。 ここまでは問題ありません。 ただ、フォルダごとドラッグ&ドロップされた際にも、エラーメッセージを 表示させたいのですが、やり方がわかりません。 ドロップ&ドロップされたファイル、もしくはフォルダのパスは取得して いるので、そのパスからフォルダか否か判定することは可能でしょうか。 ご教示の程、宜しくお願い致します。

  • 「送る」メニューからファイルを開く時・・・

    VBのリッチテキストボックスを使ってテキストエディタのようなものを作っているのですが、これを「送る」メニューから開いた時にファイルの内容を表示させるにはどのようにすればよいのでしょう? また、このアプリケーションを起動した後にリッチテキストボックスにファイルをドラッグするとアイコンが貼り付いてしまうのですが、そうではなくてテキストを表示させるにはどのようにすればよいのでしょう? よろしくお願いします。

  • ドラッグしたファイルのパスを取得したい

    Windows2000(sp3) VisualBasic6.0(sp5) で開発しています。 テキストボックス付きのあるアプリケーションを作成し、そのアプリのテキストボックス上へ、エクスプローラーからファイルをドラッグ&ドロップすると、そのファイルのフルパスを表示する。 ということをしたいと考えています。 例 コマンドプロンプトに、エクスプローラーからファイルをドラッグ&ドロップすると、そのファイルのパス付きの名称が表示される。 良い方法をご存知の方いらっしゃいましたら教えてください。 よろしくお願いします。

  • ファイルの保存を行いたい

    Visual Basic 2010で、メールソフトで添付ファイルの保存・削除と同じような動きをするテキストボックス?を作りたいと考えてますがコードが思いつきません。 どなたか教えて頂けないでしょうか? 動作として (1)テキストボックスにドラッグ&ドロップで選択されたファイルを表示。 この時、テキストボックスに表示されているファイルを右クリックで表示から削除も行いたい (2)実行ボタンを押下で、テキストボックスに表示されているファイルを 日付(年月日と時刻)のファイル名でフォルダーを新規作成して保存したい。 宜しくお願いします。

  • [VB2008]テキストボックスにファイルをD&Dできるようにしたい

    テキストボックスにファイルをD&Dして ドロップされたファイルのフルパスをテキストボックスに表示するにはどうすればいいでしょうか。 初心者なので実際のソースを見せていただけると助かります。 ご回答お願いします。

  • VB.NETでの韓国語のファイル入出力

    VB.NETでテキストボックスから入力した韓国語をテキストファイルに保存し,再度ファイルを読み込んで,フォーム上に表示するプログラムを作成しています。 テキストボックスに韓国語で入力するところまではできました。さらに同じフォーム上にあるテキストボックスやリストボックスにSTRING変数を介して表示させることもできます。 ただ,テキストファイルに書き出すと『???』が表示されてうまく書き出すことができません。ハングルをテキストファイルへ読み書きできるようにする方法がわかる方がいたら,ぜひご教授ください。 よろしくお願いします。 環境 Win2000 英語版 VB.NET FileOpen(),LineInput関数を使用中

  • VB2008

    昨日からVB2008の勉強を始めたため、初心者です。 レベルの低い質問かもしれませんがお願いします。 練習も兼ね、自分で管理しているネットショップの顧客名簿を作ろうと思っています。 そこで質問です。 あるフォルダの中にあるテキストボックスの拡張子を除いたファイル名だけをcomboboxに表示させるにはどのような記載をすれば良いでしょうか? たとえばテストフォルダの中にaaa.text/bbb.text/ccc.textと言うファイルがあって、comboboxの一覧には aaa bbb ccc と言う風に表示をさせたいのです。 comboboxで指定したファイル名に連動してテキストファイル内の 名前・住所・電話番号 などをテキストボックスに表示したいと思っています。 この方法も合わせて教えていただきたいと思います。 よろしくお願いいたします。