- ベストアンサー
Excel VBAでフォルダを選択するマクロに変更する方法
- Excel VBAを使用して、フォルダを選択するマクロに変更したいです。
- 現在のマクロは、フルパスでフォルダを指定する必要がありますが、より簡単な方法でフォルダを選択できるようにしたいです。
- 具体的な方法について教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
Sub sample() Dim myFile As String, myPath As String, i As Long Dim myObj As Object Application.ScreenUpdating = False Set myObj = CreateObject("Shell.Application").BrowseForFolder(0, "フォルダを選択してください", 0) If myObj Is Nothing Then Exit Sub myPath = IIf(myObj = "デスクトップ", CreateObject("WScript.Shell").SpecialFolders("Desktop"), myObj.Items.Item.Path) myFile = Dir(myPath & "\*.xls", vbNormal) ' 以下おなじため略 End Sub
その他の回答 (4)
- keithin
- ベストアンサー率66% (5278/7941)
ん? sub macro1() dim myPath as string dim myFile as string dim w as worksheet With Application.FileDialog(msoFileDialogFolderPicker) If .Show = True Then application.screenupdating = false mypath = .selecteditems(1) & "\" myfile = dir(mypath & "*.xls") do until myfile = "" workbooks.open filename:=mypath & myfile for each w in activeworkbook.worksheets if application.counta(w.range("B7:B11"))=0 then w.range("B7") = "*" end if next activeworkbook.close savechanges:=true myfile = dir() loop application.screenupdating = true msgbox "Done" End If End With End Sub #他にも幾つか直してます。 丸投げしないとできないなら最初からそう言ってください。
- qualheart
- ベストアンサー率41% (1451/3486)
フォルダ参照を使えば良いと思いますよ。 Dim Shell Set Shell = CreateObject("Shell.Application") Set myPath = Shell.BrowseForFolder(&O0, "フォルダを選んでください", &H1 + &H10, "C:\") キャンセルされた場合など、myPathが空だった場合の処理も必要になります。 If Not myPath Is Nothing Then ~ ご参考まで。
- keithin
- ベストアンサー率66% (5278/7941)
>もっと簡単にフォルダを選択するマクロに変更したい お好きなやり方をどうぞ: http://officetanaka.net/excel/vba/tips/tips39.htm #結果は簡単ですが,マクロはちょっと簡単じゃありませんね。
- kmetu
- ベストアンサー率41% (562/1346)
http://officetanaka.net/excel/vba/file/file02.htm こちらを参考にしてください。
補足
マクロ初心者なので申し訳ないのですが、単純にその行をこれに変更すればよいと いうわけではないですよね? できれば、全体を添削していただけないでしょうか?