• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:値の入力をexcelのマクロでできますか?)

excelマクロで異なるワークブックに値を入力する方法

このQ&Aのポイント
  • excelのマクロを使用して、異なるワークブックに値を入力する方法について教えてください。
  • 具体的には、あるワークブックのフィルタした値を、別のワークブックの指定した列の最後の行に入力したいです。
  • ご教授のほど、よろしくお願い致します。

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

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

必要なファイルはすべて開いておいてくださいね はい、どうぞ Sub test() Dim i As Long For i = 2 To Workbooks("ワークブックA").Worksheets("sheet1").Range("a65536").End(xlUp).Row Workbooks(Workbooks("ワークブックA").Worksheets("sheet1").Cells(i, 1).Value).Worksheets("sheet1").Range("g65536").End(xlUp).Offset(1, 0).Value = _ Workbooks("ワークブックA").Worksheets("sheet1").Range("b1").Value Workbooks(Workbooks("ワークブックA").Worksheets("sheet1").Cells(i, 1).Value).Worksheets("sheet1").Range("i65536").End(xlUp).Offset(1, 0).Value = _ Workbooks("ワークブックA").Worksheets("sheet1").Cells(i, 2).Value Next i End Sub #1さん、#2さんも言われていますが、必要なことが抜けているので サンプルとしておきます 参考まで

その他の回答 (2)

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

質問者はエクセルのシートの概念が無いのかな。 >「あ」のブック G列 は、「あ」のブックのシート1(例)のG列・・のように書くべきだ。 ブックAを開いてシート1(仮定)をアクチブにしておく。 ーー 「あ」のブック G列に”シャンプー”、 I 列に”0.05” ・・・ 「え」のブック G列に”シャンプー”、 I 列に”5.5” は関連の無い独立した作業なので、各処理コードを順に書き連ねるでよかろう。 あブックを開き、ブックAのあの行を探し、その行のシャンプー列の数字を、あブックのG列に商品名、I列にブックAから引いてきた数をセットする。あブックは変更を保存して閉じる。 いブック、うブック、えブックも同じ処理パターンを繰り返す。 この質問は丸投げなので、また処理も初等的なスキルで住むので書かないから、勉強すること。 ただ質問例ではシャンプー1つだが、多数有る場合はどうなるか。 質問表現が頼りないような感じがするが、実際は質問どおり1つかな。 WebでWorkbooks.Open save などで照会すると http://homepage2.nifty.com/kasayan/vba/excel7.htm などたくさん記事がでるから、読むこと。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

不明の部分は適当に書いていますので、適宜修正して考えてください。 ワークブックAの行を上から順に処理していくとして 1)1列目(?)が”商品名”であることを確認してスタート  商品名である「シャンプー」(2列目の値か?)を記憶しておく 2)次の行から繰り返しの始まり  1列目(?)の値、「あ」から開きたいブック名を作成する  (多分、 「あ」 & ".xls" なのかな?)  フォルダが違う場合は、パスごと作成する必要があります。 2)指定したファイルを開くのは  Workbooks.Open ファイル名 3)開いたファイルで、例えばG列の最終行+1を取得するには  rw = Cells(Rows.Count, "G").End(xlUp).Row + 1  なので、その行のG列に、記憶してあるシャンプーを記入  同じ行(あるいはI列の最終行か?)に「あ」のあった行の2列目(?)  の0.05を記入 4)ファイルをクローズ 5)次の行の1行目(?)が「商品名」だったら、1)に戻る。  空白だったら、マクロ終了(…でいいのか不明ですが。)  そうでない場合は、2)に戻る。 ループ(繰り返し)処理は、For~Nextでもできますが、While~WendとかDo~Untillみたいなほうが書きやすいかも。 (起こり得る状況に応じてエラー処理が必要になるかもしれません。例えば、開こうとしたファイルがない場合とか…)