連続したシリアルを自動生成する方法

このQ&Aのポイント
  • VBA入門したばかりの初心者です。業務で使用するのですが、お力を貸していただければ助かります。
  • 最終的にはコードをタイトルとしたテキストファイルに数量分のシリアルを出力したいのですが、初歩的な部分でシリアルの生成ができません。
  • 使用環境はwinXP SP2とExcel2000(9.0)です。
回答を見る
  • ベストアンサー

連続したシリアルを自動生成する方法

連続したシリアルを自動生成する方法 VBA入門したばかりの初心者です。 業務で使用するのですが、お力を貸していただければ助かります。   A     B 1 コード   1111 2 数量     40 3 シリアル  25250 毎回するのはB1:B3です。 シリアルは先頭のシリアル番号であり、数量分連番で作成しなければなりません。 最終的にはコードをタイトルとしたテキストファイルに 数量分のシリアルを出力したいのです。 ですが、初歩的な部分でシリアルの生成ができません。 一度"SHEET2"などにシリアルを生成するか、"SHEET1"の空きスペースに作成しても 構いません。(まだ構造がはっきりできていないのでモヤモヤしています) 使用環境: winXP SP2 Excel2000(9.0) 不足情報があればご指摘くださいますよう、お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • chuchuo
  • ベストアンサー率45% (99/217)
回答No.1

こんな感じですか 一例です。 Sub Macro1() Dim CODENo As Integer Dim Suuryou As Integer Dim NowSN As Integer CODENo = Sheets("Sheet1").Range("B1") Suuryou = Sheets("Sheet1").Range("B2") NowSN = Sheets("Sheet1").Range("B3") Sheets("Sheet2").Select For i = 0 To Suuryou - 1 Range("A1").Cells(i + 1) = NowSN + i Next Sheets("Sheet2").Activate End Sub

ampmman-ampmman
質問者

お礼

早速のご回答ありがとうございます! まだまだ初心者なので本当に助かりました。 すばらしい回答でした!

その他の回答 (1)

  • Hardking
  • ベストアンサー率45% (73/160)
回答No.2

一番お勧めするのは、シリアル番号のデータ管理を Access等のDBで行い、業務入力操作は 今まで通りEXCEL VBAマクロを行う方法。 只、テキストファイルに保存すれば良いならば 1.コード番号単位にファイルを管理する。(ファイル名をコード番号にする) 2.保存データは、開始シリアル番号と終了シリアル番号の2項目

ampmman-ampmman
質問者

お礼

ありがとうございます。 規則にのっとりシリアルを作成するのですが、できればエクセルのみで 動かしたいと思いこのような質問をさせていただきました。 ありがとうございました。

