• ベストアンサー

Excel データコピーのマクロ

ExcelでAというファイルのデータをBというファイルにコピー&ペーストするマクロを組みたいと考えています。 本当はAファイルを開かずにできるとベストなのですが、 マクロを実行する(マクロ登録したオートシェイプを押す)とAファイルを開き、 Bファイルにコピペが終わればAファイルを閉じるという動作を行うマクロは組めるでしょうか? どなたか、ご存知の方が居られればお教え願います。 よろしくお願いいたします。

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

  • ベストアンサー
  • x0000x
  • ベストアンサー率52% (67/127)
回答No.4

こんにちは。 こんな感じで如何ですか? ファイルBを開いている状態でファイルAの編集シートをファイルBに追加します。 不要なファイルBのシートは削除しています。 (ただし、ファイルBにはシート1枚の場合です。) また、コピー後の参照シートは保護しています。 PATH名、ファイル名、シート名、パスワードなど 適当に変更ください。 Sub copySheetA() Application.ScreenUpdating = False '画面表示の停止 '参照シートを保存 Dim 参照ST As Worksheet Dim 新参照ST As Worksheet Set 参照ST = ActiveSheet Dim 編集BK As Workbook Dim 編集ST As Worksheet '編集シートAを開く Set 編集BK = Application.Workbooks.Open(ActiveWorkbook.path & "\FileA.xls") Set 編集ST = 編集BK.Sheets(1) '開いたシートを現在シートの後ろにコピー(追加) 編集ST.Copy after:=参照ST '編集シートを閉じる 編集BK.Close (False) '新参照シートを保護する Set 新参照ST = ActiveSheet '不要となった参照シートを削除 Application.DisplayAlerts = False 参照ST.Delete Application.DisplayAlerts = True '新参照シートの属性設定 新参照ST.Name = "xxxxx" 新参照ST.Protect ("PASS-WORD") Set 編集BK = Nothing Set 編集ST = Nothing Set 参照ST = Nothing Set 新参照ST = Nothing Application.ScreenUpdating = True '画面表示の停止 End Sub

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

その他の回答 (5)

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.6

Workbooks.Add "C:\Sample\ExcelData.xls" みたいなのはどうでしょうか?

naranosaru
質問者

お礼

ありがとうございます。 参考にするとこんなのが出来ました。 Sub auto_open() 'AのファイルをA1という名前のファイルとして追加 Workbooks.add "C:\Sample\ExcelData.xls" 'ペースト先の"Sheet1"のシートをアクティブにしておく Windows("B.xls").Activate Sheets("Sheet1").Select 'コピー元からSheet1をコピー Windows("A1").Activate Sheets("Sheet1").Select Columns("B:I").Select Selection.copy 'ペースト先のSheet1をペースト Windows("B.xls").Activate Columns("B:B").Select ActiveSheet.Paste 'コピー元のSheet2をコピー Windows("A1").Activate Sheets("07Sheet2").Select Columns("B:I").Select Application.CutCopyMode = False Selection.copy 'ペースト先のSheet2にペースト Windows("B.xls").Activate Sheets("07Sheet2").Select Columns("B:B").Select ActiveSheet.Paste '終了処理(クリップボードの情報を削除してコピー元を終了させる。) Windows("A1").Activate Range("A1").Select Application.CutCopyMode = False ActiveWindow.Close End Sub No.4/5の方の方法と比べて、使い勝手の良いほうを利用させていただきます。

全文を見る
すると、全ての回答が全文表示されます。
  • x0000x
  • ベストアンサー率52% (67/127)
回答No.5

#4です。 以下のコメントが違ってました。無視してください。 >新参照シートを保護する

naranosaru
質問者

お礼

いい感じに思っていた動作と同じ結果を得られました。 これで不本意なロールバックを心配せずに済みます。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • SRitchie
  • ベストアンサー率21% (103/470)
回答No.3

No.1です、 解釈が間違っていたらごめんなさい。 その程度なら、「ツール」メニューの「ブックの共有」と「シートの保護」を組み合わせて実現できる気がするんですが…

naranosaru
質問者

補足

度々ありがとうございます。 その方法も考えたのですが、閉じる際に「上書きしますか?」のコメントが出て「はい」を選択すると上書きできてしまいました。 編集は保護解除のコメントが出て編集できないのでOKなのですが・・・。 上書きできてしまうと都合が悪く、別のファイルを作成して開く度に更新するようなイメージのものを作成したほうが安全かと考えた次第です。 やり方が悪いのでしょうか???

全文を見る
すると、全ての回答が全文表示されます。
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

記録マクロでも可能かと思いますよ。 >本当はAファイルを開かずにできるとベストなのですが、 これは不可能です。 値しかコピー出来ませんが、マクロでセルに参照式を記入してリンクを更新する方法なら可能でしょう。

