Excelマクロの記述方法について

このQ&Aのポイント
  • Excelマクロの記述方法についてお尋ねします。以下の要件に基づいて、フォルダ内の複数のExcelファイルに対して特定の処理を実行するマクロを作成したいです。具体的には、AAA.xls、BBB.xls、CCC.xlsなどのファイルを指定のフォーマットに合わせて貼り付けたいのですが、具体的な記述方法が分かりません。お手数ですが、ご教示いただけますでしょうか?
  • Excelマクロの記述についてお伺いします。特定のフォルダ内に複数のExcelファイルがあり、それぞれのファイルに対して特定の処理を行いたいと考えています。具体的には、各ファイルの特定の列を選択し、別のExcelファイルに貼り付けたいのですが、どのように記述すれば良いのか分かりません。お知恵をお貸しください。
  • Excelマクロについて質問があります。指定のフォルダ内に複数のExcelファイルがあり、それぞれのファイルに対して特定の処理を行いたいです。具体的には、各ファイルの特定の列を選択し、別のExcelファイルに貼り付ける処理を自動化したいですが、どのように書けば良いのか分かりません。ご教示いただけますでしょうか?
回答を見る
  • ベストアンサー

EXCEL マクロ どう記述したらよいですか?

お世話になります。 まったくの素人です。 以下のような処理をしたいと考えております。 1)1つのフォルダに AAA.xls BBB.xls CCC.xls・・・をまとめておきます。   それとは別に、フォーマット.xls を用意します。 2)AAAを開き、aというシートにある列(1列)を選択、コピーし、   フォーマットの 【F列】 に 【値貼り付け】 で貼り付ける。   AAAは閉じる。 3)BBBを開き、aというシートにある列(1列)を選択、コピーし、   フォーマットの 【G列】 に 【値貼り付け】 で貼り付ける。   BBBを閉じる。 4)CCC・・・(aというシート名は固定、コピーする列も固定で1列のみです)。 5)以下、フォルダ内の全ファイルについて、同じ処理を繰り返し、   すべて貼り付け終えたら、完了。 宿題の丸投げのようで申し訳ないのですが、ご教示いただけると 幸いです。よろしくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

段取り: フォーマット.xlsにマクロを登録して実行し、データを吸い上げることにする フォーマットと他のブックは同じフォルダに放り込んでおくことにする 各ブックの「ある列」じゃ話にならないので、とりあえず「A列」を吸い上げることにする 原則として「どのブックから」取ってきたのを「どの列に」配置するか「指定は無い」事にする 例えばF列に転記されたデータが「実際にどこから取ってきたモノだったのか」の情報は「別に要らない」ご相談になっていますが、それじゃあんまり使いにくいので1行目にファイル名を記録し、2行目からデータを転記する事にする(余計なお世話なので、不要なら適切にマクロを修正してください) 手順: フォーマット.xlsを開く ALT+F11を押す 現れた画面で挿入メニューから標準モジュールを挿入する 現れたシートに下記をコピー貼り付ける sub macro1()  dim myPath as string  dim myFile as string  dim c as long  dim LastRowr as long  application.screenupdating = false  mypath = thisworkbook.path & "\"  myfile = dir(mypath & "*.xls")  range("F:IV").delete shift:=xlshifttoleft  c = 6  do until myfile = ""   if myfile <> thisworkbook.name then    workbooks.open filename:= mypath & myfile    lastrow = worksheets("a").range("A65536").end(xlup).row    thisworkbook.worksheets(1).cells(1, c) = myfile    thisworkbook.worksheets(1).cells(2, c).resize(lastrow, 1).value = worksheets("a").range("A1").resize(lastrow, 1).value    workbooks(myfile).close false    c = c + 1   end if   myfile = dir()  loop  application.screenupdating = true end sub ファイルメニューから終了してエクセルに戻る マクロを実行する

tokyoboy
質問者

お礼

回答有難うございます。 少し削除・追加等しまして、うまく実行できました! あと細かい部分は自分で勉強したいと思います。 大変助かりました。有難うございました。

