• ベストアンサー

[VB6]指定されたファイルまでのパスを取得

Microsoft VisualBasic 6.0(SP6)を使用しています。 例えばテキストボックスに、ユーザが任意のファイル名を入力します。 そこで入力されたファイルまでのパスを取得して、 変数「test」に代入しFunctionに引き渡すというような処理をしたく思っています。 実際にこのような処理は可能でしょうか? なにか良い知恵があればご教授お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • hawkwind
  • ベストアンサー率34% (160/469)
回答No.2

以前コーディングしたものを貼り付けておきます。 InstrRevとかを使ってもいいのですが、下記の注釈にあるように 特殊な状況に対応するには1文字ずつ判別した方が都合がよいです。 Function GetFName(Pathname As String) As String Dim sx As Integer Dim ch As String   GetFName = "": sx = Len(Pathname)     '¥がないとき、及びpath="" のときはそのまま抜ける   While (sx > 0)     ch = Mid(Pathname, sx, 1)     If ch = "\" Then       GetFName = LCase(Right(Pathname, Len(Pathname) - sx))       Exit Function     End If     sx = sx - 1   Wend End Function

plastic_days
質問者

お礼

詳しい解説ありがとうございます。 Whileを使って一字ずつの判断をするとは考えなかったです。 まだまだ精進すべきですね; 勉強になります。

その他の回答 (2)

  • hawkwind
  • ベストアンサー率34% (160/469)
回答No.3

#2です 下のコードはフルパスからファイル名を求める処理です。 また、コードの方は投稿で半角スペースが無効になってしまうため、 全角スペースを使っています。 適宜変更をして下さい。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

InStrRevで最後の"\"の位置を調べて、LEFTで切り出す。

plastic_days
質問者

お礼

ありがとうございます。確かに一発で引き出せました。 この件があるまでInStrRev関数なんてよく知りませんでした; 勉強になります。

