- 締切済み
VBAでデータ転送
エクセルの表で必要な列(複数)のみ別のブックにデータ転送しCSV形式に保存したいのですがどのようにすればいいでしょうか? たとえば・・・ <book1.xls> 日付 仕入先 商品 金額 --------------------------------- 5/6 **(株) パソコン 100,000 7/1 **店 プリンター 50,000 <book2.xls> 仕入先 仕入区分 担当者 --------------------------------- book1の仕入先のデータをbook2の仕入先の列にデータを 転送したいのです。 他にも何列かデータを入れたいものがあります。 (コマンドボタンを押せばデータが転送できるように・・) どなたかわかる方教えてください。
- みんなの回答 (3)
- 専門家の回答
関連するQ&A
- excel vba
テーブル情報に基づきシートをコピーするVBAマクロを記述したい。 ExcelのBook111のSheet1に次のような データが入っています。 (1、2)セルにn=3という数字が入っているものとします。 その数値に合わせて、この場合は3なので Sub Sample01() Workbooks("Book3.xls").Worksheets("booksheet3").Copy After:=Workbooks("Book111.xls").Sheet(1) End Sub のようなつまり、booksheet3なるシートをBook111(固定なBOOK)にコピーしようとしています。 このようなことをVBAで書くにはどうすればいいのでしょうか。 ただしBook名とシート名はあくまでデータの値にもとづいたデータをもってくることになります。 要するに間接参照したデータに基づき処理するのをどのように記述するかという質問です。 A列 B列 1 回数 n=3 2 3 4 Book1.xls book1sheet ←n=1 5 Book2.xls book2sheet ←n=2 6 Book3.xls book3sheet ←n=3 7 Book4.xls book4sheet 8 Book5.xls book5sheet 9 Book6.xls book6sheet ←n=6 10 Abc,xls Defsheet ←n=7
- ベストアンサー
- オフィス系ソフト
- Excel 微妙に違う2つのシートのデータをリンクさせる
ある程度 同じデータのブック1とブック2があり、 ブック1は祭日などデータが無い日も日付があり、行が確保されていますが、 ブック2は祭日などデータが無い日は行が抜いてあります。 A列:日付、B列:曜日 C列:データ1、D列:リンクを入れる 04.11.22 月 56 =[ブック2.xls]シート1!H2 04.11.23 火 04.11.24 水 50 =[ブック2.xls]シート1!H3 04.11.25 木 52 =[ブック2.xls]シート1!H4 04.11.26 金 49 =[ブック2.xls]シート1!H5 04.11.29 月 04.11.30 火 A~C列はブック1、2とも同じデータです。(現在ブック1は1400行、ブック2は1300行くらい) D列にブック2のH列のデータを表記したいのですが、ドラッグなどでは行がずれてしまいます。 関数かマクロなど、何か良い方法を教えて下さい。 下記のことにも対応できれば更に便利なのですが・・。 ブック2のH列は時々J列とか他の列(表範囲内)に移動します。 そしてたまにはブック2のシート1もブック1に移動したりブック2に戻したりもします。
- ベストアンサー
- オフィス系ソフト
- VBA 表作成 再 続
引き続きよろしくお願いします。 入力データというブックがありそこには B列に日付と曜日(日付の下)3行目~、 M列に区分(1か2が入力)3行目~、 T列に商品名3行目~、 AQ列に商品数3行目~、 BA列4行目~にコードが入力されています。 日付を入力したブックに 入力データにある、日付の部分を見て入力フォームで日付から1ヶ月の間の日付で一致すれば、商品名、コードを別ブックにある表に貼り付けます。日付部分の表に数値を商品名とコードにあわせて貼り付け、日付も、商品名もコードも同じであれば足してから表示します。 元にあるのはひとつ分しかはいらないので増えるたびに行数を挿入していくようにします。 最初にある表は B M L ・・・ 4 日付・・・ 5 曜日・・・ 6 商品名 コード 数値・・・ 7 小計・・・ 8 商品名 コード 日付・・・ 9 小計・・・ 10 合計・・・ という表になっています。上段には区分1、下段には区分2のものが入ります。 わかりますかね・・・;; 説明下手で申し訳ありません よろしくお願いします
- 締切済み
- その他(プログラミング・開発)
- EXCEL VBAについて
VBAでCSVファイルをテンプレートのBBOKに読込むコードを 作り、CSVファイルから読込んだBOOK1データを集計する BOOK2を作成しています。 BOOK1・11/21・・・11/21・・・11/22・・・11/23と続きます A B C D 1 ID 店名 売上 日付 2 1104567 渋谷店 190,809 11/21 3 1102031 新宿店 209,808 11/21 4 1103450 横浜店 108,765 11/21 BOOK2・集計 A B C D E 1 ID 店名 11/21 11/22 11/23 2 1104567 渋谷店 190,809 203,487 3 1102031 新宿店 209,808 340,876 4 1103450 横浜店 108,765 547,627 ※BOOK1とBOOK2のIDの並び順は一致していません。 上記のBOOK1のデータをBOOK2に読込ませたいと考えています。 VLOOKUPやINDEX関数を使用しようかと考えたのですが、日付毎に ファイル名が違うのと、集計のファイルには外部参照をさせたくないと 考えています。 VBAで作成したいコードはBOOK1からBOOK2の日付のセルにIDを検索条件として日付毎のファイルを読込ませたいです。 フォームで日付を入力し、コピーするBOOK2のセルを指定後、BOOK1を選択するためにダイアログボックスを出したいです。 BOOK2のIDを検索条件としてBOOK1から一致する売上セルを抽出するコードだけでもわかれば何とか作成できそうなのですが、 ご教授いただけませんでしょうか?
- ベストアンサー
- オフィス系ソフト
- 「Excel」で、異なるブックのデータを一つにまとめたい。
「エクセル2000」を使用しています。 異なるブックのデータを、うまく一つにまとめる 方法があるかどうか、お教え頂きたいのですが…。 「Book1.xls」には A列に名前 B列に部署名 が、それぞれ入っています。 「Book2.xls」には A列に名前、 B列に内線番号 が入っているとします。 そこで、「Book1」のそれぞれの名前の行に 「Book2」の「内線番号」を表示させたいのですが… そんな事は可能でしょうか? 「Book1」と「Book2」の「名前」のデータは、 ほぼ同じものが入っているのですが 並び順は異なっています。 (「並べ替え」を行ったとしても、 「Book2」の方が遥かにデータ量が多いので、 どうしても行は一致しません) 「同じデータを探して貼り付ける」 という作業が必要になると思うので、 やはり難しいでしょうか…。 ご助言願います。
- ベストアンサー
- オフィス系ソフト
- VBAでデータの仕訳し新規ブックへ貼付け・登録
VBAで指定(A列の値と同一)ファイルを開き、データ内C列の値を認識し、新規ブックへ1行全ての データをコピー貼付け処理後、各々仕訳されたブックB列値に-A・-B~を付加し、ファイル登録を行い たいのですが、VBA初心者でどうしてよいか教えてください。 A列 B列 C列 D列 1 J00001 11111 ABCDE BHBHB 2 J00001 22222 SDFAG NHNHN 3 J00001 22222 AZXCV NHNHN 4 J00001 11111 CVBNM LKLKL 5 J00001 33333 VBNM< TYTRE ※ 指定ファイル内行数は、可変です。 ※ 指定ファイル内A列値は同一 ↓ <book1> A列 B列 C列 D列 1 J00001 11111 ABCDE BHBHB 2 J00001 11111 CVBNM LKLKL <book2> A列 B列 C列 D列 1 J00001 22222 SDFAG NHNHN 2 J00001 22222 AZXCV NHNHN <book3> A列 B列 C列 D列 1 J00001 33333 VBNM< TYTRE ↓ book1⇒J00001-A.xlsで登録 book2⇒J00001-B.xlsで登録 book3⇒J00001-C.xlsで登録
- 締切済み
- Visual Basic
- マクロ 2つのブック 条件一致 転記
2つのエクセルブックがあります。 1つがIDデータ表になって、IDと払い出し内容と日付の3つがあります。 もう1つがID管理票で、IDを担当ごとに管理している票です。 IDデータ表のIDとID管理票のIDを一致したら IDデータ表の払い出し区分の単語を基準に(新規・変更・廃止) ID管理票.xlsに乗っているIDの横に 払い出し区分の単語の条件で 新規の場合,ID右隣に日付を転記 変更の場合,IDの2つ右隣に日付を転記 廃止の場合,IDの3つ右隣に日付を転記を行いたいのですが FINDメソッドを使い、行のB列の区分で判定して、日付を書き入れるのと Offセットでセルの位置を指定するのと「IDデータ表」.xlsの特定の範囲のデータを繰り返す というアドバイスをもらいましたが 繰り返し処理(ForやLoop)をよく理解していないからだと思います。 どなたかご教示くださいますでしょうか。 下記に簡素でありますが構成状態と 処理の概要と画像添付させて頂きます IDデータ表.xls A列 B列 C列 1 ID番号 払い出し区分 日付 2 110001241 新規 10/2 3 120000065 変更 10/3 4 190000036 廃止 10/4 ↓ 以下100行くらい続いています ID管理票.xls ID番号の場所がバラバラで AO列にあったりBC列にあったりしています。 また、ID管理票にすでに日付が入っていることもありますが それはそのまま上書きで問題ありません。 110001241, 10/2 (新規区分なのでIDの右隣に日付を転記) 120000065, 空白 10/3 (変更区分なのでIDの右2つ目に日付を転記) 190000036, 空白,空白,10/4 (廃止区分なのでIDの右3つ目に日付を転記) お手数ですがよろしくお願いいたします
- ベストアンサー
- Excel(エクセル)
- CSVデータから日付を正確に読み込めません
ユーザーフォームのテキストボックスでCSVファイルを指定し、レポート用のBookに貼付けしようとするのですが、 以下のように日付がおかしくなってしまいます。 ご教授願えませんでしょうか? CSVデータ Xlsデータ 日付(A列) 日付(A列) 2008/4/1 2001/8/4 2008/4/2 2002/8/4 2008/4/3 ⇒ 2003/8/4 2008/4/4 2004/8/4 2008/4/5 2005/8/4 (B列からQ列までは数値データとなっております。) 現在、入力しているVBAは下記のような記述です。 ' "CSVデータ"をExcelで開く Workbooks.OpenText TextBox2.Value, Local:=True Cells.Select Selection.Copy Windows("Report.xls").Activate Sheets("元データ").Select Cells.Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Windows(2).Activate ActiveWindow.Close SaveChanges:=False
- 締切済み
- オフィス系ソフト
- VBAで表作成中解らないことだらけ・・・ひとつずつ教えてください。
ブックの種類 入力フォーム→日付を設定するフォーム画面です。 book→予め出来ている表(B5・B7・B9・B10・I5はタイトル?になります) B I L ・・・ 4 日付・・・ 5 商品名 コード 曜日・・・ 6 商品名 コード 数値・・・ 7 小計 数値・・・ 8 商品名 コード 数値・・・ 9 小計 数値・・・ 10 合計 数値・・・ 入力データ→日付(曜日)、区分、商品名、商品数、コードが表になっています。 まず入力フォームで日付をセットします。 次にbookに入力フォームで入力した日付から1ヶ月間を表示させます。 (1) 日付設定表に設定日付をキーにして入力データブックより検索 (2) 検索日付が一致すれば、該当商品名、コード、区分、商品数等を取得 (3) 区分:1の場合は、該当日付の下の6行に、区分:2の場合は、8行に設定(同一商品の場合は加算) 但し、新しい商品の場合は行を追加→ 区分:1の場合は6行以降に、区分:2)の場合は8行以降に追加する (4)区分ごとの小計を表示 (5)合計を表示 (6)bookのみ処理した日付と時間で保存 (7)入力データのブックを閉じる。 出来ているところは日付を貼り付けるまでは教えてもらいながらですができています。 明日中とのことなのでよろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- ブック間のデータ転送マクロをお教えください
Book1のSheet1のA列にあるデータと、開いているBook2のSheet2のA列にあるデータが完全一致したら、後者のBCD列のデータを前者のDEF列に順に代入するマクロをお教えください。 同じBook内にあるSheet1とSheet2間のデータ転送は、以下のFind関数を使用したマクロでうまくいのですが、Book間での処理に苦慮しています。できれば以下のコードを基にして作りたいです。よろしくお願い申し上げます。 -------- Sub sample() 転送先 = "D" '転送先の列番号 転送元 = 1 '転送元の列番号(相対) サイズ = 2 '転送サイズ Set st1 = Worksheets("sheet1") Set st2 = Worksheets("sheet2") For i = 1 To st1.Cells(Rows.Count, 1).End(xlUp).Row Set pos = st2.Range("A:A").Find(st1.Cells(i, "A"), _ LookAt:=xlWhole, MatchCase:=True, MatchByte:=True) If Not pos Is Nothing Then st1.Cells(i, 転送先).Resize(1, サイズ).Value = _ pos.Offset(0, 転送元).Resize(1, サイズ).Value End If Next End Sub
- ベストアンサー
- オフィス系ソフト