• ベストアンサー

VBAでしょうか!?

nishi6の回答

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

修正する箇所は1箇所です。フォルダをセットし、最後に\があればいいです。 多分、そうされてのことだと思い、なぜ動かないか考えてみました。 私は、csvファイルということで、ファイルの拡張子がcsvだと決めて作っています。#1の「お礼」にあるファイル名から推測すると拡張子が無いような気がします・・・下記に拡張子が無いcsvファイルを読めるようにしてみました。拡張子が無ければこちらを試してください。 Sub CommandButton1_Click() Dim myDir As String 'ファイルガあるドライブとフォルダ Dim myFileName As String '探すファイル名(ワイルドカード) Dim Dummy As String '作業用ファイル名と見つかったファイル名 Dim mySchFileName As String '作業用ファイル名と見つかったファイル名 Dim YMD8old, YMD8new As Long 'ファイルがもつ月日 myDir = "C:\My Documents\" 'ご自分のフォルダを指定してください。\あり myFileName = "*.*" Dummy = Dir(myDir & myFileName) While Len(Dummy) > 0 If InStr(Dummy, ".") = 0 Then YMD8new = ymdHenkan(Dummy) If YMD8old < YMD8new Then mySchFileName = Dummy YMD8old = YMD8new End If End If Dummy = Dir Wend If mySchFileName <> "" Then Workbooks.OpenText Filename:=myDir & mySchFileName, DataType:=xlDelimited Else MsgBox "ファイルがありません" End If End Sub 'ファイル名の年月日を8桁にする Function ymdHenkan(myFileName As String) Dim wkFLname As String 'ワーク Dim L As Integer 'カウンタ Dim yy, mm, dd As String '年、月、日 Dim pot(4) As Integer '「-」の位置 Dim potIdx As Integer '「-」の位置の順 wkFLname = myFileName & "-" For L = Len(wkFLname) To 1 Step -1 If Mid(wkFLname, L, 1) = "-" Then potIdx = potIdx + 1 pot(potIdx) = L End If If potIdx = 4 Then Exit For Next yy = Mid(wkFLname, pot(4) + 1, pot(3) - 1 - pot(4)) mm = Right("0" & Mid(wkFLname, pot(3) + 1, pot(2) - 1 - pot(3)), 2) dd = Right("0" & Mid(wkFLname, pot(2) + 1, pot(1) - 1 - pot(2)), 2) Debug.Print ymdHenkan ymdHenkan = Val(yy & mm & dd) End Function

keyman
質問者

お礼

事細かく回答頂き本当にありがとうございます。 しかし解決されませんでした・・・前回と同じように「ファイルが見つかりません」と表示されます。おっしゃるように拡張子は表示していませんでした。で表示させて試みてもダメでした・

