セレクトボックスに表示されたファイル名を変数に格納する方法

このQ&Aのポイント
  • セレクトボックスに表示されたファイル名を変数に格納する方法について説明します。
  • フォルダに存在するファイルをセレクトボックスに表示させ、選択されたファイル名を変数に格納する方法を解説します。
  • 指定されたフォルダ内のファイルからセレクトボックスにファイル名を表示し、選択されたファイル名を変数に代入する処理について説明します。
回答を見る
  • ベストアンサー

セレクトボックスに表示されたファイル名を変数に格納する方法

すみません、説明が足りませんでした。 あるフォルダに存在するファイルをセレクトボックスに 1行毎に1ファイル名表示させています。 そのファイル名の中から1つのファイル名を選択し、 実行ボタンを押したタイミングで、選択されたファイル名を Dimで定義した変数に格納したいのです。 私の記述では<option>タグは1つのみで複数のファイル名を 表示させています。 ///////////////////////////////////////////////////////// 現在以下のソースを記述しています。 <% Set objFS = CreateObject("Scripting.FileSystemObject") Set objFolder = objFS.GetFolder("C:\TEMP") For Each objFile In objFolder.Files str = str & objFile.Name & vbCR next %> <SELECT SIZE=20 ID=select1 NAME=select1 STYLE="width:320px" MULTIPLE TABINDEX=70> <% For Each objFile In objFolder.Files %> <option><%= objFile.Name%></option> <% Next %> </SELECT>

  • HTML
  • 回答数1
  • ありがとう数0

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

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

この手の質問をする際は、クライアント側処理なのかサーバ側処理なのかを明確にしたほうが、回答を得られやすいと思います。 >Dimで定義した変数に格納したいのです というのだと、ASPのような気もしますが、クライアント側スクリプトあるいはHTAだとすると、回答が変わってきますので。