naranosaru
質問者

補足

実はハイパーリンクを張ってあるセルがありまして、 値のみのコピーでは不十分なのです。 そこで、このようなマクロを組むしかないかと考えた次第です。 ハイパーリンクもコピペできる方法があればマクロを組まなくてもいいのですが・・・。

全文を見る
すると、全ての回答が全文表示されます。
  • SRitchie
  • ベストアンサー率21% (103/470)
回答No.1

結論から言うと出来ます。 んで、 AとBはまったく同じでいいのでしょうか? もし、そうならブリーフケースを使うとか、汎用のバックアップソフトの方が楽だと思うのですが…

naranosaru
質問者

補足

AとBはまったく同じで、Aを編集用、Bを閲覧用として使用したいと考えています。 現在Aを共有フォルダに置いており、編集するのは自分だけなのですが、 誰かが開いていると自分が編集・保存できないので作業が停まります。 また、不特定多数の人がネットワーク上のPCで閲覧しますので 見る側の人に今までと違う操作をさせたくないのです。 これらの理由から、Excelのみで実現する方法を探しています。 自分なりにマクロを調べてみたのですが、 どのようにすれば良いのかわからないのでお教え願います。

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

関連するQ&A

  • エクセル:シートの全コピー貼り付けでオートシェイプを除いて実行

    エクセルのシート(Cells)の全データをコピー&(別のシートへ)貼りつける(マクロを使用して貼りつけています)とき、「オートシェイプ」だけを除いた全データを貼り付けることは可能でしょうか? そのオートシェイプはマクロボタンとしているのですが、マクロを実行するたびにオートシェイプの貼付けが繰替えされるため、どんどん重なっていくのを防ぎたいのです。よろしくご指導ください。 ※このオートシェイプの貼付の繰返しによりファイルが重くなることはないでしょうか?ないのなら無視してもよいかとは思っています。

  • エクセルのオートシェイプのコピー

    「○」印などのオートシェイプがついたエクセルファイルを別のファイルのシートにコピー、ペーストすると、文字等はコピーされるのですが、「○」などのオートシェイプがコピーされません。どうしたらいいのでしょうか。

  • エクセル マクロ コピー 貼り付けについて教えて!

    お世話になります。 エクセルのマクロを利用し下記の 方法はできますでしょうか。 条件:1つのフォルダ内に2つのエクセルデータがあります。 (1)「リスト」名のエクセルデータ (2)「送付状」 (1)「リスト」名のエクセルには下記の内容があります。   A       B  1 山田 03-0000-0000 2 佐藤 04-0000-0000 3 樋口 05-0000-0000 4 加藤 06-0000-0000 「リスト」名のエクセルには事前にマクロを組みます。 (ここを教えてください!) マクロを起動すると (2)「送付状」のエクセルデータごとコピーし ファイル名を「リスト」のB1とします。 例:ファイル名/03-0000-0000 03-0000-0000のファイルを開き A3に「リスト」のA1をコピーし貼り付けます。 C10には「リスト」B1の電話番号をコピーし貼り付けます。 これでファイル名03-0000-0000を保存します。 次に同じ動作を繰り返しますが 新しく作成したエクセルファイル(貼り付け先) のコピー元((1)リスト)はA1またはB1 から次行のA2またはB2と行を変えてコピーし 貼り付け場所は変わらずA3・C10とします。 (1)「リスト」A1欄が空欄になるまでこの動作を つづけ、終わったら「完了」表示がされ作業終了にしたいです。 完成形 (1)「リスト」に100件の名前があった場合 フォルダ内には (1)「リスト」、(2)送付状 その他100件の電話番号名のエクセルファイル が存在する。 お手数をおかけいたいます。 宜しくお願いいたします。

  • Excel データ切り出しマクロについて

    Excelのマクロについてお聞きしたいと思います. たくさんあるテキストファイルの一部を切り取って貼り付けたい場合は どうしたらいいのでしょういか? マクロではない流れとしては テキストファイルを開く ↓ 全選択してコピー ↓ Excelに貼り付ける ↓ 必要な部分だけ切り取る ↓ 貼り付け データの例としては A 12.3 78.5 B 13.5 65.5 C 23.5 65.8 とあるとしたら一番右側の列のデータのみ(78.5,65.5,65.8) だけ必要とします(切り取りたい部分) どのようなマクロを組んだらいいのでしょうか? よろしくお願いいたします.. マクロ実行時にファイルを選択できる機能もつけていただけたら 嬉しいです. できましたら全コードを載せていただけたら幸いです.

  • マクロ 同じフォーマットのそれぞれのファイルから データをコピーペーストする方法

    お世話になります。 マクロを使って 共通フォーマットの複数のファイルのデータを 別なエクセルファイルに コピーペーストするやり方を教えていただけないでしょうか。 複数のファイルは共通のフォーマットです。しかし保存名と内容は違っています。フォーマット化されていない部分のデータをコピーし、仮にAというファイルの一部分に貼り付けるというものです。 具体的には 名前:●●●   ←この●●●だけをコピーする ファイルA   名前:□□□   ←●●●データを□□□位置にペースト この作業を繰り返すというものです。 個人用マクロブックにマクロを作ってみたのですが作成したときのファイルのデータまで記録されていて マクロが動いても その時のデータが張り付いてしまって困ります。 ●●●のところを「現在開いているエクセル」とか命令すればいいのでしょうかね・・・。 いいやり方を教えて下さい。

  • エクセル2007で複数ファイル間コピーマクロ

    エクセルでマクロを組もうとしていますが、初歩的なことでつまづいており、ぜひ助けを頂けたらと思います。 VBA言語はほとんどわかりませんが、エクセルでマクロを組んでいます。 一つのワークブック内での登録は問題なく行えるのですが、ワークブック間のコピペをマクロに登録するとうまくいかず困っています。 やりたいことは以下のようなことです。 file.Aのsheet1のA1セル ⇒ file.AAのsheet1のA1セル へコピー file.Bのsheet1のA1セル ⇒ file.BBのsheet1のA1セル へコピー     ・     ・     ・     ・ file.Zのsheet1のA1セル ⇒ file.ZZのsheet1のA1セル へコピー VBAを確認すると、ワークブック名が指定されているため、うまく次のファイルに移行できずにいるようです。 以下が黄色でハイライトされます。 Windows("file.A").Activate 初歩的なことだとは思うのですが、なかなか検索で答えが引っ張りだせないので、A-Zのファイルをコピペできるマクロにするにはどのようにしたら可能なのか教えてください。 よろしくお願いします。

  • EXCEL VBAを使ってマクロを組んだのですが、消えてしまいます。

    VBAを使ってマクロをEXCELに組んだのですが、貼り付け先のデータをダブルクリックするとデータが消えてしまいます。 組んでいるマクロは (前提) ファイルA・・コピー元データ ファイルB・・貼り付け先データ (内容) Aファイルでマクロを実行すると、Aファイルの内容がBファイルにコピーされるというものです。 Aファイルの元データは数式のため、Aファイル内でいったん値として貼り付けてから再度コピーして、Bファイルに貼りつけています。 Aファイルは自分で作成したものですが、Bファイルは他社作成のため、もろもろ変更ができません。 Aファイルにもロックが必要のため、保護をかけています。(ロック、表示ともに) マクロ実行後、Bファイルの貼りつけされたデータをダブルクリックすると、ダブルクリックしたセル内容が消えてしまいます。 まったく原因がわからず困っています。すみませんがどなたかわかるかたお願いいたします。

  • エクセルで指定セル範囲内の画像・オートシェイプ・値をマクロを使って削除したい

    エクセル2003のマクロについての質問になります。 "B2:D2,B3:F10"を指定範囲として,その中に存在する画像・オートシェイプ及び, 同範囲内のセルに入力されている値を一度に削除するマクロを教えてください。 画像・オートシェイプは指定範囲に一部でも掛かっていれば削除対象にしたいと思っています。 なお,指定範囲には罫線,結合セル,入力規則(プルダウン),マクロ登録オートシェイプ,数式が存在しますが,それらは残したままにしたいと思っています。 (マクロ登録オートシェイプと数式については,残したままにすることは困難に感じるので,無理そうならそれらは除外してお願いします。) マクロについて初心者ですので,コピーペーストでそのまま使用できる状態で回答頂けると助かりますm(__)m よろしくお願いします。

  • Excel マクロについて

    Excelで、セルを選択して、マクロを実行すると、その選択したセルに赤マル(オートシェイプの)がはいるようなマクロをつくりたいのですが・・・。まだ、マクロは使ったことが無いもので・・・。詳しくお願いします。

  • EXCELのマクロでテキストを読み込む方法

    EXCELのマクロを使って、テキストファイルから、ある文字列を検索し、コピーしEXCELのシートのセルにペーストするマクロの書き方をご存知の方は、ご教示願います。 例えば、テキストファイル中の「dog」という文字列を検索して、EXCELの決まったセル(A、1)にコピペするというマクロです。 よろしくお願い申し上げます。

このQ&Aのポイント
  • お1人様が長すぎると相手のペースに合わせるのは苦痛なこともあります。しかし、改善する方法もあります。
  • 不満を伝える際には、具体的に相手に伝え、代案を出すことが大切です。
  • 一人行動が長かった場合、他人との行動が苦痛に感じることがあります。改善するには、相手のペースを尊重し、共通の楽しみ方を見つけることが重要です。
回答を見る

専門家に質問してみよう