関連するQ&A

  • Windows10 右クリックメニュー 新規作成

    Windows10 右クリックメニュー 新規作成 Windows10において、デスクトップやフォルダなどで右クリックをしたときに出る「右クリックメニュー」があると思うのですが、そこにある 新規作成 からWordファイルやExcelファイルなどの作成ができると思います。しかし何故か画像のようにExcelファイルの作成項目が無くなってしまいました。 この場合、どうしたらもう一度Excelファイルの新規作成の項目を出すことが出来るでしょうか?

  • 今開いているエクセルのファイル名をセルに取り込みたい

    日付(yymmdd.txt)の付いた名前のテキストファイルを 自動的にエクセルにCSVで取り込む様に、マクロを組みました。なので、このファイル名に日付が付いているので、この日付をどうにかしてエクセルに取り込みたいのですが、方法をご存知無いですか? TXTとエクセルは同じフォルダに入れて管理する予定なので、エクセルファイルの居るフォルダ内のファイル名を取り込むのでも構いません。 どなたか良い案ありませんか? よろしくおねがいします。

  • VBAで複数のフォルダから最新のファイルを検索してコピーするには?

    はじめましてこんにちは!エクセルを少しいじり始めた者です。 エクセルのVBAで複数のフォルダから最新更新日のファイルを検索して特定シートのセルD1からF20までをコピーして貼り付けるにはどのようにコードを書いたらいいのでしょうか?具体的に申し上げますと、ある特定のフォルダの中に複数のフォルダが入っており、複数のフォルダにはそれぞれ同じ名前の後に日付が入っていて、さらにその中には同じファイル名の後に日付が付いているファイルがあります。(「日本」フォルダの中に「日本200401」、「日本200402」、「日本200403」フォルダが入っていてさらにそれぞれのフォルダ内には「全国200401」」、「全国200402」、「全国200403」みたいな感じでフォルダ名と同じ日付が付いたファイルが入っています。) その複数のフォルダの中から最新更新日時のファイルだけを開いて特定のシートからデータをコピーして貼り付けるにはどのようにコードを記述したら良いのでしょうか?

  •  エクセル2000でのVBA作成してほしいです。

     エクセル2000でのVBA作成してほしいです。  上記の通り、エクセルのVBAを作成して頂きたいです。 フォルダの中に約140個のcsv形式のファイルがあります。ファイル名は時間です。例えば、朝の6時00分15秒の場合は、「060015.csv」で、これが、五分置きのファイルで、139個あります。このファイルのB8~B263をエクセルのシート1のC11から、横に左詰めで貼り付けたいのです。今までは、エクセルで、開く→貼り付けたい所を選択→貼り付けでやっていたのですが。自分で、VBAについて勉強できればいいのですが、今まで、プログラミングを触ったことがないのと時間的余裕がなくて困っています。お力を貸して頂ければ幸いです。

  • 特定のcsvファイルが開けない

    色々調べてみたのですが表題の件がどうしても分かりません。 すみませんがよろしくお願い致します。 「あいう.csv」というファイルを開こうとすると『ファイルあいう.csvを作成できません。 ファイルの作成先フォルダを右クリックし、ショートカットメニューの[プロパティ]をクリックして、 そのフォルダへのアクセス権を確認してください。』という表示が出ます。 メールで送ってもらった同じファイル名のファイルも開けなくなっていました。 表示どおりにファイルのプロパティを開いてもアクセス権を確認する場所がどこだか分かなくて困っています。 よろしくお願い致します。

  • エクセルVBAでCSVを読み込んで別ファイルにまとめたいです。

    エクセルVBA初心者の者です。 マクロの記録でできたコードをいじって、 なんとか動くものができるレベルです。 Aというフォルダに20~40行程度の内容のCSVファイルが 数百個あります。開けてみないと何行あるのかわかりません。 そのAフォルダのCSVの内容をエクセルで開いて、別のエクセルファイルの一枚のシートにまとめたいのです。 最初にCSVファイル名を一枚のシートのA列に書き出すところ まではやれたのですが、それを順番に読み込んでコピペの 流れができません。 CSVファイル名読み込み 読み込んだファイル1つめCSV開く CSVの20~40行をコピー 別のエクセルファイルのシートに貼り付け 1つめCSV閉じる ↓ 読み込んだファイル2つめCSV開く 繰り返し こういうやり方じゃない方がいいのかもわかりません。 もしかして考え方も違うのでしょうか? サンプルコード教えていただけるとありがたいです。 よろしくお願いします。

  • タブで区切られたXXX.csvファイルをエクセルで開くには

    中身はタブで区切られた「XXX.csv」というファイルをエクセルでうまく開くにはどのようにすれば可能でしょうか? Excell2000を使用しています。 XXX.csvファイルをクリックすると、エクセルで開きますが、タブ区切りされておらず、セルAにすべて入ってしまいます。(行への展開は正しい) そのため、はじめにエクセルを開いておいて、ファイル名を指定しますが、これもうまくいきません。 どのようにすれば、タブ区切りという指定が出来て、Excellへ展開することが出来るのでしょうか?

  • 複数EXCELのセルデータを違うセルに移したい

    昨日、複数のエクセルのファイルを1つのファイルの1枚のシートにするやり方を質問させていただきました。csvファイルでしたのでできなかったことがわかりました。お答えいただいた方本当にありがとうございました。助かりました。教えてgooのやり方がわからずコメントを書けませんでしたのでここに書かせていただきます。 参考:http://okwave.jp/qa/q7735457.html さらに質問なのですがどなたかお願いいたします。 今、一枚のシートに日付ごとに項目が入っているのですが、項目の前の列にそれぞれ日付をつけるやり方があれば教えていただければと思います(下図のようになっています)。できればいらない部分は排除したいです。 図としましては        B列  C列 (数字は行の番号です。)       3      日付       4   いらない部分      5   ※  項目       6   ※   項目       7   日付 のような形になっています。 日付はC列の3行目からランダムに入っています。次の日付までB列の前に先の日付を入れたいです。(4,5の※部分にC3の日付を入れたいです)。あと出来ればいらない部分は消したいです。 または複数のEXCEL(.CSV)ファイルから1つのファイルの1枚のシートにする際にそれを行えたら嬉しいです。 複数のファイルの場合は   B列  C列         (数字は行の番号です。)   3    日付※ 4   いらない部分 5    ※ 項目         :   の形になっていてC列の3行目に日付が入っているのとC列4行目にいらない部分が入っているのはどのファイルも変わりありません。 わかる方がいらっしゃいましたらぜひともよろしくお願いします。また、CSVファイルになっていますのでお願いします。(図がへなへなになってしまって申し訳ありません)

  • 【Microsoft Excel】 .csv 以外のCSVファイルをExcelで開きたい!

    .csv 以外のCSVファイルをExcelで開きたいのですがどうしたらよいでしょうか? abcd.csvというExcelで問題なく開けるCSVファイルがあるとします。 これの拡張子を.xxx(又はその他、独自設定の拡張子)に変更して、Excelで開けるようにしようと思ったのです。 フォルダオプション>ファイルタイプ>新規(ボタン)」で「新しい拡張子の作成」ダイアログが開き、そこで ・ファイルの拡張子=.xxx ・関連付けられているファイル タイプ=Microsoft Excel CSV ファイル と設定して、abcd.xxxをダブルクリックでExcelが起動&ファイルオープンするまではいったのです。(アイコンも.csvファイルといっしょになりました。) しかし、 aaa,bbb ccc,ddd という内容のファイルが セルA1=aaa,bbb セルA2=ccc,ddd となり、csvファイルとして認識してくれていないみたいなのです。 ちなみに、元の.csvの場合にはちゃんと セルA1=aaa セルB1=bbb セルA2=ccc セルB2=ddd とExcelは表示してくれます。 どうにか上手い方法は無いものでしょうか! よろしくお願いいたします。

  • csvをVBAを使ってエクセル形式で保存したい

    タイトルのとおりなのですが、csvをVBAを使ってエクセル形式で保存したいのですが、その際ひとつ条件がありまして作成するエクセルファイルをcsvと同じ名前にしたいと思っています。  csvのファイル名は都度変わってしまうため私の現在の知識ではVBAを作成することができません。  教えて下さい。よろしくお願いします。