• ベストアンサー

エクセルのワークシート(テンプレート)に自動連番を付けられますか

エクセルのワークシート(テンプレート)に自動連番を付けられますか 今現在使用してますエクセルは「EXCEL2000」です いつも登録しています自作のテンプレートの連番の位置に[No.000000]を毎回手入力で入れてまして関数か何かで登録できれば非常に助かるので、ご存知の方お手数ですが教えてください。宜しくお願いします

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

テンプレートを開くたびに既に使った連番+1が自動的に決められたセルに書き込まれるようにしたいということだと思いマクロを書いてみました。はずしていたら読み飛ばして下さい。 キー記録での方法はよく分かりませんので直接書いています。 まず、自動ではありませんが、例えばA1セルに[No.000000]を設定したい場合、  A1:="[No."&RIGHT("00000"&B1,6)&"]" としてB1に数値を入力する方法はどうでしょう?B1セルの色を白にするとか、セルの書式設定→表示形式のユーザー設定でスペース1つを設定しておけばB1は表示されません。個人的に使用するならB1を覚えておいて入力すればいい?次はむりやり自動的に表示する方法です。 この質問は今回使う連番をどうやって決めるかが要点だと思います。テンプレートに書き込んでおくのも面倒ですし、既に作成したファイルをサーチするのも重い処理になってしまいます。 そこで、テキストファイルを用意して、このファイルに記録した番号を使うようにしています。 ファイルには次に使われる連番をセットしておきます。ハードディスクのどこかのフォルダにメモ帳等を使って次に使う番号を書いたテキストファイルを作ります。(101番だったら101を入力します) このファイルのフルパスは下記マクロにセットします。 テンプレートの Workbook_Openイベントに書き込みます。(手順は下に)   ツール→マクロ→Visual Basic Editor でVBE画面に移ります。   表示→プロジェクトエクスプローラ でプロジェクトエクスプローラを表示し、   ThisWorkbook をダブルクリックしてエディット画面を出します。   下記のコードをコピーして貼り付けます。   次に使う番号を書いたテキストファイル名と、自動連番をセットするシート名とセル番地は   ご自分のものに合うように変更して下さい。(「これは例です」と書いた箇所です) 次に、自動連番をセットするセルは未入力状態にします(クリアしておきます) 終ったらテンプレートとして保存して下さい。(xlsファイル形式でテストして完成したらテンプレートにしたらどうでしょうか) 欠点・・・ xlsファイルとして保存してもマクロが残ってしまいます。 m(_ _)m ただし、連番を登録するセルに既に入力(xlsファイルになっている)があれば更新しません。 テンプレートを開いた時点でテキストファイルの連番が更新されるため、そのファイルを保存しなければ連番が飛ぶことになってしまいます。手で修正が必要です。 参考になればと思い作りました。 '***使用済み最終番号を書いたファイル名 Const renbanFile = "A:\Renban\RenbanData.txt" 'これは例です 'テンプレートを開いた時点で連番を読込みシートに書く Private Sub Workbook_Open() '書き込む位置の定義 Dim rg As Range '自動連番をセットするセル Set rg = Worksheets("Sheet1").Range("A1") '***これは例です If rg <> "" Then Exit Sub '既に書かれていれば何もしない End If Dim fileNo As Integer 'ファイル番号 Dim renban As Long '連番 '連番の入力 fileNo = FreeFile Open renbanFile For Input As #fileNo Input #fileNo, renban: Close '連番を書き込む rg = "[No." & Right("000000" & renban, 6) & "]" '連番の更新(次回使う番号を書込み) Open renbanFile For Output As #fileNo Print #fileNo, renban + 1: Close End Sub

fuji25
質問者

お礼

かなり詳しく内容を教えていただきまして、本当に有難うございます また、お礼の返事も大変遅くなりましてすみませんでした。と言いますのもパソコンが故障してしまいましてどうにも成りませんでした。回答いただきました内容で ベーシックは全然判らないので、ベーシックの解説書を買ってこれから勉強しますので、今後とも宜しくお願いします。

その他の回答 (1)

  • j_euro
  • ベストアンサー率25% (29/115)
回答No.1

補足ようきゅ~ テンプレートって、EXCEL2000特有の機能? それとも自作のひながた(ワークシート)のことをfuji25さんがそう読んでいるだけなの? 連番の位置とは、シートごとに特定のセルを決めているの?そして、そんなシートが1つのブックにたくさんあるってこと?毎回手入力ってことは、さらにそんなブックがたくさんある(作って行く)ってこと? あと、マクロ(VBA)は、つかえますか?もし使えるなら、 マクロではいやな理由があるの? で、とりあえず、勝手な推定でいうと・・・ EXCELマクロで可能です。 (1)ツール/マクロ/新しいマクロ記録     マクロ名など適当に・・・ (2)やりたい操作をひとつやる    (あるシートを選択し、連番のセルに、     設定したい番号を入れる) (3)マクロ記録の終了 (4)ツール/マクロ/VisualBASIC.... (5)さっき(1)で選んだ保存先を指定すると    記録されたマクロが出ます。 (6)ここからプログラムをちょっと変更すると    できるんですが・・・    解説書などがあったほうがいいです。    じっと見てわかっちゃう人もいますが・・

