- ベストアンサー
エクセルで指定フォルダ内の増加ファイルの一覧を作る
HohoPapaの回答
- HohoPapa
- ベストアンサー率65% (454/692)
#3に追記します。 もし、PDFファイルの作成日時が特定日以降のものに絞るという条件でよければ 後記のようなコードで行けます。 Option Explicit '以下を参照設定 'Microsoft Scripting Runtime Const BaseDir = "\\127.0.0.1\NetDrv" '親フォルダー名 Dim FileCount As Long Sub sample() ' 出力先シートをクリアー With ThisWorkbook.Sheets("Sheet1") '出力先シート .Cells.ClearContents End With FileCount = 0 getFilesRecursive (BaseDir) End Sub Sub getFilesRecursive(path As String) Dim FSO As FileSystemObject: Set FSO = New FileSystemObject Dim objFolder As folder Dim objFile As file 'フォルダーを個々に取得 For Each objFolder In FSO.GetFolder(path).SubFolders getFilesRecursive objFolder.path Next 'ファイルを個々に取得 For Each objFile In FSO.GetFolder(path).Files If UCase(FSO.GetExtensionName(objFile.path)) = "PDF" Then execute objFile End If Next End Sub '取得したファイルをリストアップ Sub execute(f As file) Dim FNameParts As Variant Dim PartsCount As Long Dim i As Long '作成日時が2022年12月31日以前のファイルは無視する If f.DateCreated < DateSerial(2023, 1, 1) Then Exit Sub FileCount = FileCount + 1 FNameParts = Split(Mid(f.path, Len(BaseDir) + 2, 256), "\") PartsCount = UBound(FNameParts) With ThisWorkbook.Sheets("Sheet1") '出力先シート For i = 0 To PartsCount .Cells(FileCount, i + 1).NumberFormatLocal = "@" .Cells(FileCount, i + 1).Value = FNameParts(i) Next i End With End Sub
関連するQ&A
- エクセルvba. PDF保存 フォルダ内の順番
エクセルVBAでPDFを作成すると、保存されたフォルダ内での順番が マクロ実行順から変わってしまいます。 Sheet1 顧客情報 Sheet2 請求書 Sheet1のA列の顧客名順でSheet2に差し込み保存した請求書PDFを フォルダ内でもA列の順番にする方法を教えてください。 よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- excel vbaで今開いたばかりのファイルのパスを取得したい
お世話になっております excelで「今開いたシート名までのパス」を取りたいのですが、方法がわかりません 現在 For FileNo = 1 To .FoundFiles.Count(あるフォルダの中にある) *************** For intNum = 1 To intSC(ファイルの中のシートを端から開いて作業する) *************** というようにfor nextであるファイルのあるシートを指定して作業するようになっています いったん、別のファイルを選択してからまたこの開いたシートに戻る必要があるため、この直前に開いたシートのパスが必要なのです 「ThisWorkbook.Path」などではコードが書いてあるファイルのパスになってしまいます どうか教えていただけると大変助かります 宜しくお願いします
- ベストアンサー
- その他(プログラミング・開発)
- Excel VBA でサブフォルダ含むファイル名取得
勉強不足で申し訳ないですが、以下の処理をExcel VBAでやるにはどうしたらいいでしょうか? 仮に「C:\aaa」をルートフォルダとします。そのルートフォルダ下には「2008年」「2009年」など年の名前を付けたフォルダだけがあり、他に余計なファイル等はありません。そして、その「2008年」など年の名前のフォルダに、雑多なファイルが入っています。大雑把に図にすると、次のような感じです。 C:\aaa ├2008年 │ ├a1.pdf │ └a2.pdf │ └2009年 ├b5.pdf └b6.pdf そして、添付の図のように、A列には「2008年」などサブフォルダ名が、B列には「a1」などファイル名が出力されるようにしたいのです。なお、 (1)B列のファイル名の拡張子は、消えれば最高ですが、別に消えなくてもいいです。 (2)B列のファイル名をクリックするとファイルが開けるハイパーリンクがあると、嬉しいです。別になくてもいいです。
- ベストアンサー
- オフィス系ソフト
- 複数フォルダ内のファイル群をひとつに纏める
Excel2003のVBA で、以下の作業を行いたいので宜しくご教示下さい。 サーバー上や自分のPC上にある、任意フォルダA直下には、 複数のフォルダがあり、その複数フォルダ内に多数のファイル(約3万個)が入っている。 そのファイル群を、任意フォルダAの直下に新しいフォルダを1つ作り、全てコピーし纏めたい。 当方の構想(希望)としては、 1.エクセルシート1に全ファイル名を書きだす。(行:フォルダ名、列:ファイル名) 2.同名ファイルの有無を判定し、有ればエクセルシート2にフォルダ名とファイル名を抽出する。 (同名ファイルは、エクセルシート2を確認し、手動で変更する) 3.同名ファイルが無ければ、新しいフォルダに全てコピーする。 コードを記載しご教示頂ければ助かります。 皆様よろしくお願い致します。
- ベストアンサー
- Visual Basic
- エクセルでフォルダ内のBookのセルの参照
いつもお世話になっております。 決まったフォルダ内の複数のBook「個別情報(製品名)」のフルパスを別のBook「リスト」のA列に入れると、「個別情報(製品名)」のシート(規格)の指定のセルを「リスト」のシート(規格一覧)に行方向に引っ張ってくるようにしたいのですが。 1度に参照するシートは5-10枚。 参照するセル番地は決まっていて、多いと15個程度。 参照セルは「リスト」のシート(規格一覧)の最下行のセルに入るようにしたい。 閉じたままのBookのシートを指定して、セル参照が出来ることを少し前に知ったのですが、当方には難易度が高そうで躊躇していましたが最近コロナで時間が出来たのでチャレンジしてみようかと。 当方永遠のVBA初心者ですのでその辺もご配慮の上よろしくお願い致します。
- ベストアンサー
- Excel(エクセル)
- VBAで特定のフォルダ内のエクセルファイルをPDF
VBAで特定のフォルダ内のエクセルファイルをPDFに変換する作業しているのですが Filename:=ThisWorkbook.Path & "\" & Replace(f.Name, fs.GetExtensionName(f.Path), "pdf"), _ 出来上がったファイル名を コード_日付にしたく Filename:=ThisWorkbook.Path & "\" & ("コード") & Range("B9") & ("_") & Format(Now, "yyyymmdd") & ".pdf", _ に入力したのですがB9セルのコードが入りません。 どこが間違っているのでしょうか?
- 締切済み
- Visual Basic
- 大量のテキストファイルを一つのエクセルファイルに
大量のテキストファイル(以下「テキスト」とします)を、そのテキストを保存しているフォルダ名がわかるように一つのエクセルファイルに書き込みたいと考えています。 例えば「A」というフォルダの中にフォルダ名「1」~「1000」の1000個のサブフォルダがあり、その1000個のフォルダの中にはそれぞれ3~4つのファイルが保存されています(ファイルの種類はバラバラ)。但し、1000個のフォルダには最低でも1つのテキストが必ず保存されており、そのテキストのファイル名はすべて同じです。これら同じファイル名の1000個のテキストを、保存されているフォルダ名がわかるように一つのエクセルファイルの一つのシートの上から順番に書き込みたいのです。 それぞれのテキストは、1行に1情報、改行が10~20ほど、ファイルサイズは1~2KBほどです。エクセルのバージョンは2010です。 書き込み方は、例えばエクセルファイルのSheet1のA列にフォルダパス等のフォルダ名がわかる情報を、B列にテキストの内容を書き込むといった感じで、簡単なデータベースのテーブルを作るイメージです。 上記を実現できる方法はありますでしょうか? もし何らかのプログラミングが必要であれば、当方ほぼ未経験ですので具体的に例示して頂けると大変ありがたいです。 よろしくお願い致します。
- 締切済み
- オフィス系ソフト
- エクセルマクロで沢山のPDFをコピペしたい
Windows7でエクセル2010を使っています。 アドビリーダーはXIです。 あるフォルダの中にあるPDFのファイル名の一覧がフルパスでエクセルにあります。 これはマクロで抽出しました。 PDFの内容はテキスト形式のみです。 そのファイル名の一覧を元に、次から次へPDFを開き、1ページ全てをコピーしてエクセルで新しいシートを作り、貼り付ける、という作業を連続で行いたいのです。 もしくは初めから一覧は作らなくても良かったのかもしれませんが、その都度違うフォルダを処理していくので、一覧にしてみました。 一度の作業で処理するのは一つのフォルダのみです。 色々試してみましたが、歯が立ちません。 どうぞお教え下さい。 同じような質問をしたばかりですが、回答が増えなくかったので、改めて質問させていただきました。
- ベストアンサー
- Excel(エクセル)
- エクセルでフォルダとファイルを作りたい
お世話になります。 エクセル2007で質問です。 下記のような表をエクセルで作り、A列の名称でフォルダを作り、 そのフォルダの中にすべて同じファイル名のテキストファイルを作り、 その内容をB列の文字としたいのですが、マクロなどでの作成方法を教えてくだい。 A列 B列 a1 ああああああ a2 いいいい a5 かかかかか いままで使っていたマクロはテキストのファイル名がすべてバラバラだった ので同じフォルダ内に書き出していましたが、変更があり同じファイル名で内容が 違うデータが必要となってしまいましたので、違う名称のフォルダの中に、 同じ名称のテキストデータを格納したいと思っています。 テキストデータの名称は何でもいいです。 作成するデータの数は決まっていなく、最大で1000くらいあります。 ぜひ、ご教授お願いします。
- ベストアンサー
- その他MS Office製品
- エクセルでフォルダまたはファイルを開くマクロですが、どのように改良すれ
エクセルでフォルダまたはファイルを開くマクロですが、どのように改良すればよろしいでしょうか? 下記マクロは、エクセルシートのJ列のあるセルをダブルクリックすると、そのセルに記入された文字列を検索して、該当のフォルダまたは、写真が開きます。(エクセルファイルと写真は同フォルダに保存している場合のみ有効) 困っていることは、J列のセルと該当フォルダまたは、写真ファイルをリンクさせたいのですが、文字列が全て一致している時のみしか開かないことです。 D<デジカメ<商品名フォルダ<写真ファイル 例えば セルJ3の文字列がABCEで、フォルダ名またはファイル名がABCDEFであった場合、文字列ABCEを含む条件で、フォルダ名またはファイル名ABCDEFを開くように改良したいのですが、 また、エクセルファイルと写真ファイルの保存場所は、全く違うフォルダにしたいのですが、 エクセルファイルと写真ファイルは、別フォルダの場合、どのように検索先フォルダのパスを入れたら良いのでしょうか? マクロに詳しい方ご教授下さい。よろしくお願い致します。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim myPath As String If Target.Cells(1, 1).Column <> 10 Then Exit Sub Cancel = True myPath = ThisWorkbook.Path & "\" & Target.Cells(1, 1).Text If Dir(myPath, vbDirectory) <> "" Then Shell "explorer.exe /e,/root," & myPath, vbNormalFocus Exit Sub End If myPath = Replace(LCase(myPath), ".jpg", "\" & Target.Cells(1, 1).Text) If Dir(myPath, vbNormal) <> "" Then Shell "rundll32.exe shimgvw.dll,ImageView_Fullscreen " & myPath, vbNormalFocus End If End Sub
- 締切済み
- オフィス系ソフト
お礼
あ~~待ってください。 いつものように欲&よくが出てきました・・・ ①日付はA2に入力で・・ ②リストをよく見たらセルにパスがきれいに分かれて入っていて、最後のセルがPDFのファイル名(製品名.pdf)になっているのですが、このセルに自動でリンクを貼ることは出来ないでしょうか???? 現在リストのファイル名(製品名)をクリックするとPFDが開いてくるようにリンクを貼っていますので、ここまで一気に出来てしまう可能性があると思うと欲が出てきてしまいました。 今回作成される一覧表の各セルを&で結合して、そのパスにリンクを付けるような2段階処理でも良いのですが。 品名(最終セル)の右横のセルに左のセル達を結合したフルパスのセルを作ってそれをクリックしたらPDFが開いてくる、でも期待通りの動作です。 間に合えば!!
補足
いつも大変お世話になっております。 本当は常に最新版管理が望まれる一覧表なのですが、毎日、毎月、全ての対象フォルダの増加分を探す手が無いので現在は6月と12月にパトロール的に増加した、フォルダやファイルを探しています。 と言うことでお察しの通り(流石!) >PDFファイルの作成日時が特定日以降のものに絞る・・・ 事になります。 早々に#No5のご回答を試してみたのですが、 >コンパイルエラー >ユーザ定義型は定義されていません。 と出て、 デバックでは >’取得したファイルをリストアップ の部分で >Sub execute(f As file) が黄色にハイライトで止まってしまいます。 何か基本的なことや、まさか!が抜けているのでしょうか? 「まさか」をHohoPapaさんに聞いても、とは思うのですが、これまでの実績から一応聞いてみます。