[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ファイル名が日付のCSVファイル取得について』(たまごん)
こんにちは、VBAに格闘中です。
日付を指定して、同じ日付のファイル名のCSVファイルを読み込みたいのですが
参考になるサイトや情報ってありますでしょうか?
探しているのですが、OUTPUTする時に日付指定する等のサイトは見れたのですが…
希望としては
ネットワークフォルダ
\\p1030\1101\連携フォルダ\予定スケジュール\
の中にCSV(170501.csv〜170531.csv)ファイルが格納されています。
ワークブック名:「テスト」内のSheet1のセルH23に当日日付が入っています。
マクロを実行させるとその日付を元に上記ネットワークフォルダ内のCSVファイルを読み込む。
そのデータをテストのSheet2のセルA1より貼り付けてほしいのです。
マクロの記録もやっていますが、連続させるとなると???><
見る人によっては簡単かもしれませんが、苦戦しています。
良きアドバイスください。
どうぞよろしくお願いします。
< 使用 Excel:Excel2013、使用 OS:Windows7 >
連続とは?
当日のCSVファイル一つだけを取り込むのではないのですか。
(マナ) 2017/05/18(木) 18:39
説明での言葉足らず、申し訳ございません。
日付指定し、その日付と同じファイルを取得するということで
1回処理すれば大丈夫でした。
ファイル名固定ではできるのですが、セルと同じファイル名となると
知識不足で分からなかったということです。
すいません。
(たまごん) 2017/05/20(土) 21:08
では、それを提示いただけませんか。
(マナ) 2017/05/20(土) 21:15
たびたびすいません。
ファイルを指定し動かしたロジックとなります。
なお、データ2種より選択させるため、InputBoxを取り入れています。
Sub sample()
Dim idno As String
myfile = ActiveWorkbook.Name
Set myf = Workbooks(myfile).Worksheets("Sheet2")
idno = InputBox("A or Bを入力してください。(1:抽出/2:投入)")
Workbooks.Open FileName:="\\p1030\1101\連携フォルダ\予定スケジュール\170501.csv"
openfile = ActiveWorkbook.Name
k = 1
For i = 1 To 65536
If Cells(i, 1) = "" Then Exit For
If Cells(i, 3) = idno Then
For j = 1 To 10
myf.Cells(k, j) = Cells(i, j)
Next j
k = k + 1
End If
Next i
ActiveWindow.Close
End Sub
私が分かる範囲はこんなところです。
sheet1にある日付と同ファイルを読み込むよう教えてもらえますでしょうか?
よろしくお願いします。
(たまごん) 2017/05/21(日) 01:58
MsgBox Format(ActiveCell.Value, "yymmdd") & ".csv"
(マナ) 2017/05/21(日) 08:50
ありがとうございます。
ご指定のコードを入れてみるということですが、
MsgBox Format(ActiveCell.Value, "yymmdd") & ".csv"
で選択しているセル(日付)のcsvファイル名を表示させるというのは分かったのですが、
これをどこにどう入れるのかが分かりませんでした。
MsgBoxに表示したものを使って…のような感じは想像できたのですが、
上手く活用できませんでした。
まずは
sheet1のセルを選択し、MsgBoxに表示したファイル名のcsvファイルをファイルサーバより
引っ張りその中をコピーし、sheet2に貼り付ける
というイメージはあるのですが、知識が追い付いていません。
(たまごん) 2017/05/21(日) 22:12
Sub test() Dim myDate Dim myCSV As String
myDate = Worksheets("Sheet1").Range("H23").Value If Not IsDate(myDate) Then Exit Sub
myCSV = "\\p1030\1101\連携フォルダ\予定スケジュール\" myCSV = myCSV & Format(myDate, "yymmdd") & ".csv"
Msgbox myCSV
End Sub
(マナ) 2017/05/21(日) 23:08
夜遅くで申し訳ございませんでした。
"&"をつなげてのファイル名指定させるのですか。
すいません、"&"自体は他のマクロで使ったことはありますが、
ここでとは思いませんでした。
myCSVを指定することで、思うcsvファイルを開くことができました。
本当にありがとうございました。
夜遅くにも関わらず、大変助かりました。
(たまごん) 2017/05/22(月) 00:33
http://officetanaka.net/excel/vba/beginner/06.htm
http://kabu-macro.com/vba_apply/vba_indent.html
Option Explicit
Sub test() Dim myDate Dim myCSV As String Dim idno As Long Dim myWS As Worksheet Dim i As Long, k As Long
myDate = Worksheets("Sheet1").Range("H23").Value If Not IsDate(myDate) Then Exit Sub
myCSV = "\\p1030\1101\連携フォルダ\予定スケジュール\" myCSV = myCSV & Format(myDate, "yymmdd") & ".csv"
idno = Val(InputBox("A or Bを入力してください。(1:抽出/2:投入)")) If idno <> 1 And idno <> 2 Then Exit Sub
Set myWS = Worksheets("Sheet2") myWS.UsedRange.ClearContents ' With Workbooks.Open(Filename:=myCSV).Sheets(1) For i = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row If .Cells(i, 3).Value = idno Then k = k + 1 myWS.Cells(k, 1).Resize(, 10).Value = .Cells(i, 1).Resize(, 10).Value End If Next i .Parent.Close False End With
End Sub
(マナ) 2017/05/22(月) 19:22
気づかず申し訳ございませんでした。
>Option Explicitとインデントについて習慣づけたほうがよいです。
もっと勉強しこの辺りのことも学んでいきたいと思います。
教えていただいたコードも自分なりに噛み砕いて動きを追ってみます。
色々ご指導、ありがとうございます。
(たまごん) 2017/05/30(火) 04:54
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.