EXCEL VBA ワークシート貼り付け

このQ&Aのポイント
  • 元データの左から5番目のワークシートをコピーし、同じフォルダ内のエクセルデータに貼り付ける方法
  • EXCEL2000のVBAを使用して、元データの左から5番目のワークシートをコピーし、同じフォルダ内のエクセルデータに一番左に貼り付ける方法
  • EXCEL2000のVBAを使って、元データの5番目のワークシートをコピーし、同じフォルダ内のエクセルデータに貼り付ける方法
回答を見る
  • ベストアンサー

EXCEL VBA ワークシート貼り付け

EXCEL2000のVBAを使用して 元データーの左から5番目のワークシートをコピーして 同じフォルダー内にあるエクセルデーター(10個)の 一番左に貼り付けたいのですがVBAの処理で出来ますでしょうか? 実施する処理は元データーの左から5番目のワークシートを コピーして貼り付けたいデーターを開いて 開いたデーターを移動先ブック名に指定して一番左に元データーの 左から5番目のデーターを貼り付けて 処理が終了したら移動先ブックを閉じて次のデーターも 同じことを行いフォルダー内のデーター全てに同じ処理を 行ったら終了する? 文面だけの説明で大変申し訳ないのですがご教授していただけないでしょうか?

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

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

こんな感じ? Sub test() Dim MyPath, MyBook, MyName MyPath = ThisWorkbook.Path & "\" MyBook = ThisWorkbook.Name MyName = Dir(MyPath & "*.xls") Do While MyName <> "" If MyName <> MyBook Then Workbooks.Open Filename:=MyPath & MyName Workbooks(MyBook).Worksheets(5).Copy Before:=Workbooks(MyName).Sheets(1) Workbooks(MyName).Save Workbooks(MyName).Close End If MyName = Dir Loop End Sub

77TAKETAKA
質問者

お礼

たいへん助かったのに返答が遅れてすみません。 宜しくお願いいたします。

その他の回答 (2)

  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.3

実施する処理は元データーの左から5番目のワークシートを コピーして貼り付けたいデーターを開いて 開いたデーターを移動先ブック名に指定して一番左に元データーの 左から5番目のデーターを貼り付けて 処理が終了したら移動先ブックを閉じて次のデーターも 同じことを行いフォルダー内のデーター全てに同じ処理を 行ったら終了する? これをそのままコード化すればいい。 何がわからんの?

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

>5番目のワークシート Sheets(5) で捕まえられる。Sheets(5).Copy >フォルダー内にあるエクセルデーター(10個)の エクセルデータとは? エクセルのそれぞれ別ブック10ファイル? どのようにしてプログラムで10個のブックを見つけるのか。? >一番左に貼り付けたいのですが 各ブックのSheets(1)のこと? >開いたデーターを移動先ブック名に指定して??? >一番左に元データーの 左から5番目のデーターを貼り付けて??? ーー >文面だけの説明で大変申し訳ないのですがご 言葉だけでは判りにくい。判りにくいことが判っているなら、 ブックーシートーセルとセルの値を挙げて質問を書くこと。 ーー どこまで勉強が済んでいるのか。 なにか甘えた丸投げ的質問のように思う。

77TAKETAKA
質問者

お礼

ご指摘のどうり甘えてるところがありましてすみませんです。 わかり限り書き込むようにいたします。

