• ベストアンサー

1フォルダに「A.xls」、「B.xls」、「C.xls」・・・とある

1フォルダに「A.xls」、「B.xls」、「C.xls」・・・とある場合、 すべてのファイルに一斉にA1セルに「a」という文字を反映させる場合の VBAプログラムを教えていただけますでしょうか? よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.3

フォルダ名を変更してから試してね 4行目の mPath = "C:\tmp\" 「aaa」なら mPath = "C:\aaa\" に変更 Sub test() Dim mPath As String Dim nf As String mPath = "C:\tmp\" nf = Dir(mPath & ".xls") Do While nf <> "" Workbooks.Open Filename:=mPath & nf Workbooks(nf).ActiveSheet.Range("a1").Value = "a" Workbooks(nf).Close SaveChanges:=False nf = Dir() Loop End Sub 簡単なコードにしてあるので、分らない所はヘルプで調べてね 参考まで

shunpy0522
質問者

お礼

助かりました。ご親切にどうもありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

いや、だから、その目的のうち、どこまでコードを書けるのかを訊ねています。 Excel のデーター ファイルを開いてセルに書き込むことはできるけど、複数ファイルを渡り歩く方法がわからないとか、フォルダー内の Excel ファイルを見つける方法がわからないとか。 はたまた何もかもわからないから全て教えてもらいたいとか。 フォルダー内のExcel ファイルの一覧が欲しいなら、FileSystemObject について調べればいいです。 目的のフォルダーを Folder オブジェクトで参照すれば、Files プロパティーでフォルダー内の全てのファイルを取得できます。 For Each でループさせながら拡張子を調べ、Excel の拡張子なら開いて書き込みして保存して閉じる。 これを繰り返す。

shunpy0522
質問者

補足

ご回答、ありがとうございます。 全てわからない状態です。 ほぼほぼコードに近いものをいただければと期待して、 質問しております。虫がよすぎるのは承知の上で、 具体的にどんなコードイメージとなるかご教示 いただければ嬉しいです。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

どこまでわかっていて、どこから分からないのかがわからないです。 フォルダーに A.xls しかない場合、A.xls の A1 セルに 「a」 という文字を反映させることはできるのですか?

shunpy0522
質問者

補足