関連するQ&A

  • 請求書等のシリアル番号生成方法?

    請求書(E-mai本文用)等に使用するシリアル番号の生成の仕方を知りたいのですが、どうすればよいのでしょうか? 「マクロ秒とかを使用するのかな?」とも思いますが。 できれば、きっかけとなる関数や知識などをお教え下さい。 簡単なコードなどでも結構です。 シリアル番号を連番で出す場合とランダム出す場合では、方法が違うように思いますが。一様、両方の方法を試してみたいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 複数の行に入ったデータをひとつのセルにまとめるVB

    複数の行に入ったデータをひとつのセルにまとめるVB 以前にもこちらで助けていただきました。 皆様のおかげで順調にすすんでおります。 さて、また初歩的な質問で申し訳ないのですが、 『入力』というシートに   A     B 1 コード   1111 2 数量     40 3 シリアル  25250 というデータがあり、自動生成で『Sheets1』に     A   1  52520; 2  52521; 3  52522; 4  52523;     ・     ・ 40 25289; (↑シリアルの後ろに”;”がついています。) というデータを作ったとします。 これを『Sheets2』のA1セルに 52520;52521;52522;52523;52524;52525;52526;・・・ とつなげたい時、どのように書けばよいのでしょうか。 エクセルで手動ですとSheets2のA1セルに =Sheet1!A1&Sheet1!A2&Sheet1!A3&・・・Sheet1!A40 と繰り返すことになります。 これをどうにかVBで生成したいのですが、、、。 『入力』シートに記載してある、数量は毎回変わるため、 入力シートの数量(B2)の値を繰り返しの回数に指定したいと思っております。 つたない表現ですが、どうぞお力をお貸しください。

  • シリアル番号検索を早くする方法

    office2016 (1)ORACLEからシリアル番号とその工事名称をexcelへインポート (2)シリアル番号に対する工事名称を確認して、作業工程のデータを作成 (3)作成した作業工程のデータをORACLEへ登録 というデータ作成をしています。 もともとは、(1)、(2)は無しで対応していたのですが、シリアル番号を手入力すると間違えるので、(1)、(2)の内容を追加しました。 登録されているシリアルの数が多い(4万件ほど)ので、先頭1桁目の文字列、先頭2桁目の文字列抽出、先頭3桁目の文字列抽出、先頭4桁目の文字列抽出をし、 あとは、先頭4桁で絞ったシリアル番号の集まりにして、その中からプルダウンメニューで対象のシリアル番号を特定させるという構成にしています。 シリアル番号の桁数は8桁。先頭4桁は英数文字、後半4桁はほぼ数字。若干英文字混じる。 MENUシート 工事番号の絞り込みとその工事番号の名称表示を実施 A13セル:シリアル番号1桁目を表示。入力規則 =SERIAL!$H:$H B13セル:シリアル番号2桁目を表示。入力規則 =SERIAL!$iI$I C13セル:シリアル番号3桁目を表示。入力規則 =SERIAL!$J:$J D13セル:シリアル番号4桁目を表示。入力規則 =SERIAL!$K:$K E13セル:8桁のシリアル番号表示。入力規則 =KOJI!$A:$A SERIALシート ORACLからインポートしたデータ表示 A列:シリアル番号 B列:工事名称 C列:シリアル番号の1桁目表示 D列:シリアル番号の2桁目表示 E列:シリアル番号の3桁目表示 F列:シリアル番号の4桁目表示 G2セル:MENUシートで先頭4桁の番号表示 =MENU!A13&MENU!B13&MENU!C13&MENU!D13 H列:インポートしたシリアル番号の先頭1桁目に使用されている文字列表示 I列:インポートしたシリアル番号の先頭2桁目に使用されている文字列表示 J列:インポートしたシリアル番号の先頭3桁目に使用されている文字列表示 K列:インポートしたシリアル番号の先頭4桁目に使用されている文字列表示 KOJIシート 先頭4桁で絞り込んだシリアル番号の集まりを表示する マクロ MENUシート Private Sub Worksheet_Change(ByVal Target As Range) If (Target.Column = 1 Or Target.Column = 2 Or Target.Column = 3 Or Target.Column = 4) And Target.Row = 13 Then chushutsu Else End If 標準モジュール Sub chushutsu() Application.ScreenUpdating = False Sheets("KOJI").Select Columns("A:B").Select Selection.ClearContents Sheets("SERIAL").Select Range("G1") = "SERIAL" Range("G2") = "=MENU!R[11]C[-6]&MENU!R[11]C[-5]&MENU!R[11]C[-4]&MENU!R[11]C[-3]" ' Columns("A:B").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _ Range("G1:G2"), Unique:=False ' Cells.Select Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Sheets("KOJI").Select Range("A1").Select ActiveSheet.Paste ActiveWorkbook.Worksheets("KOJI").Sort.SortFields.Clear ActiveWorkbook.Worksheets("KOJI").Sort.SortFields.Add Key:=Range("A:A"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("KOJI").Sort .SetRange Range("A:B") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Sheets("SERIAL").Select ActiveSheet.ShowAllData Sheets("MENU").Select Application.ScreenUpdating = True End Sub 問題なのは、MENUシートのA13,B13,C13,D13セルでプルダウンメニューから文字を選択する度にマクロが動作するのに、若干時間がかかること。 シリアル番号を検索するのに、基本、先頭1桁目から順番に絞り込みます。 なので計算方法を手動にしておき、先頭1桁目から3桁目まではマクロ動作させず、4桁目を指定した後にマクロ実行するという手もありますが、後から2桁目の文字だけ変更して別のシリアル番号検索という場合もあるので対応できません。 CTRL+Fで工事番号を手入力して検索したらすぐに探せますが、手入力は面倒なので、先頭4桁の文字をプルダウンで特定して絞り込むという構成のままで検索時間の短縮が図れる構成としたいです。 マクロに関してはベタで教えていただきたく。

  • excel VBAを使って、データを自動的に表示させたい!

    excelのVBA・マクロの書き方について教えてください!! たとえば、商品データ(商品名、数量、産地、担当者、商品コード)を入力したシートがあります。 別のシートに、商品名と数量を入力するだけで、商品データを参照して、産地・担当者・商品コードが自動で入力されるマクロを作成したいです。 「商品名」だけを入力して、表示させることはできたのですが、 商品名が同じで、数量が違うものがあると、片方のものしか表示されません。 A・B列に「商品名」・「数量」を入力して、自動でデータが表示される方法はありますか??

  • Excelで動的にイベントを作成する方法

    Excelのシート上へコントロールを動的に生成,配置するVBAを作っています。とりあえず生成,配置は出来たのですが、そのコントロールに対し、イベントプロシージャを動的に作成するところが上手く出来ません。 Access VBAだと、「CreateEventProc」のキーワードでヘルプを調べると出てくるサンプルコードで動くのですが、同じものをExcel VBAで動かそうとするとエラーが出ます。 Excelでは動的にイベントプロシージャを作成できないのでしょうか?もし作成する方法をご存知の方いらっしゃいましたら、ご教授下さい。宜しくお願い致します。

  • Excelについて質問します

    Excel2000を使用しております。 早速ですが、たとえば以下のようなシートがあります。 <Sheet1> 「商品コード」「数量」「金額」「商品グループコード」   A0001    10  ¥500    01   A0002    12  ¥580    01   A0003    17  ¥690    02 このシートから以下のようなシートを作成します。 <Sheet2>   商品グループ 01  「商品コード」「数量」「金額」    A0001    10  ¥500      A0002    12  ¥580      ・        商品グループ 02  「商品コード」「数量」「金額」   A0003    17  ¥690 このとき、Sheet1の商品グループは毎月の売上状況により変わります(その月売れないものもあれば、新たに売れるものもある)。 Sheet2を自動的(マクロ、VBA)に作成したいのですが、何か良い方法はないでしょうか?うまく表現できなくてすみません。

  • エクセルで自動連番

    いろいろ調べてもわからなかったので、教えてください。 複数行コピー&自動連番の操作についてです。 sheet1に以下の表を作成しました。   A         B     C       D 1|【グループID】 【品名】  【個別ID】  【数量】 2|  001      Aセット    10001     5 3| 002       Bセット    20001     2 マクロで複数行コピーを行い、sheet2に    A        B      C       D 1|【グループID】 【品名】 【個別ID】 【数量】 2| 001       Aセット    10001     5 3| 001       Aセット    10001     5 4| 001       Aセット    10001     5 5| 001       Aセット    10001     5 6| 001       Aセット    10001     5 7| 002       Bセット    20001     2 8| 002       Bセット    20001     2 の表を作成することはできたのですが、できれば【個別ID】を   A        B      C       D 1|【グループID】 【品名】  【個別ID】  【数量】 2| 001       Aセット    10001     5 3| 001       Aセット    10002     5 4| 001       Aセット    10003     5 5| 001       Aセット    10004     5 6| 001       Aセット    10005     5 7| 002       Bセット    20001     2 8| 002       Bセット    20002     2 という形でマクロで複数行コピーと組み合わせて自動で採番まで行いたいと思っています。 ちなみコードは、完全に自分で組む事はできないですが、コードの内容を理解して改造できる程度です。 よろしくお願いします。

  • Excel VBAでQRコードを生成したい

    下記のようなExcelファイルがあります。 (Webシステムからのダウンロードで作られる.xlsmのファイル) このExcelを開くときに、各シートにB4セル(データ3)をもとにQRコードを生成したいです。    A  | B   1  タイトル(AB結合) QRコード(タイトルと同様のセル、タイトルの右側に配置) 2 項目名1 データ1 3 項目名2 データ2 4 項目名3 データ3 5 項目名4 データ4 ・シートはダウンロードするデータ数によるため変動 ・各シートに1つQRコードを生成 テンプレートを利用しダウンロードしているため、指定のセルにはもともと違う値が入っています・ ActiveXコントロールでは中身のデータが更新されない&シート2枚目以降にQRコードが生成されなかったためマクロで作成したいのですが、 インターネットで調べると1シート内の連続生成のみで シートごとの繰り返し方がわからなかったので投稿させていただきました。 ご教授よろしくお願い致します。

  • VBAを使ってセルを検索後別シートのデータを自動入力したいです。

    見ていただきありがとうございます。 エクセルの2000VBAを使って次のようなことを考えています。 シート2に以下のようなデータがあります。 2006/7/20 コード 数量  100  200   200  400 データの数は日によって違います。 シート1には以下の表があります。横軸にはコード縦軸には日付が入っており各対応するセルに数量が入っています。       100  200  300  400 ....←コード 2006/7/1  20  40  100  800 2006/7/2  50  60  200  500   .   .   . 2007/6/30  このような場合、シート2にコマンドボタンを設けて押したときシート2の日付とコード番号によりシート1の表の検索を行って対応するセルにシート2のデータを転記したいのです。シート2のデータは本日分のデータが入った時点でシート1への転記を行います。(1日一回です) また、シート1の表は2007/6/30(これ以降は必要ないので)までの日付がすでに入力されており明日以降のデータの入るセルは空白になっております。 よろしくお願いします。

  • MS Outlookでメールを自動生成したい

    20件ほどのメールをマクロで生成し送信したいのですが、教えてください。 どなかが作成されたものがかならずあるとは思いますが、それをどう検索してよいかもわかりません。 メールの文面はほぼ一緒でそれぞれの相手先に送ります。その際変更したいのは 本文の一行目に来る、送信先の相手の名前です。 自分にもBCCでその履歴が欲しいです。 これを実現するためにはどうすればよいか教えてください。エクセルVBAならできますが、時間が無いので出来合いのものか、ソースコードをコピーして使えるとうれしいです。 使い方を誤るとスパムメールを作ることができますね… よろしくお願いします。

専門家に質問してみよう