こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

VLOOKUPで作った帳票の複数sheet化マクロ

左端に1~100のナンバー(NO)がふられたEXCELLデータベース(sheet1)よりVLOOKUPを使って,左最上端のセルにNOが入る帳票(sheet2)を作ります。このNOに連動したVLOOKUPにより、NO毎の帳票が作れます。そこで、このsheet2のNO1~NO100の帳票をsheet3(シート名:1)~sheet103(シート名:100)まで作るマクロを教えてください

投稿日時 - 2008-12-03 17:10:46

QNo.4526867

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

シート名をそれぞれ、1~100にするんですね?
それなら、A1にシート名が表示できれば良いわけです。

Sheet2のA1に
=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))

あとは、Sheet2をコピーしてシート名を(1~100に)変更を繰り返す。

なお、一度も保存をした事がないブックでは表示できません。
一度保存したブックでお試しください。

投稿日時 - 2008-12-05 18:35:47

お礼

未熟ものですが大変勉強になりました。

投稿日時 - 2008-12-18 20:13:33

ANo.2

質問の状況が判らない。エクセルには
シート


というものが決まっている。それをはっきりさせて、実例を挙げて質問すること。この質問は俗語もありわかりにくい。
>左端にーー>Sheet1のA列
A列
112
234
・・
>VLOOKUPを使って
Sheet1で使うのか、Sheet2でか
>左最上端のセルーー>Sheet2のA1セル
Sheet2のA1セルに番号を入れる、ということか
>NOに連動したVLOOKUPにより、NO毎の帳票が作れます
Sheet1の番号が、重複なしで無いと出来ないよ。
番号はどのようにして入れる積もりか。
1シートで
A1に番号
第2行目に、その番号の情報を並べるのか?
ーーー
それに、全体に丸投げの質問だ。
まだこの課題を取り組むのは早すぎるのでは。
一応参考に
Sub test01()
Dim sn As Worksheet
d = Worksheets("Sheet1").Range("A65536").End(xlUp).Row
MsgBox d
For i = 2 To d
Set sn = Worksheets.Add
sn.Name = "s" & Format(i - 1, "000")
Sheets(sn.Name).Cells(1, 1) = Worksheets("Sheet1").Cells(i, 1)
For j = 1 To 4
Sheets(sn.Name).Cells(2, j) = Worksheets("Sheet1").Cells(i, j)
Next j
Next i
End Sub
ーーー
例データ
Sheet1
A列  B列  C列  D列
番号
112X1y1z1
223X2y2z2
332X3y3z3
ーー
結果
その1つのシート
シート名 s001
A   B  C  D列
112  <-第1行
112X1y1z1 <-第2行

投稿日時 - 2008-12-03 19:21:36

補足

初めての投稿であり、要領が得られず、不味いお願い文ですいません。そこで、お願い文を修正しましたので、回答宜しくお願いします。
Sheet1に1~100のナンバーがふられた販売データがあります。
A   B    C    D    E    F G
NO  課名  担当名 オーダNo. 顧客名  売上   製品 
1  一営  山田  X1230  松下  10,000円  冷蔵庫
2  二営  鈴木  Y3450  日立  20,000円  テレビ
3  三営  加藤  W5670  東芝   5,000円 洗濯機
VLOOKUPにより、Sheet2にNOに連動した帳票を作ります。
NO
1
課名   担当名   オーダNo.  
一営   山田    X1230 
顧客名  売上    製品
松下   10,000円  冷蔵庫

このNOに連動したsheet2のNO1~100の帳票をsheet3(シート名:1)~sheet103(シート名:100)に作るマクロを教えてください。このとき、VLOOKUPのの関連式は値としたいのですが。

投稿日時 - 2008-12-05 10:23:54

お礼

未熟ものですが大変勉強になりました。

投稿日時 - 2008-12-18 20:15:35

ANo.1

よくわかりませんが、シートのコピーを100枚行いたいということでしょうか?
1枚のコピーをマクロの記録で行ったものを、100回ループさせればすむ話だと思うけど・・・?

とりあえずのサンプルです。不明な条件は適当に仮定していますので、適宜修正してください。
Sub test()
Dim sh As Worksheet, i As Integer
Dim mes As String
Const maxSheet = 100 '//作成するシート枚数(=シート名)
Set sh = Worksheets("sheet2") '//雛形とするシート
mes = ""
i = 1

Do While i <= maxSheet
 sh.Copy After:=Worksheets(Worksheets.Count)
 Set sh = ActiveSheet
 flg = False
 Do While Not flg And i <= maxSheet
  On Error Resume Next
  sh.Name = Format(i, "#")
  If Err.Number = 0 Then
   flg = True
  ElseIf Err.Number = 1004 Then
   mes = mes & "シート" & i & "の作成に失敗しました。" & Chr(13)
   i = i + 1
  Else
   On Error GoTo 0
  End If
 Loop
 sh.Range("A1").Value = i
 i = i + 1
Loop
Application.DisplayAlerts = False
If Not flg Then sh.Delete
Application.DisplayAlerts = True
If mes = "" Then mes = "作業終了です。"
MsgBox (mes)
End Sub

投稿日時 - 2008-12-03 19:08:34

補足

初めての投稿であり、要領が得られず、不味いお願い文ですいません。そこで、お願い文を修正しましたので、回答宜しくお願いします。
Sheet1に1~100のナンバーがふられた販売データがあります。
A   B    C    D    E    F G
NO  課名  担当名 オーダNo. 顧客名  売上   製品 
1  一営  山田  X1230  松下  10,000円  冷蔵庫
2  二営  鈴木  Y3450  日立  20,000円  テレビ
3  三営  加藤  W5670  東芝   5,000円 洗濯機
VLOOKUPにより、Sheet2にNOに連動した帳票を作ります。
NO
1
課名   担当名   オーダNo.  
一営   山田    X1230 
顧客名  売上    製品
松下   10,000円  冷蔵庫

このNOに連動したsheet2のNO1~100の帳票をsheet3(シート名:1)~sheet103(シート名:100)に作るマクロを教えてください。このとき、VLOOKUPのの関連式は値としたいのですが。

投稿日時 - 2008-12-04 09:32:35