前提・実現したいこと
エクセルで指定するフォルダのフルパスを取得したいと考えております。
現在Excelを利用しておりますが、2013でもできるようなコードをご存知の方教えていただきたいです。
■■な機能を実装中に以下のエラーメッセージが発生しました。
_("画像 ファイル (*.jpg), *.jpg")の部分でエラーがでます。
使用しているコード
https://tech.nikkeibp.co.jp/it/pc/article/NPC/20071122/287854/?P=2を拝見いたしまして、
Sub JpegSearch()
Dim i As Long
Dim myFldName As String
On Error Resume Next
myFldName = Application.GetOpenFilename
_("画像 ファイル (*.jpg), .jpg")
myFldName = Left(myFldName, InStrRev(myFldName, ""))
With Application.FileSearch
.NewSearch
.LookIn = myFldName
.Filename = ".jpg"
If .Execute(msoSortByFileName) > 0 Then
For i = 1 To .FoundFiles.Count
Cells(i, 1).Value = .FoundFiles(i)
Next
End If
End With
End Sub
をしておりましたが、うまくいかず
Sub GetFileList03(Search_Path)
Dim objFs As Object, objFiles As Object, objFolders As Object
Dim File_Path As String, File_Name As String
Dim i As Long, arrData
'処理が遅くなるのでプログラム実行中の画面描画を停止する
Application.ScreenUpdating = False
Set objFs = CreateObject("Scripting.FileSystemObject")
'パスの取得
For Each objFolders In objFs.GetFolder(Search_Path).SubFolders
'サブフォルダまで検索するために再帰実行
GetFileList03 objFolders.Path
Next
'ファイル名の取得 For Each objFiles In objFs.GetFolder(Search_Path).Files '\マークを区切り文字として各文字列を配列に代入 arrData = Split(objFiles.Path, "\") 'セルに配列の各値を書き込む For i = 0 To UBound(arrData) ActiveCell.Offset(0, i).Value = arrData(i) Next i Debug.Print Worksheets(Worksheets.Count).Name ActiveCell.Offset(1, 0).Select Next
End Sub
を御教授頂きましたが、実は、指定するシートにボタン一つで出力できるようにしたいと考えておりますが、うまくいきません。
また、マクロ名を登録したいのですが、Sub 名前()というのは利用できず困惑しております。
恐れ入りますが、再度ご教授いただければ幸いです。何卒よろしくお願い申し上げます。
補足情報(FW/ツールのバージョンなど)
Excel 2016/2013
回答3件
あなたの回答
tips
プレビュー