関連するQ&A

  • EXCEL VBA ワークシートのコピーについて

    seaclearsky8です。 一つのブックに何枚ものワークシートを追加して保存するVBAについて ご教授、よろしくお願いします。 コピー元  MASTER Book MASTER Workseets コピー先 Copy Book copy Worksheets コピー元にはワークシートがMASTERワークシートの一枚しかありません。 その一枚のワークシートに値をVBAで入れていき処理し コピー先のコピーBOOKにワークシートをコピーしていきたいです。 しかし、MASTERBOOKの処理が何通りかあり、 コピー元の一枚のワークシートに 処理別にデータを写し コピー先BOOKに          ワークシート名 ワークシート1 処理1ワークシート  ワークシート2 処理2ワークシート ワークシート3 処理3コピー元ワークシート3 という具合にワークシートを複数コピーしたいのですが 処理ごとにデータを代入し、コピー処理はできるのですが。 コピー先BOOK ワークシート3 処理3ワークシート だけしかコピーされてないBOOKが作成されます。 上書きされているのだと思われます。 対処法が調べましたが見つけられていません。 すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

  • EXCEL VBA ワークシートのコピーについて

    seaclearsky8です。 一つのブックに何枚ものワークシートを追加して保存するVBAについて ご教授、よろしくお願いします。 コピー元  MASTER Book MASTER Workseets コピー先 Copy Book copy Worksheets コピー元にはワークシートがMASTERワークシートの一枚しかありません。 その一枚のワークシートに値をVBAで入れていき処理し コピー先のコピーBOOKにワークシートをコピーしていきたいです。 しかし、MASTERBOOKの処理が何通りかあり、 コピー元の一枚のワークシートに 処理別にデータを写し コピー先BOOKに          ワークシート名 ワークシート1 処理1ワークシート  ワークシート2 処理2ワークシート ワークシート3 処理3ワークシート という具合にワークシートを複数コピーしたいのですが 処理ごとにデータを代入し、コピー処理はできるのですが。 コピー先BOOK ワークシート3 処理3ワークシート だけしかコピーされてないBOOKが作成されます。 上書きされているのだと思われます。 対処法が調べましたが見つけられていません。 すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

  • Excel2007でBOOK間のシート移動をVBAで行うとエラーになる

    Excel VBAで開発されたソフトの改造を行ってますが、Excel2007で動作しないマクロがあり困ってます。 <開発環境> ・WindowsXP Pro SP3 ・Celeron 540(1.8GHz) ・メモリ1GB ・Excel2007 SP1 (Microsoft Office2007) 改造元ソフトはOffice2000で開発されており、Excel2007で動作するとマクロエラーが発生する処理があります。 因みにまだソフト改造はしてなく、そのままExcel2007で動作させるだけでマクロエラーが発生します。 発生する箇所はVBAで開発されており、下記のコマンドです。 Sheets(移動元シート名).Move Before:=Application.Workbooks(移動先ブック名).Sheets(1) 異常の内容は下記になります。 ------------------------------- ?err.Description 移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入できません。データを別のブックに移動またはコピーするには、データを選択して、[コピー] コマンドと [貼り付け] コマンドを使用して移動先またはコピー先のブックのシートに挿入してください。 ?err.Number 1004 ------------------------------- 移動元BOOKは1シート、移動先BOOKは1シートあります。 これをExcel2000で実行すると正常にシートが移動できます。 (移動元BOOKのシートがなくなりBOOKが終了して、移動先BOOKは2シートになります) Excel画面の移動元シートを選択して、右クリックメニューの「移動またはコピー」で移動先ブックを指定して移動すると 「移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入できません。データを別のブックに移動またはコピーするには、データを選択して、[コピー] コマンドと [貼り付け] コマンドを使用して移動先またはコピー先のブックのシートに挿入してください。」 とVBAから実行した時と同じ内容のエラーダイアログが表示されました。 (Excel2000では手動でも移動できました) Excel2007では1シートで構成されたBOOK間の移動はできないのでしょうか? また、これをVBAで対策しようとした場合にどうしたら良いのでしょうか? ネットで調べましたが判らず、ここで質問させて頂きました。 判りにくい説明で申し訳ありませんが、よろしくお願いします。

  • ワークシートを移動するVBAをご指導ください。

    現在、下記状態でワークシートの移動を手動で行っています。 このように作成した実績ワークシートの五つ目を、移動ボタンをクリックした時、 実績フォルダーの年度別フォルダーの月別Bookに、 1月から昇順に移動したいと考えております。 その方法、手順等をご指導お願い申し上げます。 尚、移動するとき移動先のBookを開かなければならないのら、その方法もお願い申し上げます。 (1) 実績作成フォルダー    (2) 実績作成Book       (3) 実績ワークシート →  ワークシート名は日付です(例 11-11-20) (1) 実績フォルダー(移動先)    (2) 年度別フォルダー (例 2011年度)       (3) 月別Book  (例 11-11)          (4) 実績ワークシート (例 11-11-20)       (3) 月別Book(例 11-12)          (4) 実績ワークシート (例 11-12-01)    (2) 年度別フォルダー (例 2012年度)       (3) 月別Book  (例 12-01)          実績ワークシート (例 12-01-05)       (3) 月別Book  (例 12-02)          実績ワークシート (例 12-02-01)

  • ワークシートを別ファイルにコピー出来ない

    エクセル2010です。 コピー元ファイルを開き、ファイルメニュー→新規→空白のブック により新ファイルを開き、コピー先ファイルとして名前を付けて保存、 コピー元ワークシートを選択しシートコピーしようとすると、以下のエラー表示があります。 文面忘れましたが、 コピー元とコピー先でワークシートの行列数が異なるため、コピー出来ない。ワークシートでなくデータを選択し、コピー&ペーストせよ。 ちなみに、作成したコピー先ファイルを一旦閉じて再度開くと、何故か普通にワークシートコピー出来ます。 メッセージに従うとセル幅や印刷範囲の設定がコピーされないので、やりたくありません。 普通にシートコピーしたいのです。一旦閉じて再度開くなどという動作は回避出来ないのでしょうか?

  • エクセルVBA ワークシート操作について

    エクセル2000 VBAで ワークシートが左から順番に 入力フォーム⇒加工費単価マスタ⇒出荷日報(原紙)と 3個あり4個目に出荷日報(原紙)をコピーしたワークシートを 入力して⇒テキストボックス1 (日付入力します出来れば、日付入力の指定方法⇒テキストボックスの入力制限方法も教えていただきたいです)に入力した名前を ワークシートに付けて保存したいのですが? 翌日は また左から4番目の位置にコピーされ 右に行くほど古い日付の順番にしたいです。 説明が不足していましたら連絡お願いします。

  • エクセルのシートコピーのエラー

    Windows7 エクセル2007です。 ブック間のシートコピーでエラー発生し挿入できません。原因と挿入方法お願いします。 エラーメッセージ; ------------------------------- 移動先またはコピー先のブックの行列数が元のブックの行数列よりも少ないため、シートを移動先またはコピー先のブックに挿入されません。 データを別のブックに移動またはコピーするにはデータを選択して、「コピー」コマンドと「貼りつけ」コマンドを使用して移動先またはコピー先のブックのシートに挿入してください。 ----------------------------------- やりたいこと; ファイル名AAAの一つのシートをファイル名BBBのシート末尾にコピーしたい。

  • シートの移動が出来ません。

    エクセルのシートを別のブックに移動が出来ません。「コピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入出来ません。データを別のブックに移動またはコピーするにはデータを選択してコピーコマンドと張り付けコマンドを使用して移動先またはコピー先のブックシートに挿入して下さい。」と表示されます。この意味がいまいちわかりません。移動元が2つのシートにわけられ、ひとつのシートにサムイフ関数が入っています。なぜ行列数が違ってしまうのでしょうか?

  • 《エクセル2000》VBAの処理が遅いのはなぜ?

    ここのサイトの皆さんのご協力により、何とかVBAが完成しました。 一応問題なく動いてはいるのですが、処理速度がどうも遅いように感じられます。 画面の動きを見る限りでは、時間がかかっているのはデータの転記の部分のようです。 VBAの処理の概要は「コピー元ファイルのコピー元シートから、コピー先ファイルのコピー先シートへ、セルの内容を値でコピーする」というものです。 転記箇所はたった8箇所なのに、 1.コピー先ファイルをオープン 2.コピー先シートの一番下の空白行を探す 3.8箇所を次々に転記する …という一連の処理に、20秒近くかかってしまいます。 なぜでしょうか。 転記部分のソースはこのような作りです。 '(1)コピー元ファイルのコピー元シートをアクティブにし、コピー Windows("コピー元.xls").Activate Sheets("コピー元").Activate ActiveSheet.Range("B4").Select Selection.Copy '(2)ペースト(コピー先シート、セルは選択済み…だと思います) & アクティブセル移動 Windows("コピー先.xls").Activate Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False ActiveCell.Offset(0, 4).Select Application.CutCopyMode = False なお2つのファイルはどちらもサーバ上の、同じフォルダの中にあります。 原因が思い当たる方、どうかよろしくお願いします。

  • 新たなワークシートへのコピペVBA

    (1)Excelの一つのBOOKの中に複数のワークシートがあります。 (2)これらワークシートの中から、任意でいくつかのみを選びます。 (3)新たなワークシートを一つ作り、ここに、(2)で選んだワークシートを順番に横並びでコペピする。 上記をVBAで自動化させるには、どうしたらよろしいのですか?

専門家に質問してみよう