関連するQ&A

  • 選択したファイル名を取得する方法について -再度質問します-

    ASPとVBScript、JavaScriptを使用した開発を行っています。 あるフォルダに存在するファイルをセレクトボックスに 1行毎に1ファイル名表示させています。 そのファイル名の中から1つのファイル名を選択し、 実行ボタンを押したタイミングで、選択されたファイル名を Dimで定義した変数に格納したいのです。 当方ASPでの開発は初心者でして、クライアント側、サーバ側の 処理の区別がまだつかない状況で申し訳ないのですが FORMタグなどを使用しているので、サーバ側処理になると思うのですが 教えて頂けると有り難いです。 私の記述では<option>タグは1つのみで複数のファイル名を 表示させています。 ///////////////////////////////////////////////////////// 現在以下のソースを記述しています。 <% Set objFS = CreateObject("Scripting.FileSystemObject") Set objFolder = objFS.GetFolder("C:\TEMP") For Each objFile In objFolder.Files str = str & objFile.Name & vbCR next %> <SELECT SIZE=20 ID=select1 NAME=select1 STYLE="width:320px" MULTIPLE TABINDEX=70> <% For Each objFile In objFolder.Files %> <option><%= objFile.Name%></option> <% Next %> </SELECT>

    • ベストアンサー
    • HTML
  • VBスクリプト:ファイル名をファイルに書く

    VBスクリプトで以下のようなコードを書いているのですが、上手く動いてくれません。あるディレクトリのファイル名をテキストファイルに書き込むという処理を行いたいのですが。。 配列は、ある順番(ファイル名順)のみ書き込むという処理を付け加えたいため必須です。アドバイスを頂けないでしょうか?宜しくお願い致します。 Set objFS = CreateObject("Scripting.FileSystemObject") Set fl = objFS.GetFolder("D:\") i = 0 For Each objFile In fl.Files str(i) = objFile.Name i = i + 1 Next Set objText = objFS.OpenTextFile("D:\filename.txt") For i = 0 To UBound(fl) objText.WriteLine fl(i) Next objText.Close

  • FileSystemObject & For Eachループで・・・

    皆様こんにちは! VBAでプログラムを作っていて不明点があり困っています。 FileSystemObjectを使用してあるフォルダにあるサブフォルダ内のすべての ファイルをコピーしフォルダを削除する処理を作成しています。 Set objFolder = objFs.GetFolder("C:\TEST") For Each objSubFolder In objFolder.subfolders 'TESTフォルダ内にあるサブフォルダ獲得 For Each objFile In objSubFolder.Files 'サブフォルダ内のファイル獲得 ON Error Go To CopyErr objFs.CopyFile(objFile.Path,"コピー先名") 'ファイルコピー処理 ON Error Go To 0 Set objFile = Nothing Next Set objSubFolder = Nothing Next Set objFolder = Nothing objFs.DeleteFolder("C:\TEST") 'TESTフォルダ削除 Set ObjFs = Nothing exit sub CopyErr: Set objFile = Nothing Set objSubFolder = Nothing Set objFolder = Nothing objFs.DeleteFolder("C:\TEST") Set ObjFs = Nothing end sub 上の様な処理でファイルのコピーでエラーが発生し CopyErrへ飛んだ場合、TESTフォルダの削除時に ”書込みできません”とエラーが発生し TESTフォルダが削除できません(その中のサブフォルダは削除されます)。 正常にFor Each文を抜けた場合は問題なく削除するので解せません。 For EachからはGo To,Exit等で抜けるとまずいのでしょうか? 上の様な処理を作成しようと思えば、Dirを使用した方がいいのでしょうか? (Nothingの処理は元々なかったのですが、 この現象が出たため試しにつけてみたものです。) どなたかアドバイスをお願い致します。

  • ファイル名をエクセルにリスト化するマクロの応用

    ファイル名をエクセルにリスト化するマクロの応用 こんにちは。 以下に示しますマクロは フォルダ内の名前や作成日等(サブディレクトリを含む)を エクセルにリスト化するもので 以前同サイト内で教えて頂きました。 現在このマクロでは シート1のAセルにフォルダのパスを入力して実行すると、 シート2にフォルダ内の情報がリスト化されます。 このマクロでは1つのフォルダ内の情報をリスト化することが可能ですが、 今回は更に、 エクセルのA列にフォルダのパスを複数個入力し、 それらのフォルダ内の情報を、それぞれ別シートに 一気にリスト化したいと考えています。 ご存じの方がいらっしゃいましたら よろしくお願いいたします。 プログラミングに関する知識はほとんどありません… 具体的に、どこに何を入力するのかを教えていただけると嬉しいです。 お手数をおかけし、すいません。 ※以下は以前nicotinismさんに回答いただいたマクロを 参考にさせていただいております。 Sub makeFileList()   Call fileList   MsgBox "終了しました" Columns.AutoFit 'すべての列幅を自動調整する End Sub    Function fileList(Optional trgDir As String = "", Optional fCnt As Long = 0)   On Error GoTo err   Dim objFs As Object   Dim objDir As Object   Dim objFile As Object   Dim i As Long      Set objFs = CreateObject("Scripting.FileSystemObject")      If trgDir = "" Then     Set objDir = objFs.Getfolder(Sheets("sheet1").Range("a1"))   Else     Set objDir = objFs.Getfolder(trgDir)   End If      Set objFile = objDir.Files        With Sheets("sheet2")     For Each objFile In objDir.Files         fCnt = fCnt + 1 .Cells(fCnt, 1).Offset(1, 0) = fCnt .Cells(fCnt, 2).Offset(1, 0) = objFile.DateCreated .Cells(fCnt, 3).Offset(1, 0) = objFile.DateLastModified .Cells(fCnt, 4).Offset(1, 0) = objFile.Path .Range("A1").Value = "No" .Range("B1").Value = "作成日" .Range("C1").Value = "更新日" .Range("D1").Value = "ファイル名"     Next objFile          For Each objDir In objDir.SubFolders       If objDir.Attributes <> 22 Then   'システムフォルダ除外                      '--------------サブフォルダの再帰検索             Call fileList(objDir.Path, fCnt)           '--------------サブフォルダの再帰検索                End If     Next objDir   End With      Set objFile = Nothing   Set objDir = Nothing   Set objFs = Nothing Exit Function err:   Select Case err.Number     Case 76 ' path がない       MsgBox "path 指定が間違っています"     Case Else       MsgBox err.Number & vbCrLf & err.Description   End Select      Set objFile = Nothing   Set objDir = Nothing   Set objFs = Nothing End Function

  • VBSのGetFolderメソッドについてですが

    VBSで質問です。環境はXP Proです。 GetFolderメソッドでFolderオブジェクトを取得し、Filesプロパティを For Eachでチェックしている時に、フォルダ内ファイルが削除された場合は、例外処理が起こるのでしょうか? それとも、削除処理自体が排他制御されてしまうのでしょうか? ----------------------------- ' 環境設定 Const strRootPath = "D:\" '監視対象フォルダ Dim objFso,objFolder,objFile,count Set objFso = CreateObject("Scripting.FileSystemObject") Set objFolder = objFso.GetFolder(strRootPath) count = 0 ' メインスクリプトの実行開始 For Each objFile In objFolder.Files     ' このタイミングでファイルが削除されてしまったら? If objFso.GetExtensionName(objFile) = "txt" Then count = count + 1 End If Next 皆様のお知恵をお貸しください。

  • VBSで動画ファイルの時間を読み取る方法

    複数の動画ファイルをD&Dして、ファイル名に更新時間と動画時間(動画ファイルのプロパティのビデオの欄に表示される「長さ」という項目) をファイル名に追加するプログラムを書きたいと考えています。 更新時間を書き込む方法は http://www.vector.co.jp/soft/winnt/util/se501476.html のvbsを参考に作ることができました。 動画時間の読み取りに関しては http://q.hatena.ne.jp/1312251379 に書かれてあるのですが、うまくいきません。 ExtendedPropertyのところで、 オブジェクトでサポートされていないプロパティまたはメソッドです。 というエラーが出て実行することができません。 以下が、作りかけですが、作成したプログラムです。 WScript.Echo "Duration : [" & CStr(objFile.ExtendedProperty2("Duration")) & "]" ' 単位は 100ns のところをどのように書き換えれば良いか教えていただけないでしょうか? Dim stArrayData Dim objParam Set objParam = WScript.Arguments 'D&Dでの読み込みを可能にする Dim objFs Set objFs = WScript.CreateObject("Scripting.FileSystemObject") ' 引数の全ファイルについてファイル名を変更する Dim objFile Dim dtLastModified Dim strLastModified Dim i Const FMTID_AudioSummaryInformation = "{64440490-4C8B-11D1-8B70-080036B11A03}" For i = 0 To objParam.Count - 1 If objFs.FileExists(objParam(i)) Then Set objFile = objFs.GetFile(objParam(i)) ' DateLastModifiedのフォーマットが環境によって違うかもしれないので ' いったんDate型にする dtLastModified = CDate(objFile.DateLastModified) If Hour(dtLastModified) < 10 Then strLastModified = strLastModified & "0" End If strLastModified = strLastModified & Hour(dtLastModified) If Minute(dtLastModified) < 10 Then strLastModified = strLastModified & "0" End If strLastModified = strLastModified & Minute(dtLastModified) ' ファイル名を設定 stArrayData = split(objFile.Name, ".") objFile.Name = stArrayData(0) & "-" & strLastModified & "." & stArrayData(1) WScript.Echo "FileName : [" & objFile.Name & "]" WScript.Echo "Duration : [" & CStr(objFile.ExtendedProperty2("Duration")) & "]" ' 単位は 100ns WScript.Echo "FMTID_AudioSummaryInformation,3 : [" & CStr(objFile.ExtendedProperty(FMTID_AudioSummaryInformation & " 3") ) & "]" ' 単位は 100ns Set objFile = Nothing End If Next Set objFs = Nothing Set objParam = Nothing

  • WSH_フォルダ内の処理について

    昨日から作成しているのですが、 新しく質問を立ち上げます。 下記のように、フォルダ内に格納してあるファイルを 取得できるのですが、フォルダ内で作成日時を見て 最新のファイル以外は削除させたい処理をやりたいです。 ファイル名を明示的に記載し比較はできるのですが、 フォルダ内の中から作成日時の最新のファイルを取得する っていうのができません。 下記ソースはイメージです。 Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder("C:\test") For Each objFile In objFolder.Files If objFile.type = ファイルタイプ Then   上記ファイルタイプで最新の日付のファイルを出力 上記ファイル以外削除 Else  上記ファイルタイプが存在しなければ何も処理を行わないず フォルダ内のファイル一覧を取得 WScript.Echo " " & objFile.Name Wscript.Echo "NG" End If Next 調べているのですが、簡単なソースしか作れません。 お願いします

  • VBS ファイルマージ処理

    特定のDir内、複数ファイルのレコードを全てマージする為、 以下の処理を考えておりますが実現に至っておりません。 Fileがなくなるまで、ループ処理をさせる為、File名 の(1)から(2)へFile名の受け渡し方法が解かりません。 何方か有識者の方、ご教授頂けませんでしょうか もっと賢くマージが出来るので有りますならば、その方法 を教えて頂けませんでしょうか ※Dir内にFileはユニークなFile名にて、複数個作られます。 ※マージに必要なFileだけがDirには作られます。 ※マージするFileの順番は問いません。 (1)C:\temp\temp Dir内のFile名を取得 Set objFso = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder("C:\temp\temp") objFile = objFso.GetAbsolutepathname("temp_ini.txt") Set objOut = objFso.OpenTextFile(objFile, 2, False) For Each objFile In objFolder.Files objFilemei = objFile.Name objOut.Writeline objFilemei next ※File名の受け渡しがわからず、一旦Fileに書き出してます (2)Fileが無くなるまで、File内のレコードを全て読込み、マージファイルを作成(予定) objFile1 = objFso.GetAbsolutepathname("temp_temp.txt") Set objin = objFso.OpenTextFile("temp_ini.txt",1) Do Until objin.atendofstream = True linedata = objin.readline() loop 説明が悪くてすみませんが、よろしくお願い致します。

  • セレクトしたセルをファイル名におこす

    同じフォームの複数のファイルがあり、セレクトしたセルをファイル名におこします。 Const BeforePath = "C:\Documents and Settings\Administrator\デスクトップ\test" Const AfterPath = "C:\Documents and Settings\Administrator\デスクトップ\test\変更後\" Sub FileNameChange() Dim fso Set fso = CreateObject("Scripting.FileSystemObject") Application.ScreenUpdating = False Dim fl For Each fl In fso.GetFolder(BeforePath).Files If InStr(LCase(fl.Name), ".xls") > 0 Then With Workbooks.Open(fl.Path) .SaveAs AfterPath & Range("sheet1!A1") & "-" & Range("sheet1!D5") & ".xls" .Close End With End If Next Application.ScreenUpdating = True End Sub この時、D5のセルに入っているのは、ユーザ定義の日付で設定された日付(2011/2/1)です。 このマクロを実行すると、エラーが出ます。 ユーザ定義の日付は拾えないのでしょうか?

  • csvファイルを読み込む方法について

    aspにてscvファイルを読み込む際、直接ファイル名を指定するとうまくいくのですが、ファイル名を変数で指定しようとすると、「ファイルが見つかりません」というエラーになってしまいます。どのように記述すれば良いでしょうか。お教えください。よろしくお願いいたします。 (例) 'OK Set objFS = CreateObject("Scripting.FileSystemObject") Set objText = objFS.OpenTextFile(Server.MapPath("aaa.csv"),1) 'NG fname = "aaa.csv" Set objFS = CreateObject("Scripting.FileSystemObject") Set objText = objFS.OpenTextFile(Server.MapPath(fname),1) また、 Set objText = objFS.OpenTextFile(Server.MapPath("""" & fname & """"),1) としてもダメでした。以上です。

専門家に質問してみよう