• 締切済み

VBAでデータ転送

エクセルの表で必要な列(複数)のみ別のブックにデータ転送しCSV形式に保存したいのですがどのようにすればいいでしょうか? たとえば・・・ <book1.xls> 日付  仕入先  商品  金額 --------------------------------- 5/6  **(株)  パソコン  100,000  7/1  **店  プリンター 50,000  <book2.xls> 仕入先  仕入区分  担当者 ---------------------------------   book1の仕入先のデータをbook2の仕入先の列にデータを 転送したいのです。 他にも何列かデータを入れたいものがあります。 (コマンドボタンを押せばデータが転送できるように・・) どなたかわかる方教えてください。

みんなの回答

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

「転送」と大げさに、通信でも使う言葉が出ていますが、簡単なケースでは、代入で済むのでは。 Sub test02() Dim sh1 As Worksheet Dim sh2 As Worksheet Set sh1 = Workbooks("Book2.xls").Worksheets("4月") Set sh2 = ActiveWorkbook.Worksheets("Sheet1") ' MsgBox sh1.Cells(3, "A") sh2.Cells(5, "A") = sh1.Cells(3, "A") End Sub を応用すれば、済むことでは。 これですまない場合は質問文の表現に大切な点が、抜けているはずです(Book2を開きたくないとか諸々)。 上記Book2に当たるブックは開かれている必要があります。 Book1から、Book2に代入するとき、列を(固定対応で) 帰るなど簡単。 代入文の左辺・右辺でセルを表現するとき、全てCells()やRange()の前に、sh1. やSh2.を明示でつけること。 CSVファイルに保存 コマンドボタンで起動 などもありきたりの質問です。WEB照会で沢山でてくるでしょう。

すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 実際、なかなか、そういうご質問は難しいのですね。 >book1の仕入先のデータをbook2の仕入先の列にデータを転送したいのです。 と書かれていますが、book1 とbook2 の項目として、つながるものが、「仕入先」しかありません。 ご質問とは直接関係がないのですが、決まった回答者さんとの間で、何度かやり取りをした上で、ある程度、表のレイアウトや内容が伝わった段階でしたら、プロが作るような内容のコードなどでも提供可能だと思いますが、残念ながら、今回、その前提がありませんので、いきなり、そういうご質問では無理に近いのです。 VBAのレベルとしては、中級以上ですから、簡単に記録マクロを示して解決ということも簡単には行きません。内容的には、Excelで解決可能な内容なのですが、今の状態では、申し訳ありませんが、情報的に不足して、取り掛かりができないのです。

すると、全ての回答が全文表示されます。
  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

質問はコードを全部書けということなんですかね? さすがにそれは無謀というものかと思いますが。処理の分からない部分があるというのならまだ分かりますが。 まぁこれならアクセスでやった方が楽ですよ。エクセルでのサンプルコードを示されてそれを少しずつ修正していくよりも、はるかに楽です。

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

関連するQ&A