- ベストアンサー
Excelデータコピーについて
どうファイルのシートにデータをコピーする処理を 自動化したいのですが、 シート1のB列、C列、E列入ったデータを シート2のC列、D列、H列に出力。 のようなことをやりたいのですが、 あらかじめシート2に=セル番地で明示的にやっておけば できますが、関数を入れておくとファイルが重くなってしまうので、 シート1のデータがある分、出力させる処理を作りたいです。 自動化できる方法がありましたら教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
自動化とはVBAのことを言っているのでしょうか。 以下の手順をお試しください。 (各シート名はSheet1、Sheet2としてあります。) 1.AltキーとF11キー同時に押し(以下Alt+F11キーと記述)て Visual Basic Editor を呼び出します。 2.Visual Basic Editor のメニューから「挿入」、「標準モジュール」で出てきたコードウィンド(右側の白い広い部分)に以下のコード(Sub~End Sub)をコピペします。 '********これより下********** Sub test01() Dim st As Worksheet, x As Long, y As Long, z As Long Set st = Sheets("Sheet1") With st x = .Cells(Rows.Count, "B").End(xlUp).Row 'B列最終行取得 y = .Cells(Rows.Count, "C").End(xlUp).Row 'C列最終行取得 z = .Cells(Rows.Count, "E").End(xlUp).Row 'E列最終行取得 End With With Sheets("Sheet2") .Range(.Cells(1, "C"), .Cells(x, "C")).Value = st.Range(st.Cells(1, "B"), st.Cells(x, "B")).Value 'C列に値転記 .Range(.Cells(1, "D"), .Cells(y, "D")).Value = st.Range(st.Cells(1, "C"), st.Cells(y, "C")).Value 'D列に値転記 .Range(.Cells(1, "H"), .Cells(z, "H")).Value = st.Range(st.Cells(1, "E"), st.Cells(z, "E")).Value 'H列に値転記 End With End Sub '********これより上********** 3.Alt+F11キーでワークシートへもどります. 4.Alt+F8キーで出てきたマクロ名(test01)を選択して実行します。
その他の回答 (1)
- Cupper
- ベストアンサー率32% (2123/6444)
関数を使いたくないのでしたらマクロを使うしかありません たぶんマクロも重いと思いますよ とりあえず記録マクロ(新しいマクロの記録)で作業手順を記録しマクロ化し それを再生するだけで可能です いろいろ試してみてください
お礼
遅くなりましたが、ありがとうございました。 別のやり方でできました。