柔軟に働き方を選ぶ時代に必要なこと >>

Folderの中にあるエクセルファイルをセルに表示
Folder1 があり
その中にエクセルファイルが複数あります。
そのフアイル名を今開いている
ExcelのA1からA2A3とファイル名を
取得したいのですが
わかる方いましたらおしえてくれませんでしょぅか

A 回答 (4件)

この質問とは関係ないのですが、


https://oshiete.goo.ne.jp/qa/10402294.html
が閉じられてしまったのでこちらに回答します。

元々『社員No』が入力された時点でデータを受け取りたいと思い、
https://oshiete.goo.ne.jp/qa/10401708.html
にてWorksheet_Changeイベントでの回答及び最初のリンク先のアドレスで『Dictionaryは必要ない』と回答しました。

しかしこれが『A列に取得したい社員Noを事前に打ち込んでおいて』と言う事でDictionaryをお考えになっていたのであれば、

Sub try()
Dim myDic As Object
Dim ws1 As Worksheet
Dim r1 As Range
Dim r3 As Range

Set myDic = CreateObject("Scripting.Dictionary")
Set ws1 = Worksheets("Sheet1")

With ws1
For Each r1 In .Range("A2", .Cells(Rows.Count, 1).End(xlUp))
myDic.Add r1.Value, Array(r1.Range("B1").Address, r1.Range("C1:E1").Address, r1.Range("F1").Address, r1.Range("G1").Address)
Next
End With

With Worksheets("Sheet3") '仮にシート3に書き出すとして
For Each r3 In .Range("A2", .Cells(Rows.Count, 1).End(xlUp))

If myDic.Exists(r3.Value) Then
ws1.Range(myDic(r3.Value)(0)).Copy r3.Range("B1")
ws1.Range(myDic(r3.Value)(1)).Copy r3.Range("F1")
ws1.Range(myDic(r3.Value)(2)).Copy r3.Range("K1")
ws1.Range(myDic(r3.Value)(3)).Copy r3.Range("N1")
End If
Next
End With

Set myDic = Nothing
Set ws1 = Nothing
End Sub

ItemをArrayにしてAddressを保存しておき、後にコピー元のシート1のセルを決めてしまえばよいかな?と。

でも実際使うとしてWorksheet_Changeイベントとどちらが良いかな?と言えばWorksheet_Changeイベントとは思いますが、
質問者さん側ではどう感じるのか?については回答者が押しつける事もないと思いDictionaryでの回答もしてみました。
Worksheet_Changeイベントが使えない状況にあるのかも知れませんしね。
    • good
    • 0

No.3です。



あと For~Next もですけど For Each ~ Next (特にRange型)については慣れておいた方が便利な時もありますよ。
”最終行”を求めてから To 最終行 とするより、セル範囲を In Range("A2",Cells(Rows.Count, 1).End(xlUp)) みたいに求めながらセット出来たりしますし。
    • good
    • 0

こんにちは!



>今開いている
>ExcelのA1からA2A3とファイル名を・・・

開いているファイル(マクロ記載ブック)のSheet1だとします。
一例です。

Sub Sample1()
Dim myPath As String, fN As String
Dim cnt As Long
myPath = "保存場所のパス" & "\"
fN = Dir(myPath & "*.xls?")
Do While fN <> ""
cnt = cnt + 1
ThisWorkbook.Worksheets("Sheet1").Cells(cnt, "A") = Left(fN, InStr(fN, ".") - 1)
fN = Dir()
Loop
End Sub

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0

ご参考になりますか?



フォルダ内に存在する全「.xlsx」ファイルのベース名を取得する
http://officetanaka.net/excel/vba/filesystemobje …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報