アクティブなファイルのファイル名を取得する
できそうで、できない??
アクティブなファイルのファイル名を取得します。
アクティブっていうのは、今開いているファイル(ブック)のことですね。
Dir関数は、フルパスからファイル名を抜き出す関数です。
前はいちいち、フルパスの右から数えて「¥」が何番目にあるか、っていうのを数えさせ、右から何番目かの「¥」以降をファイル名として取得していたんですΣ(゚д゚lll)
めっちゃ手間かかりました(;・∀・)
この関数前からありましたっけ?
でも簡単にできるようになってヽ(・∀・)ノ ワチョーイ♪
Sub FileRename()
Dim strFullPath As String
Dim Filename As String
'変数にパスを格納します。
strFullPath = ActiveWorkbook.FullName
Filename = Dir(strFullPath)
End Sub

アクティブなファイルのファイル名を取得します。
アクティブっていうのは、今開いているファイル(ブック)のことですね。
Dir関数は、フルパスからファイル名を抜き出す関数です。
前はいちいち、フルパスの右から数えて「¥」が何番目にあるか、っていうのを数えさせ、右から何番目かの「¥」以降をファイル名として取得していたんですΣ(゚д゚lll)
めっちゃ手間かかりました(;・∀・)
この関数前からありましたっけ?
でも簡単にできるようになってヽ(・∀・)ノ ワチョーイ♪
Sub FileRename()
Dim strFullPath As String
Dim Filename As String
'変数にパスを格納します。
strFullPath = ActiveWorkbook.FullName
Filename = Dir(strFullPath)
End Sub

【ファイル名】ファオルダ内にあるファイル一覧を取得する
フォルダの内のファイルの一覧を取得して、エクセルシートに出力するマクロです
Dir(pathname) pathname:ファイル名
Dir関数は、引数に指定したファイルの存在を調べる関数です。
今、仮にドライブCにある、「エクセルファイル」を検索して変数「buf」に一旦代入して
Do Loopでエクセルシートに出力します。
ソースここから
↓↓↓↓↓
Sub sample16()
Dim buf As String, cnt As Long
buf = Dir("C:\*.xls")
Do While buf <> ""
cnt = cnt + 1
Cells(cnt, 1) = buf
buf = Dir()
Loop
End Sub
↑↑↑↑↑
ソースここまで
結果がこんな感じになります

ファイル名はひとつずつ、1行ごとに出力できますよ

Dir(pathname) pathname:ファイル名
Dir関数は、引数に指定したファイルの存在を調べる関数です。
今、仮にドライブCにある、「エクセルファイル」を検索して変数「buf」に一旦代入して
Do Loopでエクセルシートに出力します。
ソースここから
↓↓↓↓↓
Sub sample16()
Dim buf As String, cnt As Long
buf = Dir("C:\*.xls")
Do While buf <> ""
cnt = cnt + 1
Cells(cnt, 1) = buf
buf = Dir()
Loop
End Sub
↑↑↑↑↑
ソースここまで
結果がこんな感じになります


ファイル名はひとつずつ、1行ごとに出力できますよ

【フォルダの選択】ダイアログボックスを開く
エクセルよくやる「フォルダを選択する」をマクロでやってみましょう
Windowsアプリケーションで見かける[フォルダの選択]ダイアログボックスを表示するには、
Windows Scripting Host(WHS)のBrowserForFolderメソッドを利用します。
ソースここから
↓↓↓↓↓
Sub Select_Filelist()
Dim WHS As Object, myPath As Object,f As Variant
Set WSH = CreateObject("Shell.Application")
Set myPath = WSH.BrowseForFolder(0, "フォルダを選んでください", 0, "C:\")
If Not myPath Is Nothing Then
MsgBox myPath.items.Item.Path
f = myPath.items.Item.Path
End If
Set WSH = Nothing
Set myPath = Nothing
End Sub
↑↑↑↑↑
ここまで
ソースを実行するとこんな画面が出ます。

その後、メッセージボックスで選択したフォルダ名を表示しますよ。
せっかくフォルダ名を取得したので
f = myPath.items.Item.Path
で変数「f」に取得したフォルダ名を代入します

Windowsアプリケーションで見かける[フォルダの選択]ダイアログボックスを表示するには、
Windows Scripting Host(WHS)のBrowserForFolderメソッドを利用します。
ソースここから
↓↓↓↓↓
Sub Select_Filelist()
Dim WHS As Object, myPath As Object,f As Variant
Set WSH = CreateObject("Shell.Application")
Set myPath = WSH.BrowseForFolder(0, "フォルダを選んでください", 0, "C:\")
If Not myPath Is Nothing Then
MsgBox myPath.items.Item.Path
f = myPath.items.Item.Path
End If
Set WSH = Nothing
Set myPath = Nothing
End Sub
↑↑↑↑↑
ここまで
ソースを実行するとこんな画面が出ます。

その後、メッセージボックスで選択したフォルダ名を表示しますよ。
せっかくフォルダ名を取得したので
f = myPath.items.Item.Path
で変数「f」に取得したフォルダ名を代入します

