【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言

エクセルの表で必要な列(複数)のみ別のブックにデータ転送しCSV形式に保存したいのですがどのようにすればいいでしょうか?
たとえば・・・
<book1.xls>
日付  仕入先  商品  金額
---------------------------------
5/6  **(株)  パソコン  100,000 
7/1  **店  プリンター 50,000 

<book2.xls>
仕入先  仕入区分  担当者
---------------------------------
 
book1の仕入先のデータをbook2の仕入先の列にデータを
転送したいのです。
他にも何列かデータを入れたいものがあります。
(コマンドボタンを押せばデータが転送できるように・・)
どなたかわかる方教えてください。

A 回答 (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照会で沢山でてくるでしょう。
    • good
    • 0

こんにちは。



実際、なかなか、そういうご質問は難しいのですね。

>book1の仕入先のデータをbook2の仕入先の列にデータを転送したいのです。
と書かれていますが、book1 とbook2 の項目として、つながるものが、「仕入先」しかありません。

ご質問とは直接関係がないのですが、決まった回答者さんとの間で、何度かやり取りをした上で、ある程度、表のレイアウトや内容が伝わった段階でしたら、プロが作るような内容のコードなどでも提供可能だと思いますが、残念ながら、今回、その前提がありませんので、いきなり、そういうご質問では無理に近いのです。

VBAのレベルとしては、中級以上ですから、簡単に記録マクロを示して解決ということも簡単には行きません。内容的には、Excelで解決可能な内容なのですが、今の状態では、申し訳ありませんが、情報的に不足して、取り掛かりができないのです。
    • good
    • 0

質問はコードを全部書けということなんですかね?


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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報