• 締切済み

Excel マクロとVBA使用して、データの集計がしたい。

今、excelで作った、表データを、同じくエクセルで作った雛形にデータを入れるマクロを作っていますが、初心者の為出来ません。 明日の夜までに完成させろといわれている為いろいろ調べましたが、判らないので力を貸してください。 内容は、約700件の表データで、 地区(数字にて区別してます)・名前・電話番号を 雛形に移していくものです。 雛形にも、地区・名前・電話番号を入れるセルを用意してあります。 雛形が、40件づつで、そのたびに、同じ地区の件数を出さないと駄目です。 それを、シート追加しながら最後まで終わらせるというものです。 もっと調べる時間があれば、調べたことも書けるのですが、そこまで出来ていません。 いまいち質問の仕方もわかりませんがよろしくお願いします。

みんなの回答

回答No.1

VBAはたまにしか使わないので、構文自体怪しいのですが。 一応以下のは、excelで確認しました。 Sub Macro1() Dim I As Integer Set wk = ThisWorkbook Set Base = wk.ActiveSheet Set NewSheet = Base Dim tmp I = 0 Do While (I < 1) Set NewSheet = wk.Worksheets.Add(After:=NewSheet) 'Set NesSheet = Worksheets("雛形").Copy After:=NewSheet NewSheet.Name = "シート(" & I & ")" NewSheet.Activate NewSheet.Range("A1").Value = Base.Range("A1").Value NewSheet.Range("A2").Value = Base.Range("B1").Value NewSheet.Range("A3").Value = Base.Range("C1").Value I = I + 1 Set NesSheet = Nothing Loop Set Base = Nothing End Sub 基本的には、こんな感じになるかと思います。 この例は、A1-A3の(横1行)を新しいシートのA1-C1(縦1列)にコピーします。 例ではワークシートを作ってますが、雛形を使わなければ成らないのならコメントアウトされている部分のようにコピーすればよいでしょう。 で雛形にある挿入する箇所のセルを指定してやればよいです。 RangeはRange("A" & i) や Cells(i,k)のように指定することも出来ます。 その700件のデータの1件1件が複数行にまたがる場合は 別な変数 k 等を作って k=k+2 みたいに、増加分の管理をしないといけないでしょう。 >雛形が、40件づつで、そのたびに、同じ地区の件数を出さないと駄目です。 の説明がよくわからないので、その辺は含まれていません。 40件ごとに1つのシートを作るという事なら、 Dim cnt as integer=0 とでもして cnt=cnt+1 とかやって、 if cnt>=40 then みたいな感じでやればよろしいのではないかと。

関連するQ&A