アプリ版:「スタンプのみでお礼する」機能のリリースについて

検査成績表をエクセルで作成しようと考えています。
出荷数量・ロット番号を入力したとき、あらかじめ作っておいたブランクの検査成績表(シート)を自動的に複数コピーし、出来たシートにデータを入力します。例えば20個単位で検査表を作成する場合、出荷が110個であれば6枚ブランクシートを発行し、シート上のロット番号欄に-1~-6と枝番をつけます。入門書をざっと見ましたが、理解力不足もあり時間がありません。是非お教え願います。

A 回答 (4件)

例えで余計に分からなくなりましたが、


シートのコピーは下記のとおりです。
例:コピー元シートの後ろにコピー
Worksheets("シート名").Copy After:=Worksheets("シート名")
    • good
    • 0
この回答へのお礼

質問を出してからたった1時間で回答いただきありがとうございました。
質問させていただいた意味は検査表のコピー数を「出荷総数/検査ロットの大きさ」とするものでした。分かりづらい質問で申し訳ありませんでした。

お礼日時:2006/02/08 20:20

こんな感じでしょうか。


シート1のb1に出荷数量、b2にロット番号、
その後ろに成績表原本(ここではシート名を「原本」としています)
成績表のa1にロット番号-枝番入力としています。
-------------------------------------------------
Sub Macro1()

Dim Vol As Integer
Dim Lot As Variant
Dim Fre As Integer
Dim i As Integer
Dim Sname As String

Vol = Range("b1").Value '出荷数量が入力されたセル
Lot = Range("b2").Value 'ロット番号が入力されたセル

Fre = Application.Ceiling(Vol / 20, 1) '必要シート枚数算出(ここでは20個単位)

For i = 1 To Fre '必要枚数コピー
Sheets("原本").Copy after:=Sheets(i)
ActiveSheet.Name = Lot & "-" & i 'シート名をロット番号-枝番に
Range("a1").Value = Lot & "-" & i 'ロット番号欄(a1)に番号を入力
Next

Sheets("Sheet1").Select '最初のシートに戻る
End Sub
-------------------------------------------------

ここから自分の環境に合うように変更していただければいいのですが、
どうでしょうか・・・
    • good
    • 0
この回答へのお礼

こんなにも早く回答いただいて本当にありがとうございました。
実際に確かめてみて、分かりました。
実務に適合できるよう、変更してみます。
今後ともよろしくお願いします。

お礼日時:2006/02/08 20:16

一応のたたき台にはなったみたいですね。


申し訳ないのですが、#2のコード内で「Dim Sname As String」は
削除してください。
このマクロ内では使用していない変数ですので。

この回答への補足

ありがとうございます。予定のフォームに組み入れたところ、実際の1000万個単位の出荷数量を入れると、オーバーフローのようなエラーメッセージが現れました。まだしっかり確認していませんので自信がありませんが、桁数が多すぎる場合があるのでしょうか。

補足日時:2006/02/09 07:50
    • good
    • 0

変数に範囲がありますので型をIntegerからLongにすれば


大丈夫だと思います。
ちなみにEXCELにもいくつか制限がありますので確認して
下さい。

参考URL:http://www.relief.jp/itnote/archives/000579.php
    • good
    • 0
この回答へのお礼

何度もご回答いただきありがとうございました。
落ち着いたら、もっと詳しく勉強しようと思います。

お礼日時:2006/02/10 17:22

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