• 締切済み

エクセルのマクロを使用して

マクロ初心者です。 エクセルでマクロを使用して次のようにやりたいんです。 ファイル1の入力画面にあるデータをファイル50にコピーする。 次にファイル2のデータの入力画面にあるデータをファイル50にコピーする。 以下ファイル49までのデータをコピーする。 コピー先のファイル50は行を変えて各データごとに横に展開する。 【ファイル1~ファイル49までの書式や行列幅、計算式はすべて同じです。データが違うだけです。】 【ファイル50ではコピーされたデータを使用して、また別の計算をやります。】 データをコピーするのはなんとなく分かるのですが、行をかえてコピーする方法が分かりません。空白行を上から探して、見つかったらその場所を起点としてコピーすればいいような気がしますが マクロに詳しい方よろしくお願いします。

みんなの回答

回答No.2

ファイルというのは、シートでなくBookのことだと考え てお答えします。 つまり、Book1-49の各テーブルをBook50の集計用シートに 順番にただ転記して大きな集計用のシートを作って、その後、再計算したいということですね。 VBAで処理するには、各Bookを一つのフォルダに集めた方が 簡単です。 各テーブルの見出し行を除いた範囲を取得して再定義して転記するコードは、以下のとおりです。 転記先の最新レコード位置を取得する Set sakiRng = Range("A65536").End(xlUp).Offset(1) 見出し行を除いた範囲を再定義 Set motoRng = motoRng.Rows("2:"&motoRng.Rows. Count) 転記 motoRng.Copy sakiRng コードとしては、こんな感じですが参考になりましたか?

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

> 行をかえてコピーする方法が分かりません。 ヒントだけ Sub Test1()  Range("A65536").End(xlUp).Offset(1, 0).Select End Sub でA列の最終データの一つしたを選択します。

