• ベストアンサー

エクセルのマクロ

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

  • miruu
  • お礼率70% (7/10)

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

  • ベストアンサー
  • taocat
  • ベストアンサー率61% (191/310)
回答No.2

こんばんは。一案です。 ab.xls, cd.xlsとも開かれていて、かつ、 ab.xlsの標準モジュールにこのコードはあるものとします。 Sub Test() Dim Sht3 As Worksheet Dim Rng3 As Range Workbooks("ab.xls").Activate Set Sht3 = Workbooks("cd.xls").Worksheets("Sheet3") Set Rng3 = Sht3.Range("C65536").End(xlUp).Offset(1) Worksheets("Sheet1").Range("A1:A100").Copy Destination:=Rng3 Set Rng3 = Sht3.Range("C65536").End(xlUp).Offset(1) Worksheets("Sheet2").Range("A1:A100").Copy Destination:=Rng3 End Sub オブジェクト変数(Sht3, Rng3)は使用しなくてもいいのですが、それでは1ステップが長くなるので。 以上です。  

miruu
質問者

お礼

ありがとうございました。 うまくいきました。

その他の回答 (1)

  • hiro327
  • ベストアンサー率0% (0/4)
回答No.1

私はExcelで困ると必ず「エクセルの学校」で調べたり質問をさせてもらっています。一度、アクセスしてみて(^^♪

参考URL:
http://www.excel.studio-kazu.jp/
miruu
質問者

お礼

参考にさせてもらいます。

関連するQ&A

  • エクセルマクロについての質問

    エクセルで以下のことが行いたいのですがVBのマクロを 利用すればよいのでしょうか? とても長い説明です。わかりにくいと思います。 マクロは初心者ですのでよろしくお願いします。 行いたいことは二つのエクセルデータを一つにしたいということです。 abc1.xlsの同じ名前がある行とacb2.xlsの同じ名前がある行の一部の 内容をコピーしてabc1.xlsへ同じ名前がある内容へ追加したいのです。 1.【abc1.xls】と【acb2.xls】という二つのデータがあります。 2. すべての作業は【acb2.xls】のある一部の内容を【abc1.xls、Sheet1】へコピーしたい。 3.【abc1.xls、Sheet1、A列】と【acb2.xls、Sheet1、AB~AP列】にはまったく同じ名前があります。 4.【abc1.xls、Sheet1、A列】とまったく同じ名前がある【acb2.xls、Sheet1、AB~AP列】を参照して  【abc1.xls、Sheet1、M列】に列を1つ追加して【acb2.xls、Sheet1】の【AB~AP】の同じ名前をコピーしたい。   ただし必ずしも同じ名前があるとは限らない。   また、万が一同じ名前がacb2.xlsに二つ存在する場合はabc1.xlsに行を追加し内容をコピーできるようにしたい。   (上書きされないようするため) 5. 上に続き【abc1.xls、A列】とまったく同じ名前がある【acb2.xls、AB~AP列】を参照して  【abc1.xls、Sheet1、M列】に列を2つ追加して【acb2.xls、Sheet1】【AとH列】をコピーして貼り付けたい。 6.【abc1.xls、Sheet1、A列】と【acb2.xls、Sheet2、U列】にはまったく同じ名前があります。 7.【abc1.xls、A列】とまったく同じ名前がある【acb2.xls、Sheet2、U列】を参照して  【abc1.xls、Sheet1、M列】に列を1つ追加して【acb2.xls、Sheet2】の【U】の同じ名前のみコピーしたい。   ただし必ずしも同じ名前があるとは限らない。   また、万が一同じ名前がacb2.xlsに二つ存在する場合はabc1.xlsに行を追加し内容をコピーできるようにしたい。   (上書きされないようするため) 8. 上に続き【abc1.xls、A列】とまったく同じ名前がある【acb2.xls、Sheet2、U列】を参照して  【abc1.xls、Sheet1、M列】に列を2つ追加して【acb2.xls、Sheet2】【OとR列】をコピーして貼り付けたい。 9.【abc1.xls、Sheet1、A列】と【acb2.xls、Sheet3、S列】にはまったく同じ名前があります。 10.【abc1.xls、A列】とまったく同じ名前がある【acb2.xls、Sheet3、S列】を参照して  【abc1.xls、Sheet1、M列】に列を1つ追加して【acb2.xls、Sheet2】の【S】の同じ名前のみコピーしたい。   ただし必ずしも同じ名前があるとは限らない。   また、万が一同じ名前がacb2.xlsに二つ存在する場合はabc1.xlsに行を追加し内容をコピーできるようにしたい。   (上書きされないようするため) 8. 上に続き【abc1.xls、A列】とまったく同じ名前がある【acb2.xls、Sheet2、S列】を参照して  【abc1.xls、Sheet1、M列】に列を2つ追加して【acb2.xls、Sheet3】【OとR列】をコピーして貼り付けたい。 以上よろしくお願いします。

  • エクセルマクロの質問です。

    例えば、A.xlsというファイルに01.csv,02.csv,・・・,20.csvといういくつかのファイルからデータを取り出すのですが、A.xlsのシート1の1列目に01.csvの1列目を貼り付けて、01.csvの2列目はA.xlsのシート2の1列目に貼り付けるようにシートをずらして行って、02.csvの1列目はA.xlsのシート1の2列目、02.csvの2列目はA.xlsのシート2の2列目というようにしたいのですが、どのようなプログラムがよいのでしょうか? エクセルマクロ初心者なので説明が不十分かも知れませんがよろしくお願いします。

  • エクセル2000でマクロを作成するのに困っています。

    エクセル2000でマクロを作成するのに困っています。 ↓やりたいこと (1)データを一行コピーする (2)別のファイルを開いて、データを値貼り付けする。  ※値を貼り付けるのは、空白のセルに。 (同じように下の列に値貼りつけを順次行い、データを作成する) ----------------------------------------------------------------------------------------- Sub Macro1() ' ' Aファイルの1行をBファイルのA列が空欄の行へ貼りつけ' 'シートの選択' Worksheets("Sheet3").Activate '行を選択コピー' Sheets("Sheet3").Rows("2:2").Select Selection.Copy 'ファイルを開く' Workbooks.Open Filename:="C:\Documents and Settings\hiro\デスクトップ\Book2.xls" 'ファイル選択' Windows("Book2.xls").Activate 'シートを選択しA列が空欄のセルに貼りつけ' Sheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Offset(1).PasteSpecial xlPasteValues Application.CutCopyMode = False 'ファイルオープン時のシートを選択' Worksheets("Sheet1").Activate 'ファイルを閉じる' ActiveWorkbook.Close SaveChanges:=True '元ファイルに戻る' Windows("100520_一覧.xls").Activate End Sub -------------------------------------------------------------------------------------------- 2003ではうまくいきますが、会社のPCが2000のためか、下記文言でエラーがでます。 'シートを選択しA列が空欄のセルに貼りつけ' Sheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Offset(1).PasteSpecial xlPasteValues Application.CutCopyMode = False ●エラー表示   438 プロパティまたはメソッドをサポートしてません。 どのように入力すればよいでしょうか。 マクロを今まで一度も作ったことがわからないので、本当にわかりません。 よろしくお願いいたします。

  • エクセルマクロでマクロをアクティブにしたくない

    エクセルのマクロをひとつの「マクロA」という名前で、データーファイルからセルに入っている内容などを呼び出しながらまくろAのシートにデーターを貼り付けながら作業をしています。 Workbooks.Open Filename:= _ "C:\Documents and Settings\owner\My Documents\マクロ.xls" Application.Run "マクロ.xls!マクロ" と記載すると、マクロXLSがアクティブになってしまいます。 その為記載に'ActiveWindow.WindowState = xlMinimized と入れたりするのですが、アクティブになるシートがマクロ以外にうまくいかないことがあるのです。 データーシートは、毎回データーが変わる関係で、DATA.xlsがAのときやBのときが発生します。

  • エクセルのマクロ

    以下のマクロを教えて下さい。 よろしくお願いします。 [1] Book1のSheet1のA列のデータを、Book2のSheet1のB列にコピーする(B列の先頭から)。 [2] Book1のSheet2のA列のデータを、Book2のSheet1のB列にコピーする([1]で貼り付けたものの次行から)。 [3] Book1のSheet3のA列のデータを、Book2のSheet1のB列にコピーする([2]で貼り付けたものの次行から)。 *A列はデータがない場合はありません。途中に空行があることもありません。 *[1][2][3]は一括処理で結構です。 *マクロ自体はBook3に作成する予定です。

  • エクセル2007 マクロについて教えてください

    エクセルのデータが2個あります。 それぞれ、ファイル名は 顧客データ.xlsと個別シート.xlsです。 顧客データ.xlsには、10名のお客様の情報があり、A1セルには ID番号 と入力してあり、 A2~A11セルにID番号が入力されています。 『個別シート.xlsにマクロで顧客データ.xlsのデータをコピーし、ID番号のフォルダをデスクトップに新規作成し、ID番号を付けて保存する』マクロを作成中です。 顧客番号が1234のお客様のデータを、個別シートにコピーし、デスクトップに1234というフォルダを新規作成し、その中に 個別シート_1234.xls というファイル名で保存をしたいです。 顧客データを自動でコピーするまではできましたが、それ以降ができません。 MkDir "C:\ Documents and Settings\xxx\デスクトップ\nknk\ID " ChDir "C:\ Documents and Settings\xxxi\デスクトップ\nknk\ID " ActiveWorkbook.SaveAs Filename:="個別シート_" & ID & ".xls" ActiveWorkbook.Close マクロを実行すると『実行時エラー76:パスが見つかりません』とエラーになります。 (フォルダ作成の命令文のところが黄色くなります。) ちなみに、個別シートの指定したセルに、IDはコピーされています。 正しく実行できる文を教えてください。また、以降の命令文は正しいでしょうか。 よろしくお願いします。  

  • 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マクロを作成中なのですが、できなくて困っております。 有識者の方、助けを貸してください。 よろしくお願い致します。

  • エクセルのマクロで」・・・

    マクロの超初心者です。 1度研修で習った程度です。 a.xlsというブックでマクロを動かし、 既にいくつかシートがあるb.xlsを開いて最後のシートの次に新しいシートを作り、 既にあるc.xlsの1つ目のシートにあるデータをb.xlsの新しく作ったシート に貼り付け、b.xlsとc.xlsのブックは閉じるようにすることはできますか?(b.xls,c.xlsは最初閉じている) どのような感じにa.xlsでマクロを組めばよいのでしょうか? 今起動しているブックではないブックを起動したりできるのかも不明です。

  • excel2003 VBAマクロの作成

    すいません、下記のような条件を満たすマクロのサンプルコードをお願いします。 ■前提条件 ・「検索元データ」はマクロ.xlsの中にある ・「検索先ファイル」は管理ファイル.xlsである ・マクロ.xlsファイルのA列にはデータがn個ある(セル範囲A2:A(n+1)まで) ・C:\one\two\three\管理ファイル.xls のフォルダ位置である(絶対パスで指定する) ・管理ファイルの中にはSheet1,Sheet2,Sheet3・・・・Sheet10の10コのシートがある ■マクロでしたいこと (1)A列のデータが管理ファイル(ブック内)に記載されているかチェックする (2)A列のデータをチェックしたら、下記の通りに列にチェック情報を記載する B列 データがいくつあったか(管理ファイルに記載されていない場合は0と表示) C列 データが記載されているシート名(B列が0の場合は0と表示) (3)次のデータへ (4) (1)-(3)をA列のデータがなくなるまで繰り返す (5)データがなくなったら終了(保存せず閉じない) 以上です。 よろしくお願いします。

  • 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)以下、フォルダ内の全ファイルについて、同じ処理を繰り返し、   すべて貼り付け終えたら、完了。 宿題の丸投げのようで申し訳ないのですが、ご教示いただけると 幸いです。よろしくお願いします。

専門家に質問してみよう