目的は、同一フォルダの複数ファイルに同じ処理を反映したいというものです。 たとえば、以下です。 (1)指示用画面.xlsのA1セルにaと入力してマクロを実行 (2)あるフォルダ内の全ファイル(A.xls、B.xls、C.xls・・・)の  A1セルがaという値になる 漠然としてしまっておりますが、ご教示のほどよろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBAで、excelファイルのマクロを実行したら、特定のフォルダのファ

    VBAで、excelファイルのマクロを実行したら、特定のフォルダのファイルの特定セルを確認し、その結果を反映する、というマクロを組みたいと思っています。 具体的には下記のマクロを組みたいと思っています。 ------------------------------------------------------ (1)マクロを組むファイル【worksheet】にてマクロを実行する (2)特定のフォルダのファイルのA1、A2、A3、A4の全てに”OK”という文字が入っているかを確認 ・C:\excel\1番\kakunin_1.xls にあるkakunin.xlsの、A1セルに”OK”という文字が入っていたら次はA2、A3、A4の順序で 確認する。 ・このとき、A1にOKと入っていて、A2には入っていなかった場合は、A2という文字を、【worksheet】のB1セルに結果を表示する ようにする。 ・特定のフォルダの構成は下記 C:\excel\1番\kakunin_1.xls |--\2番\kakunin_2.xls |--\3番\kakunin_3.xls ・上記の処理を、1番フォルダの【kakunin_1.xls】で実行し、【worksheet】のB1セルに結果を表示。 2番フォルダの【kakunin_2.xls】で実行し、【worksheet】のB2セルに結果を表示。 3番フォルダの【kakunin_3.xls】で実行し、【worksheet】のB3セルに結果を表示。 ------------------------------------------------------ VBAどころかプログラミング自体が初めてなので、例えば引数が何かも一々考えて1文ずつ読み込まなければいけない状態です。。 どなたかこの無知な自分に力を貸して頂けないでしょうか?

  • B.xlsだけを開いて、A.xlsの中にあるマクロプログラムを実行するには

    よろしくお願いいたします。 もう少し具体的に言うと、 A.xlsというファイルにて、「Test」というマクロプログラムを作りました。 これはA.xlsのsheet1についてある操作をするものです。 同様の操作を行いたいファイルが他にも、B.xls、C.xls、D.xls…と たくさんあります。 例えばB.xlsについて行うとき、プログラムはA.xlsに入っているので、 A.xlsとB.xlsの両方を開いて、B.xlsにおいて「ツール:マクロ」から 「A.xls!Test」を選んで実行していますが、常にA.xlsを開いていなければ ならないことに疑問を感じます。 B.xlsだけを開いて、A.xlsの中にあるマクロプログラムを実行する手段があるのでしょうか? 「アドイン」とかいうものを使えば…という知人がいますが、具体的には知らないそうです。 ご存知の方、よろしくお願いします。

  • エクセル フォルダ内の.xlsファイルの集計

    エクセルで、複数の.xlsファイルの特定セルを集計するマクロを組みたいのですが、VBA勉強しはじめでうまくいかず、皆様の知識をお借りできればありがたいと思い質問させていただきます。 作業としては あるフォルダに複数の.xlsファイル(それぞれのファイルは同一形式で、sheet1およびsheet2は作業用シート。sheet3以降がデータの入ったシートとする)を置いておき、それぞれのデータ入りシート(シート数はファイルにより異なる)の特定セルを集計したものを、新たなブックに書き込む という形です。 その際に、各シートの特定セルの内容により出力するセルを変えたいと思っています。 実際には、 AAA.xlsというファイルの3枚目以降のシートで、L2セルに「B」と記述があれば別ブックのB3セルに、「C」と記載されていれば別ブックのC3セルに、それぞれD4セルの数値を集計する。 次にBBB.xlsというファイルに関しても同様に集計し、その結果はB4セルとC4セルに出力する これを当該フォルダに入っているファイル全てについて行う ※L2セルには「B」「C」以外の文字は入りません。 こういった作業ができればと思っています。 お時間のある方がおられましたら、ご教授いただけますでしょうか。 参考になるサイトなどがありましたら、アドレスだけでも御教えいただけると幸いです。 質問の仕方が悪いようでしたら、ご指摘いただければ再度説明させていただきます。拙劣な説明ですがどうかよろしくお願いします。

  • Book1.xlsとBook2.xlsのエクセルファイルが有ります。

    Book1.xlsとBook2.xlsのエクセルファイルが有ります。 VBAを作成しているのはBook2.xlsで操作しています。 Book1 Sheet1 A B C 1 6 4 2 2 8 5 3 3 5 1 4 . Book1のシートのB列とC列には整数が入力されています。 A列には計算式が入ります。 例)A1の計算式 =B1+C1 A2の計算式 =B2+C2 A列の結果をBook2 Sheet1 のA列に反映しようとした場合に、 以下のVBAだと、計算式のコピーになってしまうので、計算結果の値を反映する事が出来ません。 A列の計算結果(上記の例だと、6,8,5)をまとめて反映させる方法はありますか? Sub tashizan() Dim thisBook As Workbook Dim workBook1 As Workbook Set thisBook = ThisWorkbook Set workBook1 = Workbooks.Open("C:\Documents and Settings\Book2.xls") thisBook.Worksheets("Sheet1").Range("A1:A100").Copy workBook1.Worksheets("Sheet1").Range("A1") workBook1.Close End Sub 初心者ですので、宜しくお願いします。

  • ExcelVBA別フォルダにあるブックのコピー方法

    ExcelVBAでデータを条件に応じてコピーしたいと思っています。 同一階層に「VBAファイル.xls」「1_フォルダA」「2_フォルダB」「3_フォルダC」があります。 「1_フォルダA」と「2_フォルダB」には年代別に分かれたファイルがあります。 ファイルとフォルダの構造は以下の通りです。 VBAファイル.xls 1_フォルダA  ∟1999_ファイルA.xls  ∟2000_ファイルA.xls  ∟2001_ファイルA.xls  ∟2002_ファイルA.xls  ∟2003_ファイルA.xls  ∟2004_ファイルA.xls  ∟2005_ファイルA.xls  ∟2006_ファイルA.xls  ∟2007_ファイルA.xls  ∟2008_ファイルA.xls  ∟2009_ファイルA.xls  ∟2010_ファイルA.xls  ∟2011_ファイルA.xls  ∟2012_ファイルA.xls 2_フォルダB  ∟1999_ファイルB.xls  ∟2000_ファイルB.xls  ∟2001_ファイルB.xls  ∟2002_ファイルB.xls  ∟2003_ファイルB.xls  ∟2004_ファイルB.xls  ∟2005_ファイルB.xls  ∟2006_ファイルB.xls  ∟2007_ファイルB.xls  ∟2008_ファイルB.xls  ∟2009_ファイルB.xls  ∟2010_ファイルB.xls  ∟2011_ファイルB.xls  ∟2012_ファイルB.xls 3_フォルダC  ∟ファイルC_結果.xls 「VBAファイル.xls」では添付の画像のような「ActiveXコントロール」を設定しました。 コンボボックスで西暦を選択すると、選択した年を中心年として、 前後1年を合わせて合計3年がラベルに表示されます。 その年のファイルのデータが「ファイルC_結果.xls」にコピーされるようにしたいです。 例えば画像のように「2007」を選択した場合、 ・「2006_ファイルA.xls」のC7~C25を「ファイルC_結果.xls」のD7~D25にコピー ・「2007_ファイルA.xls」のC7~C25を「ファイルC_結果.xls」のE7~E25にコピー ・「2008_ファイルA.xls」のC7~C25を「ファイルC_結果.xls」のF7~F25にコピー ・「2006_ファイルB.xls」のC6~C24を「ファイルC_結果.xls」のH7~H25にコピー ・「2007_ファイルB.xls」のC6~C24を「ファイルC_結果.xls」のI7~I25にコピー ・「2008_ファイルB.xls」のC6~C24を「ファイルC_結果.xls」のJ7~J25にコピー というようにしたいです。 「ファイルC_結果.xls」のD/E/F列はファイルAのデータで、 D列は前年、E列は当年、F列は翌年 H/I/J列はファイルBのデータで、 H列は前年、I列は当年、J列は翌年の値をコピーして貼り付けたいです。 また、可能であれば「ファイルC_結果.xls」は原本なので、 値をコピーする際にファイル名が変更できればよりよいです。 いろいろ書いてしまい、うまく伝わっているか不安なのですが 処理するデータが多くとても困っています。 お知恵のある方、どなたか助けていただけますと幸いです。 よろしくお願いいたします。

  • フォルダAにアクセスしたらフォルダBにいくように…

    記憶があいまいなんですけど、WindowsXPで プログラムが、あるフォルダAにアクセスしようとしたら、 自動的にフォルダBにアクセスがいくようにする方法があったと思うのですが、 教えていただけますか. (例) 勝手にc:\program files\(←フォルダA)の直下にフォルダCを作ってソフトをインストールするようなインストーラの場合、 d:\program(←フォルダB)等のフォルダ直下にフォルダCを作ってインストールするようにしたい。 分かりにくい説明で申し訳ないです。お願いします。 また、Linuxでも同じようにできる方法があれば教えて下さい。

  • フォルダ内のxlsをシートごとに別ファイルにしたい。

    現在開いているブックのシートごとにブックにするマクロはあったのですが フォルダ内のブックを一気にばらすことはできませんか? ---元--- ./甲.xls(シートa,シートb,シートc) ./乙.xls(シートa) ./丙.xls(シートa,シートb) ---元--- ---先--- ./甲a.xls(シートa) ./甲b.xls(シートb) ./甲c.xls(シートc) ./乙.xls(シートa) ./丙a.xls(シートa) ./丙b.xls(シートb) ※シート名もしくはseqをつけて分割 ---先--- まとめてPDFを作ろうかとしたら複数シートがうまく行かないので 1ブック1シートの形式にできればと思ってます。 (通常時は複数シートがいいので1ファイルづつ作業は考慮したくない) できましたらお願いいたします。

  • excelVBA でA+B列をファイル書き出し

    excel2003の VBA で、開いているシートのA列(項目行)とB列(データ)を抜粋してB列の1行目のセルに入力されているデータをファイル名として新しいEXCELファイル(B列の1行目のセルに入力されているデータ.xls)として書き出したいのです。また、B列以降も、A列+C列で1ファイル、A列+D列で1ファイル・・・のように列にデータが記載されているまでファイルとして書き出したいのです。 このような書き出しVBAを教えて下さい。宜しくお願いします。

  • Aというフォルダの中にフォルダが複数入っており

    Aというフォルダの中にフォルダが複数入っており その中にエクセルファイルが入っています。 旧フォルダの中に旧ファイルが入っているのですが それを新フォルダ、新ファイルに変更したいのです。 変更したいリストは下記の通りです。 つまりAからBのフォルダ名に、CからDのファイル名 にしたいのです。 これが複数あるので一気にフォルダ名とファイル名の置換 をしたいのですが、これをVBAでどのようにすればいいのでしょうか? A        B       C       D 旧フォルダ名 新フォルダ名 旧ファイル名 新ファイル名 A001あ      A002え       A001き     B002こ A002い      A003お       A002く     B003さ A003う      A004か       A003け     B004し

  • 条件付き書式 A1,B1,C1の何れかのセルに「B」があったらA1,B1,C1セルを塗りつぶす。

    Excel2007です。 条件付き書式について教えてください。 画像をご覧ください A1,B1,C1の何れかのセルに「B」があったらA1,B1,C1セルすべてを塗りつぶしたいのですが 「次の数式を満たす場合に値に書式設定」に =OR(A1="B",B1="B",C1="B") と入力し、書式を塗りつぶしにすると 画像のように行1は、A1:B1、行2はA1、行4は、A1:A3と 「B」のある列までしか塗りつぶされません。 行4のように「B」のある行の3列をすべて塗りつぶすには どういう式を設定したらいいのか教えてください。