関連するQ&A

  • excelマクロ 別ファイルの特定列をコピーしたい

    C:\testの配下にexcelファイル「aaa.xls」「aaa_yyyymmdd.xls」「bbbxls」があります。 「aaa_yyyymmdd.xls」は「aaa.xls」のバックアップファイルです。 又、「bbbxls」にマクロを記述しようと思います。 ☆処理内容☆ 「aaa.xls」「aaa_yyyymmdd.xls」が開いていない状態で、「aaa.xls」のシート「sheet1」内の E列をコピーして「bbbxls」のシート「sheet3」のA列に貼り付け。 「aaa_yyyymmdd.xls」のシート「sheet1」内の E列をコピーして「bbbxls」のシート「sheet3」のB列に貼り付け。 その後、張り付けたA列を正としB列と比較して、差異があった場合はB列の差異があった部分の セルに色つけをした後、「aaa_yyyymmdd.xls」をC:\test:\oldフォルダに移動する。 上記のようなexcelマクロを作成中なのですが、できなくて困っております。 有識者の方、助けを貸してください。 よろしくお願い致します。

  • VBA どのように記述すれば良いか教えてください。

    はじめて、質問させていただきます。 まだExcel VBAの勉強を始めたばかりの者です。 下記のようなツールを作ることになったのですが、非常に困っています。どなたかわかる方がみえましたら、どうか教えて下さい。(Excel2003を利用) <すべてAという同じフォルダ内> book1.xls book2.xls ・  ・ book*.xls →ファイル数は変動します。集計.xls以外のファイルはすべて同じシート名で構成されて         います。すべてのファイルのシート名 ”結果”が対象です。 集計.xls →このファイルにマクロを作りたいです。        シート名が1、2、3・・と116まで用意されています。 __________________________________________________________________________________________________________________________________ Aフォルダ内の複数ファイルの同じシート名(”結果”)というシートのみコピーをし、同じフォルダ内のファイル「集計.xls」のシートへ値貼り付けをしたいのですが、 一番初めにコピーしたシートを「集計.xls」の1という名のシートへ値貼り付け、2番目にコピーしたシートは「集計.xls」の2という名のシートへ値貼り付け。。3番目にコピーしたシートは「集計.xls」の3という名のシートへ値貼り付け。。というのを、シート数分繰り返す。。という記述を教えて頂きたいのです。 ループ??ですが、【一番初めにコピーしたシートを「集計.xls」の1という名のシートへ値貼り付け】 次に【2番目にコピーしたシートは「集計.xls」の2という名のシートへ値貼り付け】というのを一連の流れにしてループ処理したいのです。 こんなこと出来るのでしょうか??  初心者とはいえ丸投げは駄目だと、1週間ほどネットやいろいろなテキストで自分で何とかできないかと頑張ってみたのですが、部分部分しか記述できず時間だけが過ぎていき。。すっかり行き詰ってきてしまいました。 どうかお力を貸してください。宜しくお願い致しますm(uu)m

  • エクセルでブック間のシートの合体?教えてください。

    エクセルの作業で困っちゃいました。 同じホルダー内に 0210A.xls、sから0309A.xlsの12種類 0210B.xls、sから0309B.xlsの12種類 0210C.xls、sから0309C.xlsの12種類 0210D.xls、sから0309D.xlsの12種類 の48のブックがあります。(0210は2002年10月の意味です。) 各ブックは複数のシートを持っており、各ブックに共通してあるのは「AAA」、「BBB」、「CCC」の3種類で、それ以外のシートもあります。シートの順番は各ブックによりまちまちです。 これらのブックの共通する3種類のシートだけを合体して 0210AB.xlsから0309AB.xlsの12種類、(AとBの合体) 0210CD.xlsから0309CD.xlsの12種類、(CとDの合体) の24種類のブックを作りたいのです。 各ブックは「AAA」、「BBB」、「CCC」の3シートを持ちます。中身はオリジナルの各「AAA」、「BBB」、「CCC」の単純な寄せ集めです。 データは各シートとも1行目に項目、2行目以降にデータで、列はAF列まで使用しています。データの個数はまちまちで、オートフィルターを使用しています。 たとえば、0210A.xlsのシートAAAが200行であれば0210BのシートAAAのデータの一行目の項目は不要ですので2行目から最終行までコピーして201行以降に貼り付けるという感じです。同様にシートBBB、シートCCCも処理します。各シート1行目はオリジナルと同じ項目名とします。 手作業でやろうと思いましたが、誤りの発生もこわいのでVBAなどでうまくできる方法はないでしょうか?わたしのVBAの知識はマクロ自動記録ができるくらいなので助けてほしいのです。 Windows2000でエクセルも2000です。 よろしくお願いしま~す。

  • Excel 条件に一致したセルの隣のセルを返す

    エクセル初心者です。どうかご指導ください。 シート1の処理1・処理2・処理3に、シート2で一致したコードの隣の値を返したいのですが可能でしょうか? シート1                 シート2 コード 処理1 処理2 処理3   コード  処理名  1   AAA               1   AAA  2   BBB AAA           2   BBB  3   BBB               3   BBB  4   CCC AAA           2   AAA  5                      4   CCC                         4   AAA

  • エクセルのマクロ

    以下の処理をするマクロを教えて頂きたいのですが。 ファイルab.xlsのSheet1のA1からA100までのデータを、ファイルcd.xlsのSheet3のC列にコピーする。 ただし、Sheet3のC列には既にデータが入力されているので(空欄も有)、一番末端に付け足す形にする。 続けて、ファイルab.xlsのSheet2のA1からA100までのデータを、ファイルcd.xlsのSheet3のC列に、前と同様のやり方でコピーする。 宜しくお願いいたします。

  • マクロを使用しての重複チェックについて

    ここの質問にCOUNTIFや条件式書式などでデータの重複チェックを する内容はあるのですが、ちょっと思ってるのと違うので 質問します。 A列 B列 1 aaa 1 aaa 2 aaa 2 aaa 3 bbb 3 bbb 4 ccc 4 ccc 上記のように8行のデータがあります。 条件で、A列の数字が同じ数字でB列が同名の場合は、 チェック対象外で、A列の数字が違う数字でB列が同名の場合 (上記でいうと1 aaa と 2 aaaの場合)は、重複で対象行を 網掛けをするという処理を作りたいのですが、そういうことって できるのでしょうか。 まずは、値を明示的にやるべきだと思いますが、 理想としては、A1とA2が同じ値でB1とB2の値が一緒の値だったら 処理なし。 A1とA2の値が違う値でB1とB2の値が一緒の値だったら 重複っていうような処理を行えたら幸いです。 理由は、どんどんなデータ(行)を追加することを想定させた場合を 考えております。 参考になるのがありましたら教えてください。

  • 参照先をセルに入力して、他のブックのセルを参照する方法

    Excelで、他のブックのセルを参照したいです。 たとえば、あるExcel(test.xls)上から、別のフォルダにある複数のブック C:\AAA.xls D:\BBB.xls の値を参照する場合ですが(AAA.xlsとBBB.xlsは、値の内容は違うが、同じシート名の同じセルに値が入っている)、 test.xlsのSheet1のA1に「C:\」、A2に「AAA.xls」を入力すると、test.xlsのSheet2にはAAA.xlsの値を表示し、 test.xlsのSheet1のA1に「D:\」、A2に「BBB.xls」を入力すると、test.xlsのSheet2にはBBB.xlsの値を表示するような方法です。 参照先が固定であれば、='C:\[AAA.xls]Sheet名'!D5・・・のような指定ができるのですが、参照するファイル名とパス名が都度変わるので、入力したセルの値で参照先を変えたいのです。 ちなみに、INDIRECTを使うやり方も考えましたが、参照先のブックを開いていないと値が表示されないようなので、却下されました。 (参照先のブックは開かなくても値を参照させたいです) どなたかご存知の方がいらっしゃったら、教えてください。 よろしくお願いします。

  • VBA の Application.Run でエラー発生

    独学で勉強したVBAなのですが、とても困っています。 AAA.xls BBB.xls CCC.xls というファイルがあるとします。 AAAを起動すると、BBBを起動して、 Application.Run "'BBB.xls'!TEST" で、BBBのTESTを実行するようにしています。 TESTを実行すると、 Workbooks.Open filename:=ActiveWorkbook.Path & "\CCC.xls", Password:="XXX", WriteResPassword:="XXX", ReadOnly:=True でCCCを起動して、CCCのシートの値をBBBにコピーしてくるようにしています。この一連の処理において、 「実行時エラー'2147352567(80020009)' 'Run'メソッドは失敗しました:'_Application'オブジェクト」 が発生します。 これらは共有サーバー上で動作させているのですが、 困ったことに、エラーが発生する人と、そうでない人がいます。 理由が全くわからず、非常に困っています。 教えていただけたらとても助かります。 何卒よろしくお願いいたします。

  • エクセルのマクロ【複数検索&検索結果の合計】

    以下のように 【sheet1】にA列B列からなるデータにおいて A列の内容が同じものどうしのB列の値を合計し その結果の大きい順に並べて 【sheet2】に出力するマクロを 作りたいのですが、どうしたらよいかわかりません。 どなたかお分かりになる方いらっしゃいましたら 教えて頂きたくお願い致します。 【sheet1】   A列    B列 aaa 5 bbb 4 aaa 3 aaa 2 ccc 89 bbb 100 【sheet2】 A列 bbb 104 ccc 89 aaa 10

  • 現在、以下のような処理のマクロ[EXCEL2000]を作成しております

    現在、以下のような処理のマクロ[EXCEL2000]を作成しておりますが、 今月から初めて携わる分野なので四苦八苦しております。 お力添えをお願いいたします。 なお、下記に出てくるディレクトリに関しては、今後変更も考えられますので コンフィグファイルを別途用意して指定するように作成します。 以下、処理の流れです。 (1)Aと言うディレクトリに以下のようなCSVファイルが格納されています。 ※例  20100201_AAA.csv  20100201_bbb.csv  20100201_ccc.csv  20100202_AAA.csv  20100202_bbb.csv (2)日付選択画面にて指定の日付を選択し、作成ボタンを押下します。  ※添付ファイルの画像参照 (3)指定された日付からAに格納されているCSVファイルを選択し、  対象ファイルのデータを新規EXCELファイルにコピーします。  ※例   2010年2月1日を選択した場合、以下のファイルが対象となります。   20100201_AAA.csv   20100201_bbb.csv   20100201_ccc.csv (4)新規EXCELファイルをCSVファイルと同名でBのフォルダへ保存します。  ※例   20100201_AAA.xls   20100201_bbb.xls   20100201_ccc.xls (5)終了 このような流れになっていますが、日付指定の画面作成から すでに躓いております。 お手数ですが、ご教授いただけますと助かります。 また今後の勉強のために、お勧めのサイトなどございましたら 教えていただけると幸いです。 それではよろしくお願いいたします。

専門家に質問してみよう