Sub GetExcelFileNamesAndDates()
Dim folderPath As String
Dim searchDate As Date
Dim folder As Object, subFolder As Object, file As Object
Dim excelApp As Object
Dim rowNum As Integer
Dim pasteRange As Range
' フォルダーパスと検索日付を設定
folderPath = "C:\Users\kes1o\Desktop\新しいフォルダー"
searchDate = Sheets("Sheet1").Range("A1").Value
' Excelアプリケーションを作成
Set excelApp = CreateObject("Excel.Application")
excelApp.Visible = False
' フォルダー内のサブフォルダーとファイルを検索
Set folder = CreateObject("Scripting.FileSystemObject").GetFolder(folderPath)
' 結果をシート1のA3セルから貼り付け
Set pasteRange = Sheets("Sheet1").Range("A3")
rowNum = 0 ' 貼り付ける行番号を初期化
For Each subFolder In folder.SubFolders
For Each file In subFolder.Files
' ファイルがExcelファイルかつ更新日が検索日付以降の場合、ファイル名と更新日時を表示
If (Right(file.Name, 5) = ".xlsx" Or Right(file.Name, 4) = ".xls") And file.DateLastModified >= searchDate Then
pasteRange.Offset(rowNum, 0).Value = file.Name
pasteRange.Offset(rowNum, 1).Value = file.DateLastModified
rowNum = rowNum + 1
End If
Next file
Next subFolder
' Excelアプリケーションを終了
excelApp.Quit
End Sub
ChatGPTで作成しましたがExcelアプリケーションを作成の部分は必要でしょうか?
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
まずは、どう「動かない」なのか?
エラーメッセージが出るのか?出ないのか?
出るならどんなメッセージか?
次に、動かない理由を調査すること。
考えられるのは
・フォルダーが無い。
そもそも無い/元のPCと場所が違う
・ファイルが無い。
そもそも無い/[更新日]ファイル名に該当するファイルが無い
「vba デバッグ やり方」
で検索して、デバッグ方法を勉強しましょう。
ブレークポイントやステップ実行で、以下の箇所をとくに重点的にしらべましょう
Set folder = CreateObject("Scripting.FileSystemObject").GetFolder(folderPath)
エラーになっていないか?
For Each file In subFolder.Files
このループに入ってくるか?(=folder.SubFolders が空なのかそうでないのか)
If (Right(file.Name, 5) = ".xlsx" Or Right(file.Name, 4) = ".xls") And file.DateLastModified >= searchDate Then
この行に到達するか?(=subFolder.Filesが空なのかそうでないのか)
file.Name は期待通りかそうでないのか?
file.DateLastModified は期待通りかそうでないのか?
searchDateは期待通りなのかそうでないのか
No.2
- 回答日時:
まずは、そのプログラムで、excelApp が使われているところを確認することです。
Set excelApp = CreateObject("Excel.Application")
excelApp.Visible = False
excelApp.Quit
の3箇所だけです。
アプリを起動→隠す→アプリ終了
です。
excelAppを利用して何かをするのなら、もっと excelApp が使われているはずです。
※ excelApp.Visible = False は画面を隠しただけなので、excelAppを利用しているとは言えません。
また、新規にExcelを起動しなくても、大抵のことはVBAを動かしているExcelでできます。
excelAppは不要です。
No.1
- 回答日時:
' Excelアプリケーションを終了
excelApp.Quit
ここで「Excelアプリケーション」終了なので、作成の部分は
Set excelApp = CreateObject("Excel.Application")
ここってことになるのかしら。
返信ありがとうございます。やりたい事はフォルダー内に複数のフォルダーがありその中のExcelファイル名を更新日時で絞ってファイル名と日時を直接Excelシートに貼り付けたいです。動作できには問題ないのですが、今までExcelアプリケーションを作成を使った事がなくこの部分がどういう動作になっているのかもわからずまた必要なのかもわからない状況です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
IISワーカープロセスが原因でCP...
-
帳票出力について
-
unzip32.dllの利用について(64b...
-
AccessとVBの違いについて
-
素人ですけど・・・
-
EclipseでJavaコンパイラのバー...
-
JSPファイルで生じるエラーをど...
-
gitでバージョン指定してダウン...
-
javaからデータベースに接続 エ...
-
VBAの「for i=1 to cells(…」...
-
Javaでのエラーについて
-
javaでの#if 0 #endif文
-
Eclipseソース開発画面の行番号...
-
データベースのデータをTextBox...
-
バイナリファイルの著作権など...
-
Tmocatのバージョン
-
2ショットチャットができるHP...
-
C++ですごろくゲーム作成
-
PHP+PostgreSQLにおける「pg_ex...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
IISワーカープロセスが原因でCP...
-
unzip32.dllの利用について(64b...
-
意味が分からないエラー
-
プラグインとパッチの違いは?
-
java起動時の日本語引数文字化...
-
32ビットのアプリで、64ビットO...
-
C#のメモリマップドファイルに...
-
ログオフ中でもアプリケーショ...
-
帳票出力について
-
Java でネイティブアプリケーシ...
-
javaで3D-CAD作れますか?
-
appleスクリプトでアプリケーシ...
-
Javaアプレットで複数のスレッ...
-
open ssl 脆弱性について
-
2冊目のJAVA本
-
delete,saveが分かりません
-
HTMLアプリケーションの作成
-
JAVAアプレットとか。
-
VBで作ったものを人にやらせる...
おすすめ情報
上記のVBAを別のpcで使用した所同じ動作になりませんでした。どいうことでしょうか?
具体的にはファイル名と日時が貼り付けられません。何かVBA使用する際に設定することがあるのでしょうか?他のVBAは使用できるのですが?