• 締切済み

マクロでファイルを開くには・・・

特定のフォルダにデータファイルを入れ、マクロによってそのデータの集計を行なっています。そのデータファイル名は通常 a_1 b_2 c_3 です。これをマクロで集計していますが、このファイル名が a_6 b_7 c_8 のようにファイル名が変わると、マクロが動作しないので、ファイル名を、a_1、b_2、c_3 に変更してから、マクロを走らせています。(数字のところはいつも同じではありません) aとbとcのファイルは一つづつ存在します。 番号を変更しないで、マクロを走らせるには、マクロをどのように修正すれば良いのでしょうか。よろしくお願いします。

みんなの回答

  • avanzato
  • ベストアンサー率54% (52/95)
回答No.2

こんにちは。 サンプルコードが提示されていませんので詳細は分かりませんが、特定のフォルダが必ず3つという条件ならばDIRを使用しフォルダ内のファイル名を調査し格納すればよいと思います。 詳しくは「vba dir」で検索して見てください。

  • MRT1452
  • ベストアンサー率42% (1392/3296)
回答No.1

ソースの提示もないのに、どのように修正すればって・・・。 まぁ、方法としてであれば、根本的にファイルを決め打ちしているのが問題なので、その部分をファイルを開くダイアログに変えて、変数に取得ファイルパスを設定して、決め打ちにしているところをその変数に置き換える。 というやりかたが一般的でしょうね。 プログラムは作る前に良く検討してから作った方が良いですよ。 行き当たりばったりで作っていては、今対応できても、後々のメンテナンスやノウハウの為として残りませんよ。 サンプルソース等はVBAならば探せばゴロゴロ出てくるのでそちらを参考に。

0pus0ne
質問者

お礼

早速、回答して頂き、ありがとうございます。 ご指摘の通り、a_1 ファイルを開くから始まっています。 まだまだ初心者です。どのサンプルソースが参考になるのかを教えて頂ければ幸いです。以上、よろしくお願いします。

