- ベストアンサー
エクセル 一つ上の階層の別フォルダのファイル名
フォルダ「1」の中にあるエクセルファイル「A」を開いています この状態でフォルダ「2」の中にあるエクセルファイルの全ファイル名を取得したい のでご教示願います フォルダ「2」はフォルダ「1」と同じ階層にあります フォルダ「1」 ------ フォルダ「2」 l l l l エクセルファイル「A」 エクセルファイル「*」, エクセルファイル「**」…ファイル数は不確定
- sadacchi12
- お礼率67% (35/52)
- オフィス系ソフト
- 回答数4
- ありがとう数1
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
本質問は処理をプログラムでやる場合でしょう。 ・Dir関数や ・FSOのGetfolder、Files が使われる。 Sub test43() Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") Set objfolder = FSO.GetFolder("C:\Documents and Settings\XXXX\My Documents").Files For Each fl In objfolder MsgBox fl.Name Next Set FSO = Nothing End Sub しかしどちらも人間が調べてC:\Documents・・・ に当たるPathを調べて書き込めば済むことではないですか。 初心者らしいが、凝ったことを考えすぎではないか。 「親と同階層のフォルダの別フォルダ」の子にあるかどうかも、全部プログラムで作成管理している場合は別だが、そうでないと、そこにあるかどうか保証の限りではない場合が多いわけだし。実際にあるフォルダやファイルの状態を相手にプログラムを 実行するわけだから。 ーー Sub test43() Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") ''C:\Workフォルダ内に保存されているファイルの個数を表示します Set objfolder = FSO.GetFolder("C:\Documents and Settings\XXXX\My Documents").Files MsgBox FSO.GetFolder("C:\Documents and Settings\XXXX\My Documents").ParentFolder End Sub のようにして、上位フォルダー名は判る。(C:\Documents and Settings\XXXX) それ+(兄弟フォルダのフォルダ名)+ファイル名でいとこのファイルが指定できるのでは。 ーー 別件だが 私が連想したものに、シートでも Sub Sample2() MsgBox "1つ左は" & ActiveSheet.Previous.Name MsgBox "1つ右は" & ActiveSheet.Next.Name End Sub は実際では、使える場面が少ない。
その他の回答 (3)
- keithin
- ベストアンサー率66% (5278/7940)
ん? フォルダ名「1」と「2」が共に既知なら,ぐだぐだやらなくても話ははるかに簡単で済んでしまいますね。 sub macro2() dim myPath as string mypath = application.substitute(thisworkbook.path, "\1","\2") ’ファイルを取得する myFile = Dir(myPath & "\*.xls*") Do Until myFile = "" i = i + 1 Cells(i, 1) = myFile myFile = Dir() Loop End Sub #Dir関数のヘルプの使用例の,そのまんまです。
- nayuta_lot
- ベストアンサー率64% (133/205)
こんにちは こちらにファイルの一覧を取得するVBAが掲載されてますので参考にしてみては いかがでしょうか? ↓↓↓ http://officetanaka.net/excel/vba/file/file07.htm パスの指定をフォルダ2で行うのをお忘れなく・・ それでは
- keithin
- ベストアンサー率66% (5278/7940)
フォルダ1と2は必ず2個しか無く必ず2個あるとすると。 Sub macro1() Dim myPath As String Dim myFile As String Dim ThisFolder As String Dim check1 As Boolean Dim i ’自分フォルダを調べる myPath = ThisWorkbook.Path i = InStrRev(myPath, "\") ThisFolder = Mid(myPath, i + 1, 99) myPath = Left(myPath, i) ’フォルダを取得する myFile = Dir(myPath, vbDirectory) Do Until myFile = "" If myFile <> "." And myFile <> ".." And myFile <> ThisFolder Then If (GetAttr(myPath & myFile) And vbDirectory) = vbDirectory Then myPath = myPath & myFile & "\" check1 = True Exit Do End If End If myFile = Dir() Loop If Not check1 Then MsgBox "no folder" Exit Sub End If ’ファイルを取得する i = 1 myFile = Dir(myPath & "*.xls*") Do Until myFile = "" Cells(i, 1) = myFile i = i + 1 myFile = Dir() Loop End Sub #ファイルやフォルダを調べる方法は幾つかありますが,ご相談で明記されていないご利用のエクセルのバージョンによって,使える方法と使えない方法があるので注意してください。 今後ご相談投稿時には,ご利用のソフトの名称はモチロンのことバージョンもしっかり記載してください。 #それとは別に,上記のマクロはExcel2000以降で利用できます。
関連するQ&A
- 沢山のフォルダにあるファイルを上の階層に出すには?
現在あるフォルダ(仮にAとしておきます)の中に沢山のフォルダが存在しています。そしてその中の一つづつにファイルが存在しています。このファイルを全て上の階層(つまりフォルダA)の中に移し変えて、残った空のフォルダを全て消すのに手っ取り早い方法を教えて下さい。 最初は一つづつやってみようと思ったんですが、時間がかかりすぎてミスが多いので断念いたしました。Vector等でそれらしいファイルを探してもみたのですがよくわかりませんでした。 よろしくお願いいたします。
- ベストアンサー
- Windows NT・2000
- ExcelのVBAでの複数階層からのフォルダ名の取得
ExcelのVBAでの複数階層からのフォルダ名の取得 下記階層に対して以下の処理をExcelのVBAで行うにはどしたら良いか、 申し訳ありませんが、どうか教えて頂きたく思います。 C:\test1 ├\aaa\ddd │ ├\xxx1\ │ └\yyy2\ │ ├\bbb\ddd │ └\xxx3\ │ │ └\ccc\ddd ├\xxx4\ ├\xxx5\ └\zzz6\ 1 C:\test1を指定する 2 1で指定した中にある各\dddフォルダ内にあるフォルダ名を順に取得する 3 2で取得したフォルダ名をExcelのSheet1のA1から順に書き出す Excel A B C D E 1 xxx1 2 yyy2 3 xxx3 4 xxx4 5 xxx5 6 zzz6 7 8 9 Sheet1 Sheet2 Sheet3 勉強不足で申し訳ありません。 どうぞ宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- フォルダ内のファイル名を取得する
windows 7なのですが、フォルダ内にあるファイル名をテキストとしてすべて一括で取得する方法はないでしょうか? また、フォルダの中にさらに複数のフォルダがあっても、上の階層のフォルダからすべてファイル名を取得する方法はないでしょうか? よろしくお願いいたします。
- ベストアンサー
- Windows 7
- エクセル2007VBAでフォルダ名とファイル名を
取得したいのです。 あるフォルダ内にマクロのファイルと、複数のサブフォルダ及びその中の複数ファイルがあり 添付画像の通り、サブフォルダ名とファイル名、拡張子を取得したいのです。 どのようにすれば良いでしょうか、、ご教示下さい。
- ベストアンサー
- オフィス系ソフト
- エクセルのマクロでフォルダ数を取得したい
ご存知の方教えてください。 以下ようなフォルダ階層があります。 ----------------------- rootフォルダ │ ----------------- 第一階層フォルダ │ │ │ --------------- 第二階層フォルダ │ │ │ --------------- 第二階層フォルダ │ │ │ --------------- 第二階層フォルダ │ ----------------- 第一階層フォルダ │ │ │ --------------- 第二階層フォルダ │ │ │ --------------- 第二階層フォルダ │ │ │ --------------- 第二階層フォルダ │ │ │ --------------- 第二階層フォルダ │ │ やりたい事ですが、エクセルのマクロで 第一階層と第二階層のフォルダ数を取得する。 (階層のフォルダ数は取得する毎変わり、固定されていません。) 第一階層のフォルダにはファイルはないです。 第二階層のフォルダにはファイルが存在します。 rootフォルダにダミーファイルを設置しそこから FileSystemObjectでフォルダパスを取得する事はできたました。 パスが分かればフォルダ数が分かるかと思い色々と調べていましたが フォルダ数を取得する事ができませんでした。 初心者なりに書籍、ネットで調べてみたのですがどうしても 分かりませんでした。 どのようにしたらいいか教えていただけないでしょうか。 よろしくお願いします。 OS : XP EXCEL : 2003
- ベストアンサー
- Visual Basic
- フォルダを指定し、複数のエクセルファイルの情報を別ファイルに保存したい。
エクセルのマクロで以下の実装を行いたいと思っています。 -------------------------------------------------------------- 1.あるフォルダを指定 2.そのフォルダの中に入っているエクセルファイルの特定列複数行(行数不明、データがなくなるまで)の情報を抜き出す 3.2で抜き出した情報を別ファイル(テキスト形式)に保存 -------------------------------------------------------------- ・2で指定するフォルダには複数ファイルがあります ・3で保存するファイル名は2で開いたファイル名と同じ名称にしたい(拡張子は別) フォルダの状態は以下のようになっています。 editor.xls ←マクロを組みたいエクセルファイル L folderA L A1.xls L A2.xls L A3.xls : L folderB L B1.xls L B2.xls L B3.xls : L forlerTextfile L A1.txt ←作りたいファイル L A2.txt 〃 L A3.txt L B1.txt L B2.txt L B3.txt : 分かりづらくて申し訳ありませんが、どなたかご教授いただけないでしょうか。 宜しくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセルでフォルダとファイルを作りたい
お世話になります。 エクセル2007で質問です。 下記のような表をエクセルで作り、A列の名称でフォルダを作り、 そのフォルダの中にすべて同じファイル名のテキストファイルを作り、 その内容をB列の文字としたいのですが、マクロなどでの作成方法を教えてくだい。 A列 B列 a1 ああああああ a2 いいいい a5 かかかかか いままで使っていたマクロはテキストのファイル名がすべてバラバラだった ので同じフォルダ内に書き出していましたが、変更があり同じファイル名で内容が 違うデータが必要となってしまいましたので、違う名称のフォルダの中に、 同じ名称のテキストデータを格納したいと思っています。 テキストデータの名称は何でもいいです。 作成するデータの数は決まっていなく、最大で1000くらいあります。 ぜひ、ご教授お願いします。
- ベストアンサー
- その他MS Office製品
- フォルダ 1つ上の階層にいくアイコンがない
ドキュメントを開いて、フォルダを選択して、階層の中へ中へ入って行って、1つ上の階層に上がろうと思ったとき、上がるアイコンがありません。 XPの時は、フォルダの絵に緑の上向き矢印が有ったのですが‥‥。 大変重宝していたのですが、表示することは出来ますか? 左にツリーが出ているのですが、会社のPCの為、フォルダ名も似ているので、階層が分かりにくいのです。
- ベストアンサー
- Windows Vista
- フォルダ階層作成ソフトについて
Excelで指定フォルダの全ファイル・全サブフォルダの階層表示リストを作りたいのですがフォルダ階層のみ表示されて中にあるファイルすべて表示してくれないなどの問題があります、お勧めのものがありますでしょうか? 環境としてはwindowsXPです。
- ベストアンサー
- フリーウェア・フリーソフト
- VBA(エクセル)でアクティブファイル名の取得できますか?
エクセルでVBAを使用して、自分自身のファイル名を取得できますか?そんなコマンドありますか? (Aと云うエクセルファイルにVBAを仕込み、自分自身がAというエクセルファイル名であることを、認識(取得)させることが出来るでしょうか) かなり素人ですので宜しく教示願います。
- ベストアンサー
- オフィス系ソフト
お礼
’自分フォルダを調べる myPath = ThisWorkbook.Path i = InStrRev(myPath, "\") ThisFolder = Mid(myPath, i + 1, 99) myPath = Left(myPath, i) これが決め手でした myPathがわかればこの後ろにフォルダ「2」を入れて 中にあるファイルをDo While で検索できますね ありがとうございました