dポイントプレゼントキャンペーン実施中!

今、excelで作った、表データを、同じくエクセルで作った雛形にデータを入れるマクロを作っていますが、初心者の為出来ません。
明日の夜までに完成させろといわれている為いろいろ調べましたが、判らないので力を貸してください。

内容は、約700件の表データで、
地区(数字にて区別してます)・名前・電話番号を
雛形に移していくものです。
雛形にも、地区・名前・電話番号を入れるセルを用意してあります。
雛形が、40件づつで、そのたびに、同じ地区の件数を出さないと駄目です。
それを、シート追加しながら最後まで終わらせるというものです。

もっと調べる時間があれば、調べたことも書けるのですが、そこまで出来ていません。
いまいち質問の仕方もわかりませんがよろしくお願いします。

A 回答 (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 みたいな感じでやればよろしいのではないかと。
    • good
    • 0

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