関連するQ&A

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

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

  • VBでこんなことできますか?

    お世話になります。 (1)FSO(FileSystemObject)を使用し、 ユーザーに任意でファイル(もしくはフォルダ)を選択して頂きます。(2つのボタンの内、一つはファイル選択用、もう一つはフォルダ選択用ボタンになっている) (2)選択されたフルパスが、テキストボックスに入ります。 ここまでは出来たのですが、この後、テキストのパスから ユーザーがファイルを選択したのか、フォルダを選択したのかを判断する事はできますか? つまり、 「C:\aaa\bbb\c.txt」がテキストボックスに入っていたら[ファイルが選択されたときの処理]へ、 「C:\aaa\bbb\ccc」なら[フォルダが選択されたときの処理]へ 飛びたいのですが、この判断ができません。なにか良い方法はないでしょうか? どなたかご教授願います。

  • パスの取得

    現在開発しているものをおおまかに説明すると, formには,ButtonとMemo1,Memo2があり,Memo1に 文字列を入力しボタンを押すとMemo2に結果が 表示されます。 ボタンを押した時の処理の内容についてですが, Memo1に入力したものをテキストファイルに渡し, ボタンを押して標準入出力のリダイレクトを行います。 そして,結果の入った別のテキストファイルからMemo2へ 表示します。 そこでMemo2に表示された結果をテキストファイルとして MainMenuで保存するようにしたのですが,保存した後, 続けてボタンを押して処理を行おうとすると, パスが保存した場所になり,正しく実行できません。 うまくいかない現象を具体的に… 保存した後に,もう一度処理を行おうとしたとき, Memo1に入力したものが入るテキストファイルが 保存したところのフォルダに作られます。そして, ボタンを押すと,結果が入っているテキストファイルが 開けませんというエラーが出ます。 標準入出力のリダイレクトを行う際,作られる テキストファイルは作成しているアプリケーション と同じフォルダにできるようにしたいので, AnsiString Path = ExtractFilePath( Application->ExeName) + "test.txt"; ↑これで,パスを取得しているのですがうまくいきません。 どうすればよいでしょうか? 分かる方がいましたら,教えて頂けませんか? こんな下手な説明ですみませんが 参考になるサイトでもなんでも結構なので, よろしくお願いしますm(__)m

  • ファイル選択ダイアログからファイルのフルパスを取得したい

    Visual Basic 2008について質問があります。 フォームにテキストボックスを配置し、そのテキストボックスに ファイル選択ダイアログで選択したファイルのパスを表示させたいのですが どのようにパスを取得し表示させるのでしょうか? 初歩的な質問で申し訳ありませんがどうぞよろしくお願いします。

  • EXCELのVBAについて

    エクセルのVBAでユーザーフォームに作ったテキストボックスに入力した値を、コマンドボタンによる「実行」とともに別に作った標準モジュールの変数として代入するにはどうすれば良いでしょうか? 具体的な流れは、 マクロ実行  ↓ ユーザーフォーム出現  ↓ テキストボックスに数字を代入→「実行」  ↓ 変数を代入された標準モジュールによる処理完了 というものです。 ご教授お待ちしております。

  • VB6.0で現在参照しているエクセルファイルの絶対パスを取得したい

    VB6.0で現在参照しているエクセルファイルの絶対パスを取得したい 環境:VB6.0/Excel2003/WindowsXP VB初心者です。 現在プログラム内で参照しているexcelファイルの絶対パスと、フォームのテキストボックスに入力された絶対パスを比較して、 それらが同一だった場合エラーを表示するというプログラムを作成しています。 プログラム内では、現在開かれているエクセルファイルの内容をチェックして、対象となるデータを持っているエクセルファイルを1つ選択し、データを取り込むという動きをしています。 現在開かれているファイルのパスと入力されたパスを比較する事は出来たのですが、 そうではなくデータを取り込んでいるエクセルファイルのみ比較したいのです。 (複数のファイルが開かれている場合、データを取り込んでいるファイルとは別のファイルのパスが入力されたファイルパスと同一だったときもエラーとなってしまうので..) データを取得しているところからはフルパスは取れそうにないので、ほかの方法を模索しています。 どうぞ宜しくお願い致します。

  • VB2008で曜日を取得する方法

    VB2008初心者ですがよろしいでしょうか 曜日の取得方法について教えて下さい ユーザーフォーム上の テキストボックスに、任意の生年月日を 入力し、ボタンをクリックした時に、生年月日 の曜日を取得したいのですが、可能でしょうか WeekdayName関数を使えばできるような感じですが 使い方が分かりません よろしくお願いします 1.テキストボックスに   2009-08-13   と入力しボタンをクリックする 2.メッセージボックスに   曜日を表示する

  • VB.netで表示中のExcelファイルのパスの取得

    お世話になります。 現在VB.net(2005)を使い、任意のExcelファイルを表示するプログラムを作成済みです。 プログラムを実行後、いったん閉じ、再度プログラムを実行した際に前回開いたExcelファイルにデータを上書きするというプログラムを組みたいので、Excelファイルが開かれた段階で現在のパスをテキストファイルに書き込んでおき、そのテキストファイルを使いExcelファイルの指定を行おうとしているのですが、関数等を検索しているのですがなかなか思うような情報がないのでここで質問させていただいております。 Excelファイルのパスをテキストファイルに記述しておくという方法以外にも、「最近使ったファイルによる操作」という方法を考えたのですがVBAの情報しか見つけることができず・・・ どなたかお力添えをお願いいたします。

  • テキストボックスに入力された値を取得する方法

    よろしくお願いします。 フォームにテキストボックスを配置し、ユーザーに文字を入力してもらいます。 OKボタンを押すと、その文字を取得できるようにしたいです。 VBだと・・・ Textbox1.value = a (aは変数) みたいな感じで変数に代入するだけでよかったと思うんですが・・・ どのように書いたら良いでしょうか?

    • ベストアンサー
    • Java
  • VBで指定テキストファイルの読込

    タイトル通り、指定したパス先のテキストファイルを読み込みたいのですが、 OpenFileDialogで開くやり方しかわかりません。 ボタンを押すと読み込んでテキストボックスに表示させる方法を教えて頂きたいです。

専門家に質問してみよう