関連するQ&A

  • マクロについて

    マクロについて AファイルとBファイルは同じ形式のファイルでCファイルに集計用としてマクロを組んで数字のみを取りこみたいのですが、Cファイルのみファイルが違うせいか、エラーがでます。

  • 複数のエクセルファイルをマクロで開いて閉じたい

    フォルダにエクセルファイルが複数あります。A*** B*** マクロを使い、A・Bの後の日々変更される(数字)ファイル名に対応して、 ファイルを開きActivateにする方法と閉じる方法を教えてください。

  • ファイルを開かずにマクロを実行

    マクロの実行をいちいちファイルを開かずに行いたい場合には、どうすればよいのでしょうか。 フォルダの中に同じフォーマットのファイルが数十個から数百個あります。 作業内容は、ファイルの中の一部分を修正する、などです。フォルダ内の全てのファイルに同じ作業をします。 これを、下記のマクロでやっているのですが、今は、 ファイルを開く→下記の別ファイルで保存したマクロを実行し、修正を行う、を繰り返してやっています。 例えば、こんな作業をします。 Range("B2").Select ActiveCell.FormulaR1C1 = "変更しました" ActiveCell.Characters(1, 2).PhoneticCharacters = "ヘンコウ" Range("D11").Select Sheets("修正").Select Range("A1").Select ActiveCell.FormulaR1C1 = "変更しました" ActiveCell.Characters(1, 2).PhoneticCharacters = "ヘンコウ" Range("A6:B10").Select Selection.ClearContents End Sub これだと、1ファイルずつ作業をしないといけないので、出来ればフォルダ内にあるエクセルファイルに対し一括で処理できるようにマクロを実行させたいです。 おそらく上記コードに、前後何かをつけたせばいいのだと思いますが、それが分かりません。これが分かれば、色々応用がきくと思うので教えていただけませんか。 どうぞ宜しくお願い致します。 Office2003

  • エクセル2003マクロ

    特定のフォルダに同じサンプルNoのファイルがA~Dまで4種類ずつあり、これらから必要なデータを抽出し、同一Noに対して一つの集計ファイルを作成するマクロを作りたいと思っています。 ユーザーフォームで1台ずつサンプルNoを入力すれば、抽出→集計まで処理できるコードはできたのですが、サンプルNoを指定せずにコマンドボタン1発でフォルダ内のサンプル全てを同様に処理できる方法が分かりません。色々なサイトを覘きましたが、妥当な例がなく困っています。 ファイル名はそれぞれ、 A-1.xls、B-1.xls、C-1.xls、D-1.xls、A-2.xls、B-2.xls・・・という規則でついていて、全て同じフォルダに保存されています。 どなたか良い知恵をお貸し下さい。

  • EXCEL複数のファイルから指定されたデータを抽

    初めて、マクロ初心者です。 お手数をおかけしますが、助けてください。 条件(1)同じフォルダに 約200個のエクセルファイルがあります。 名前はバラバラです。 管理表を作りたいため、200個をコピーするのも苦痛でしたので、簡単なマクロはありませんか? 条件(2)シートの作りはすべて同じです。それぞれ15個のシートがあります。(お客様のデータを管理しているため。) 同じデータの部分を抽出して、新しいExcelブックに集計したいです。 例えば、 ファイル名0001、シート1のA1のセルで記載されている「文字」もしくは「数字」を新しいブックののA1にコピーして、ファイル名をB1記入したい。 ファイル名0002、シート1のA2のセルで記載されている「文字」もしくは「数字」を新しいブックののA2にコピーして、ファイル名をB2記入したい。 コピーすることは出来るマクロを教えてください。 順番はなく、ファイル名と集計したい「データ」が一致であればOKです。 よろしくお願いします。

  • 【Excel2003】マクロの実行

    お世話になります。 フォルダー内全てのエクセルファイルに、あるマクロを実行したいのですが可能でしょうか? 例としましては フォルダー「変更ファイル」 以下中にあるファイル ------------------------ ファイル「A.xls」 ファイル「B.xls」 ファイル「C.xls」 ファイル「マクロ.xls」←ソートを行うマクロ入り ------------------------ 「変更ファイル」フォルダー内の「マクロ.xls」を実行してA,B,Cファイル(フォルダー内全てのファイル)内データーを各ファイル毎ソートしたい。 この作業はマクロ.xlsのマクロをカスタマイズしてすることは可能でしょうか? 可能ならやり方を教えてください。 お願いいたします。

  • ExcelのマクロでExcelファイルを抽出して開きたい

    あるフォルダ内にある複数のExcelファイルの中から、希望のExcelファイルを開くマクロをつくりたいと思っています。 フォルダ名は任意の数字、ファイル名は任意の数字(フォルダ名と同一)+版数データです。 例) C:\excelsheets\1234567890_1\1234567890_1_0_2_Sheet.xls 「_整数」の部分が版数データ。 動作としては、マクロを実行したら、任意の番号を入力してExcelファイルを開くという流れを考えています。 ちなみに、開くファイルは、 希望A 指定した番号の最新のファイルだけを開く。 希望B 指定した番号のファイルを、版数に関係なく全て開く。 を考えています。(AがダメならB) マクロの自動保存で出来たマクロに手を加えて出来たのが下記です。 Sub test() Dim Select1 As Double Select1 = Application.InputBox("Noを入力してください", "No. Select") ChDir "C:\excelsheets\" & Select1 & "_1" Workbooks.Open Filename:= _ "C:\excelsheets\" & Select1 & "_1\" & Select1 & "_1_0_2_Sheet.xls" End Sub ただし、これだと版数の変化についていけないので、試しに、    "C:\excelsheets\" & Select1 & "_1\*.xls" と、ワイルドカードが使えるか試したらエラーになりました。 初歩的な事かもしれませんが、マクロの勉強を始めたばかりで試行錯誤しながらやってます。ご助言、よろしくお願いします。

  • エクセル マクロ 任意のファイルを選択してコピペ

    現在、「A+日付」と「B」の2つのファイルがあり、 「A+日付」のデータをコピーして「B」に貼り付けるマクロが組まれています。 マクロは「B」のファイルに組まれています。 ただし、マクロでファイルを特定するために日付を削除して、「A」にファイル名を 変更してから実施しています。 流れとしてはフルパスで「A」を開いて、「A」の指定範囲のデータをコピーし、 「B」に貼り付けとなっています。 これをダイアログで任意のファイル「A+日付」を選択して、 そのデータを「B」に貼り付けるように変更したいのですが、 マクロの知識がなくわかりません。 既に組まれている簡単なマクロなら、なんとか解読できる程度の理解力です。 ダイアログでファイルを開くだけなら、ネットでも探せましたが、 そのファイルの指定範囲のデータをコピーする指示の仕方が判りません。 どなたかご教示頂けると助かります。 宜しくお願い致します。

  • 複数のエクセルファイルを1つのエクセルファイルのシートにコピーをマクロ

    複数のエクセルファイルを1つのエクセルファイルのシートにコピーをマクロで行いたい。 マイドキュメントのデーターというフォルダ内に エクセルファイルA(シート名みかん) エクセルファイルB(シート名りんご) エクセルファイルC(シート名バナナ) エクセルファイルD(シート名ぶどう) エクセルファイルE(シート名いちご) があります。 雛形は同じです。すべてA列~F列までデータが入っています。 行数はファイルによって違います。 また毎日自動で上書き更新され、毎日行数が変わります。 エクセルファイルZがあります。シートが7個あります。 ・変換 ・集計 ・みかん ・りんご ・バナナ ・ぶどう ・いちご エクセルファイルZを開きます。(各シートには昨日のデータが貼り付けてあります。) マイドキュメントのデーターフォルダも開いておきます。 エクセルファイルZにおいて「マクロの記録」を起動。 エクセルファイルZの 【みかん】~【いちご】までの5シートを全データDELETEします。 開いてあるフォルダ「データー」の中からエクセルファイルAを開きます。 (タスクバーにいます) ファイルAのシート【みかん】の全データ選択して エクセルファイルZの【みかん】というシートのA1セルにカーソルを あわせて貼り付けします。 開いてあるフォルダ「データー」の中からエクセルファイルBを開きます。 (タスクバーにいます) ファイルBのシート【りんご】の全データ選択して エクセルファイルZの【りんご】というシートのA1セルにカーソルを あわせて貼り付けします。 これと同じ操作を【バナナ】【ぶどう】【いちご】も行います。 エクセルファイルZにおいて「マクロの記録」を終了させます。 マクロができあがりました。 ファイルZを上書き保存して終了。再立ち上げで記録したマクロを実行。 エラーにはなりませんが、ファイルZの5種類各シートに ファイルA~Eのデータが貼りつきません。 何か無理な事をしているのでしょうか? もしかしてシート名が同じだと駄目?とためしにファイルZのシート名【みかん】~【いちご】を 【みかんZ】~【いちごZ】に変更してマクロを再記録しても 駄目でした。 よろしくお願いします。

  • エクセルでのファイル名の一括変更 マクロ

    皆様お世話になります。 あるフォルダーの下位にユニークに名前の付けられた900個ほどのフォルダーがあり それれぞれの、フォルダーの中にA,Bというフォルダーがあります。 その中にa.xls,b.xlsなどというファイルが存在しています。 そのa.xlsやb,xlsの名称を変換したいのですが数量が非常に多いためマクロか、何かで変更する方法がありますか? ファイル名の条件として 開いたエクセルのC,4とH,4を合体させたファイル名にすると、非常にありがたいのですが。 よろしくお願いします。

専門家に質問してみよう