関連するQ&A

  • エクセル マクロ

    エクセルでマクロを組んでるのですがシート1のデータをコピーしてシート2のデータを入力している最終行の次の行にコピーしたいのですが最終行まではEND 下⇒キーで行くのはわかりますが、その次の空白行への移動のやり方がわかりません

  • EXCELのマクロがわかりません・・・

    現在、A列にデータが並んでいるのですが、 これを7つ区切り(例:A1~A7、A15~A21)にして、 別シートに用意した表に行列を入れ替えて、 貼り付けるマクロを作っているのですが、 なにぶんVBは素人ですので、よくわかりません。 今作ろうとしているマクロは、 「元データ」セルのA1からA7までをコピーして、 「作成データ」セルのB2を起点として、 コピーした内容の行列入れ替えを行い貼り付け、 以後、「元データ」のコピー範囲を7つづつ 下にずらし、「作成データ」の貼り付け起点を 1つづつ下にずらして、「元データ」のA列の 最後までくりかえすものです。 必ず「Range」文で引っかかってしまうのですが、 何か構文的におかしいでしょうか? かなり急ぎですので、 わかる方、よろしくお願いしますっ!! 下に、作成したマクロを貼り付けます。 Sub Macro3() ' ' Macro3 Macro ' マクロ記録日 : 2005/12/5 ユーザー名 : *** Worksheets("元データ").Activate 開始行 = -6 終了行 = 0 ペースト行 = 0 Do 開始行 = 開始行 + 7 終了行 = 終了行 + 7 ペースト行 = ペースト行 + 1 開始セル番号 = "A" & 開始行 終了セル番号 = "A" & 終了行 ペーストセル番号 = "B" & ペースト行 Range("開始セル番号:終了セル番号").Select Selection.Copy Sheets("作成データ").Select Range(ペーストセル番号).Select Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _ , Transpose:=True Loop End Sub

  • エクセルのマクロ(指定列の空白にひとつ上の文字を入力し続ける)

    エクセルのマクロを教えてください。 指定列の空白にひとつ上の文字を入力し続けるマクロです。 A列指定 A2からスタートし、1000行くらいあるデータ 空白があった場合ひとつ上の文字を入力 空白は、2行連続・3行連続となることもあるが大抵は1行空白 この場合、空白セルの上で一番近いデータをコピーする A列のデータは、文字・数字・日付と様々 1000行ある場合もあるが、それ以下の場合もあるので、10行空白が続いたらマクロが自動的に終了 エクセル2003使用 よろしくお願いいたします。

  • マクロを使用し、EXCELのデータから必要な部分を取り出し2つのsheetに貼り付けたい

    条件 EXCELのデータ A列からL列まで 複数行(行数は、決まっていない) (例) 40行ほどあるデータを見て 1行目から10行目までをsheet1に 12行目から20行目までをsheet2に貼り付けたい場合。 11行目のA列(空白になっている)に手入力で「a」と入力 21行目のA列(空白になっている)に手入力で「b」と入力し、 1行目から「a」のある行までをコピーし、sheet1に貼り付ける 「a」のある行より1行下から「b」のある行までをコピーし、sheet1に貼り付ける 以上のことをマクロで実行する方法を教えて下さい。

  • エクセル マクロでの繰り返し処理について

    エクセル初心者です。エクセル2010を使用しています。 とあるホームページから、ページをコピーして、エクセルに「テキストで貼り付け」をおこない、 A列に8行の項目が入ります。この8行と次の8行の間には、自然に空白行が1行ずつ入ります。 これは、完全に手作業です。 次に、下記の作業を、マクロの自動記録を相対参照で行います。 上記のエクセルのデータを、1つめの8行のデータをコピーして(A1からA8)、C1に「行と列を入れ替え」を選択してC1からJ1に貼り付けます。 その後は、次のデータのまとまりのA10のセルに移ります。これをCtrl+a を押し続けることで、数百件か多いときは4000件ほどの並べ替えをしています。 「データがある間は、この処理を繰り返す。」 というマクロにしたいのですが、参考書等を見ながらチャレンジしてもうまくいきません。 わかる方、教えていただけますか。 以下が、マクロの自動記録でできた物です。データの個数は数百のこともあれば4000件のこともあります。 Sub 行列入れ替え8行() ' ' 行列入れ替え8行 Macro ' ' Keyboard Shortcut: Ctrl+a ' ActiveCell.Range("A1:A8").Select Selection.Copy ActiveCell.Offset(0, 2).Range("A1").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True ActiveCell.Offset(9, -2).Range("A1").Select End Sub どうぞ、ご指導よろしくお願いいたします。

  • マクロで範囲を可変でループするには?

    エクセルマクロで次のようなことをしたいのですが、どなたか教えてください。 A列の空白行までを1グループにして行列を入れ替えCからコピー をA列のデータがなくなるまで繰り返す。 よろしくお願いします。 例: セルA : B : C : D : E :   1あ      あ  い  う  2い      え  お  3う       か  き  4  5え  6お  7  8か  9き

  • エクセルマクロ 別シートへ行列を入れ替えてコピペ

    下記内容のエクセルのマクロをご教示いただきたいと存じます。 ①「data」シートのB2からデータが入力されている最終行までをコピー(20行目までデータが入力されていたとすると、B2~B20をコピー。最終行は不定) ②「result」シートのE列のデータが入力されている最終行の次行に①のデータを行列を入れ替えてペースト(E列のデータが19行目まで入力されていたとすると、「E20」セルに①のデータ<この場合だと、「data」シートのB2~B20のデータ>を行列を入れ替えてペースト。「result」シートのE列の最終行は不定)

  • エクセル マクロで別シートのフォームをコピーしたいのですが。

    マクロの初心者です。 毎月送られてきますデータファイルに、定型フォーム(計算式の入った20行程度のもの)を追加したいと思っています。 毎月のデータが入っているファイルを開いておいて、 次に定型フォームのファイルを開き、コピーしたい行を選択・コピーするところまで出来たのですが、毎月のデータファイルが名前が毎月変更されるため、どのように指定をしてアクティブにしたらよいのかわかりません。 定型フォームのファイルをアクティブでなくする方法などがあるのでしょうか。よろしくお願いいたします。

  • エクセルで、コピーに関するマクロ

    CC列に入力されている文字列を以下のようにコピーしたいのですが。 CC1からCC100まで、順番にコピーしていきます。途中に空欄のセルもありますが、それはコピー対象から外します。 コピーの形式と貼り付ける場所ですが、CC1が"school"なら、A1に"s"、B1に"c"、C1に"h"、D1に"o"、E1に"o"、F1に"l"と、横に連なる形でコピーします。 次にCC2が"dog"なら、A2に"d"、B2に"o"、C2に"g"というふうに、先ほどの下の行にコピーします。 次のコピー対象に対しては、A3が貼り付けの起点となります。その次の起点はA4ですが、その次はM1が起点になります。M2、M3と起点が移り、M4までいくとその次はY1が起点となります。Y2、Y3と起点が移り、Y4までいくと次はAK1が起点となり、以後4行ごとに列が変わっていきます。 コピー対象セル内の文字数が13文字以上になると、以後のコピー時にかぶさってしまう部分が発生しますが、それはそれでかまいません。 コピー対象の列は常にCCで、範囲は常に1~100です。また、貼り付けるセルの出発点は常にA1です。 コピー対象セルの数が多いと、CC列にも貼り付けられてしまいますが、実際は空欄セルが多いのでCC列に貼り付けられるケースはまずあり得ません。そういうケースが生じた場合はそのままでかまいません。 上記のことができるマクロを教えてもらいたいのですが。

  • 【Excel2003】コピーするマクロ

    【Excel2003】コピーするマクロ Excelファイルで以下のようなデータがあります。   A       B 1 佐藤雄一 2 男 3 (空白行) 4 山本優子 5 女 6 (空白行) 7 ・・・ 8 ・・・ 9 (空白行) 上記のようなデータを下記のように変更したいです。 マクロ等を使用し、楽に修正するやり方を教えて下さい。 マクロを使用しなくても楽に修正する方法があればそれでも良いです。 分量が膨大なのでよろしくお願いします。   A       B 1 佐藤雄一  男 2 山本優子  女 3 ・・・     ・・・

専門家に質問してみよう