fuji25
質問者

お礼

回答くださいまして有難うございましたまた、お礼の返事が遅くなりましてすみませんでした使っているパソコンが故障してましてようやく直りました。 マクロを勉強して見ます。有難うございました。

関連するQ&A

  • 複数シートの特定の位置に連番を振る方法??

    関数もマクロもまだまだ理解できていない初心者です。 エクセルで送り状を作成していまして、毎回「原紙」のシートをコピーして必要事項を入力し プリントアウトして使っています。 この中の項目に連番でナンバーを振る欄があり(位置は固定されています)、今現在はものすごく原始的に前のシートを確認して、ナンバーを手入力しています。 これを、原紙のシートをコピーした際に、自動でナンバーが振られるようにしたいのですが・・・ 何かいい方法はありませんでしょうか?? シート名を日付で管理し、後で確認できるよう、数か月分は保存している状態です。 また、ただの送り状なので、データベース化する必要はありません。 どなたかお知恵をお貸し下さい、よろしくお願い致します。

  • エクセル シート追加時にセルに自動連番を入力。

    エクセルで顧客リストを作成しています。 シートを追加する方法でページを増やしていこうと考えて いるのですが、シートを追加すると会員No.と設けたセルに 自動で番号が連番で入力されるように設定したいです。 スタートの番号は00100から始めたいのですが。 宜しくお願い致します。

  • Excelのワークシートを自動生成2

    こんにちは、 昨日、ワークシートの自動生成方法を教えて頂いたものです。 皆様からの回答で逆にやりたいことがはっきりしたので再度質問させてください。 ExcelでSheet1のA列の1行目、2行目・・・入力最終行までの各行の文字を ワークシート名にした新しいブックを、自動生成したいです。 昨日は作成するワークシート数を指定しましたが 作成ワークシート数が変わることも想定したく思います。 ご教授のほど、何卒よろしくお願いします。ト

  • エクセルで自動連番の式について

    エクセルの計算式を教えて下さい。 シート1に   A列 B列 1 0001 りんご 2 0002 みかん の様にB列に入力がされたらA列に自動的に連番が振られる様に A列に =IF(LEN(B1),TEXT(COUNTA($B$1:B1),"0000"),"") と式を入れました。 シートが変わっても、連番になるようにするには、どうすれば良いでしょうか?

  • エクセル シート 関数

    エクセル2003にて、シート番号の関数についてです。 現在sheet1(0)をコピーして必要分だけsheet1(1)、sheet1(2)としています、 日によってsheet1(50)ぐらいまで作成することがあります、これを利用して=IF(ISERROR(INDIRECT("'Sheet1 (1)'!c3")),"-----",INDIRECT("'Sheet1 (1)'!c3"))このような関数を管理シートで使用しています。 問題として関数内のsheet1(1)が連番なので表作成時(1)の部分の1を連番として2、3・・51、52と関数内でsheet1(51)自動で入力するための関数を教えください。

  • エクセルのシートの使い方

    お訊ねします。 エクセルにおいて1枚のシートに連番(枝番)を振って、印刷したいと思っています。 具体的にはヘッダー右上(セルでもOK)に何らかの方法で001から100までを順番に振って連番で1枚ずつ印刷したいということになります。この場合、ワークシートを1から100までの100枚を作らないとならないでしょうか? それとも関数を使用したり、もう1枚シートで001から100までの連番を振って、参照することにより1枚のシートで対応することはできますでしょうか? ご教示の程、宜しくお願い致します。

  • Excelで複数のワークシートのデータを1つのワークシート

    Excelで、複数のワークシート(22ワークシート)のデータを1つのワークシートにまとめたいのですが、関数か何かで出来る方法はないでしょうか?.1ワークシートの行数は、まちまちですが、平均6000行ほどあります。

  • Excelで連番が増えるごとに数式範囲も自動的に増やせますか?

    Excel2000を使用してます。 ある一覧で、都度、入力数をカウントしてます。 数えるポイントは「ID」という連番の列なんですが、これをいつもフィルで縦に伸ばしてる状態です。 この場合「COUNTA(範囲)」の関数を使用しますが、フィルで伸ばすので、出来たら範囲が自動的に増える関数かVBAがあればと思います。 こんなこと出来ますか?

  • エクセルのシート連番の振り直し

    今、VBAを勉強中です。 あまりエクセルに詳しくないので教えてください。 エクセルを開くと、Sheet1、Sheet2、Sheet3が最初に出ますが 例えば、Sheet2、Sheet3を削除した場合 次からワークシートを挿入するとSheet4、Sheet5と 自動的にカウントアップしえ作られてしまいます。 Sheet1,4,5となってしまったものを Sheet1,2,3…と元のように番号を振り直す方法はありますでしょうか?

  • VBAを使用し、自動でシートごとに連番を入れる方法

    Excel2003のVBAを使用し、自動でシートごとに連番を入れる方法を教えて下さい。 P0911~ P0950までとか番号が自由に設定出来て、尚且つ、最初の番号に入っているエクセルデータが最後の番号まで同じ内容で導入されているのが望ましいです。 どなたか、ご教示頂けると大変助かります。

専門家に質問してみよう