ちょっと変わったマニアな作品が集結

見積書をエクセルで作成しています、セルに見積書番号を付けたいのですが自動で連番を書き込む事はできますか?
見積書のエクセルファイルを開いたときに番号が1つ増えて番号が記入されていく様にしたいと思っています。

A 回答 (2件)

VBAになりますね。



Private Sub Workbook_Open()
Sheets("見積書").Cells(1, 1) = Sheets("見積書").Cells(1, 1) + 1
End Sub

これでA1に連番がはいります。

この回答への補足

アドバイスありがとうございます。
VBAは未知でもうしわけありませんが、セルM4に連番が入る様にしたいのですが、どの様にしたら連番になるのでしょうか。

よろしくお願い致します。

補足日時:2006/07/12 10:08
    • good
    • 38

逆の発想で見積エクセルファイルが先に作成されるとして、そのファイル名の番号を見積番号とする方法では駄目でしょうか。


例えば、見積ファイルが見積-xxxxxx.xlsとして見積番号セルにxxxxxxを取り出します。
=MID(CELL("filename"),FIND("[",CELL("filename"))+4,6)
    • good
    • 12

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルで自動連番

エクセル2000で見積書を作成しています。
項目名等のみのフォーマットを原紙として保存してあり、実際に明細を作成した時は別名で新規保存しているのですが、その原紙を起動した時点で自動的に新しい見積書NO.をつけてくれる簡単な機能などありますでしょうか?

Aベストアンサー

最初の設定だけ少し手順が必要ですが
それ以降はボタン1つなのでご協力下さい。
もしもの場合に備えてバックアップをとってから実施して下さい。


では以下の手順でお願します。


「マクロの貼り付け」
「準備」
「実行」



「マクロの貼り付け」
1.見積のブックを開いて
2.Alt + F11 を押して VBE を起動して下さい。
3.ツールバーの「挿入」-「標準モジュール」
を選んで下さい。
4.出てきた白紙に下のソースを貼りつけて下さい。
5.ツールバーの「ファイル」-「終了してエクセルに戻る」
を選択してエクセルに戻って下さい。



「準備」
1.見積書のシート名を「見積」に変えて下さい。
2.ツールバーの
「ツール」-「マクロ」-「マクロ」を選んで
中から「準備」を選択して、実行して下さい。


これで準備完了です。



「実行」
表示された表に
1.会社名
2.支店名
3.パス
を入れて下さい。

1.会社名は実際にあるフォルダの名前を入力下さい。
まだ実際にフォルダが無い場合は、作成後に入力下さい。
3.パスは実際に1の会社名フォルダのある場所を記入下さい。
1と3はそれぞれディスク上に無いとエラーになります。



見積を作成後、スタートボタンを押して下さい。
設定のままだと下の場所に作られます。

C:\WINDOWS\日本株式会社\0001アフリカ支社.xls





「注意点」

1.「設定」では、会社名、支店名、パス以外は変更しないで下さい。
行や列の移動や削除は行わないで下さい。

2.シート「見積」は、名前を「見積」以外にしないで下さい。

3.準備作業は最初の1回だけ行って下さい。
2回やるとエラーになります。
(もし行う場合は、シート「設定」を削除してから行って下さい。)

4.登録するフォルダは事前に作っておいて下さい。
実行後に、実在しないフォルダが指定されているとエラーになります。

5.見積番号は、自動連番です。
1度スタートボタンを押すと、番号が1つ進みます。
もしも番号を操作する場合(一つ戻す、リセットするなど)は、
シート「設定」の非表示にしてある2行目の数字
「前回見積No.」を変更して下さい。
他は計算式が入っているので注意下さい。


スタートボタンは右クリックするとコピーができます。
場所やシートを移動する場合は、適当な位置へ動かして下さい。

その他何かあれば小さなことでも構いません、連絡下さい。



下をコピーして貼りつけて下さい。

Sub 見積連番保存()

見積番号 = Sheets("設定").Cells(4, 4)
会社名 = Sheets("設定").Cells(6, 4)
支店名 = Sheets("設定").Cells(7, 4)
パス = Sheets("設定").Cells(8, 4)
フルパス = パス & 会社名 & "\" & 見積番号 & 支店名 & ".xls"

Sheets("見積").Select
Sheets("見積").Copy
ActiveWorkbook.SaveAs FileName:=フルパス
ActiveWorkbook.Close

Sheets("設定").Cells(2, 4) = 見積番号
ActiveWorkbook.Save

Sheets("設定").Select
MsgBox "見積書を保存しました。 " & フルパス
End Sub
Sub 準備()
Sheets.Add
ActiveSheet.Name = "設定"

Range("C2") = "前回見積No."
Range("C4") = "今回見積No."
Range("C6") = "会社名"
Range("C7") = "支店名"
Range("C8") = "パス"
Range("C10") = "予定ファイル名"
Range("C11") = "予定登録先"
Range("D2").FormulaR1C1 = "0"
Range("D3").FormulaR1C1 = "=+R[-1]C+1"
Range("D4").Formula = "=REPT(0,4-LENB(D3))&D3"
Range("D6") = "日本株式会社"
Range("D7") = "アフリカ支社"
Range("D8") = "C:\WINDOWS\"
Range("D10").Formula = "=REPT(0,4-LENB(D3))&D3&D7"
Range("D11").Formula = "=D8&D6&""\""&REPT(0,4-LENB(D3))&D3&D7&"".xls"""
Range("E2") = "変更不可"
Range("E3") = "変更不可"
Range("E4") = "変更不可"
Range("E10") = "変更不可"
Range("E11") = "変更不可"
'青
Range("B5:C9,D5:E5,D9:E9,E6:E8").Select
With Selection.Interior
.ColorIndex = 34
End With
'グレー
Range("B2:E4,B10:E11").Select
With Selection.Interior
.ColorIndex = 15
End With
'太字
Range("C2:C4,C10:C11").Select
Selection.Font.Bold = True
'16ポイント
Range("D6:D8").Select
With Selection.Font
.Name = "MS Pゴシック"
.Size = 16
End With
'中中
Range("C6:C8").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
'height
Rows("6:8").Select
Selection.RowHeight = 30
'width
Columns("A").ColumnWidth = 1.88
Columns("B").ColumnWidth = 7.38
Columns("C").ColumnWidth = 14.5
Columns("D").ColumnWidth = 51.5
Columns("E").ColumnWidth = 8.75
'グループ化 非表示
Rows("2:3").Select
Selection.Rows.Group
Selection.EntireRow.Hidden = True
'罫線
Range(Cells(6, 3), Cells(8, 4)).Borders.LineStyle = xlContinuous
Range(Cells(4, 2), Cells(11, 5)).BorderAround xlContinuous

'ボタン作成
Range("C13").Select
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 63, 211.5, 90.75, 54).Select
Selection.ShapeRange.Shadow.Obscured = msoTrue
Selection.ShapeRange.Shadow.Type = msoShadow18
Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 45
Selection.ShapeRange.Fill.OneColorGradient msoGradientHorizontal, 2, 1#
Selection.Characters.Text = "" & Chr(10) & "スタートボタン"
With Selection.Characters(Start:=2, Length:=7).Font
.Name = "MS Pゴシック"
.FontStyle = "太字"
.Size = 16
.ColorIndex = 7
End With
Selection.HorizontalAlignment = xlCenter
Selection.ShapeRange.ScaleWidth 1.31, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 0.89, msoFalse, msoScaleFromTopLeft
Selection.OnAction = "見積連番保存"
Range("D13").Select
ActiveWorkbook.Save
End Sub

最初の設定だけ少し手順が必要ですが
それ以降はボタン1つなのでご協力下さい。
もしもの場合に備えてバックアップをとってから実施して下さい。


では以下の手順でお願します。


「マクロの貼り付け」
「準備」
「実行」



「マクロの貼り付け」
1.見積のブックを開いて
2.Alt + F11 を押して VBE を起動して下さい。
3.ツールバーの「挿入」-「標準モジュール」
を選んで下さい。
4.出てきた白紙に下のソースを貼りつけて下さい。
5.ツールバーの「ファイル」-「終了して...続きを読む

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

Qエクセルの表を複数枚印刷したときに連番をつけたい

エクセルの1枚の表を100枚印刷し、その表のシート内(AW3)に連番を打ちたいのですが、なにか簡単な方法はありますか?
今までは印刷を100枚して、ナンバーリング(ハンコ)で連番を打っていましたが、ちょっと面倒なんです。
マクロを使ったことのない初心者ですが、何かよい方法はありませんか?よろしくお願いいたします。

Aベストアンサー

#02です。
開始番号、終了番号を指定する場合はこんなマクロです。
ただし開始、終了ともに正の数でないと印刷は行いません。

Sub NumberPrint()
Dim idx As Integer
Dim frmPage, toPage
 frmPage = Application.InputBox("連番を挿入して印刷します" & Chr(13) _
     & "開始番号を入力してください", Type:=1)
 toPage = Application.InputBox("終了番号を入力してください", Type:=1)
 If frmPage > 0 And toPage >= frmPage Then
  For idx = frmPage To toPage
   Range("AW3").Value = idx
   ActiveSheet.PrintOut
  Next idx
 Else
  MsgBox "開始番号、終了番号が不適切です。印刷は行いません"
 End If
End Sub

#02です。
開始番号、終了番号を指定する場合はこんなマクロです。
ただし開始、終了ともに正の数でないと印刷は行いません。

Sub NumberPrint()
Dim idx As Integer
Dim frmPage, toPage
 frmPage = Application.InputBox("連番を挿入して印刷します" & Chr(13) _
     & "開始番号を入力してください", Type:=1)
 toPage = Application.InputBox("終了番号を入力してください", Type:=1)
 If frmPage > 0 And toPage >= frmPage Then
  For idx = frmPage To toPage
   Range("AW3...続きを読む

Q(Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?

こんにちは。
質問内容はタイトルのとおりです。

あるワークシートのあるセルに文字を入力すると、ほかのワークシートのセルにも同じ文字が自動的に書き込まれる方法を知りたいです(ブックは同じ)。複数のワークシートを制御するには、やはりマクロを使うのでしょうか?

よろしくお願いします。

Aベストアンサー

clam_chowderさん、こんにちは。

Sheet1のA1にたとえば「100」と入力しますね。
Sheet2のA1に、これと同じ数値を表示するには、
 =Sheet1!A1
でOKです。

数式をいれるのが苦手なら、
Sheet2のA1セルで「=」を入力すると、数式入力状態に入りますから、
ここでSheet1のシートタブをクリックし、
リンクしたいA1セルをクリックしてEnterすると、
自動的にさきほどと同じ式が入ります。

Q請求書の番号のふりかた

今までは個々に番号を振っていた為、統一されておらず整理をしたいと思ってます。
そこで管理番号の振り方を思案中です。

まず、発行する書類は以下です。
●見積書
●受注書
●出荷指示書
●請求書

上記のナンバーリングは、それぞれがリンクするように1番最初に出す見積書の発行日付を固定し、その日に発行した番号の続き番号、あとは各書類の種別で発行しようと思います。

1月1日に1枚目の発行した見積書ならば、
  20120101-01-A
  ※日付を西暦からで、次に-01-はその日の1枚目、Aは見積書の意味。
受注書の番号は、
  20120101-01-B
  ※Bは受注書の意味。受注が例え1月1日に貰わなくても、頭の日付箇所は固定。


ここまでは大丈夫と思いますが、
請求書は、これらの幾つかの分を月締めで請求書を出す際、番号振り方がまとまりません。

方向としては、個々に注文を受けたものを、請求書で出したときに、見積書とリンクをしたいです。

番号を振る際に、請求書から遡って見積書を見直すときがあります。
それをスムーズに後追いできるように、見積書発行番号、出荷指示書番号などと請求書発行番号が分かりやすいようにしたいです。

良いご提案をお願いいたします。

今までは個々に番号を振っていた為、統一されておらず整理をしたいと思ってます。
そこで管理番号の振り方を思案中です。

まず、発行する書類は以下です。
●見積書
●受注書
●出荷指示書
●請求書

上記のナンバーリングは、それぞれがリンクするように1番最初に出す見積書の発行日付を固定し、その日に発行した番号の続き番号、あとは各書類の種別で発行しようと思います。

1月1日に1枚目の発行した見積書ならば、
  20120101-01-A
  ※日付を西暦からで、次に-01-はその日の1枚目、Aは見積書の意味。
受注書...続きを読む

Aベストアンサー

説明不足で申し訳ありません。
>例えば、月の第一週は、1234 よりの連番で、月の第二週は、頭を2にしての連番です。
について、私は次のように発番しています。

「1」234の最初の1は、月の第1週とし、第2週は、「2」235などのように、頭を2にしています。
後の下3桁は、「いいあんばい」です。(できるだけ意味を持たせないようにしていますが・・・)

またまた、余談ですが、私の場合、Ans 1. に加えて、発番の一部に、請求した地域もコード化しています。

このようなにすることにより、
(1) どのような作業を行ったのか
(2) どの地域で作業を行ったのか
(3) いつ発番(つまり、発生)したのか
請求書などの番号で、明確にできています。(2011年より、私は、採用し実施しています)

尚、あくまでも私自身、細々と個人事業主としての活動で、質問者さまの的にあっていなかったら、ゴメンなさいね。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

QExcelのVBAで自動採番したいのですが

Excel2003のVBAを利用して、例えばコマンドボタンを押した時に、下記のC6の●部分にC列の最大数を検索して自動的に「5」を採番(max+1)入力したいのです。
ただしC2の様に途中に虫食いで空欄があり、またその空欄に後日数字が入る可能性もあります。(C列は多くても40列程度)
数が多くなると採番ミスの恐れがあり、自動化したいのでよろしくお願いいたします。

 |A|B|C|D
1|X|テ|1|
2|L|ス| |
3|V|レ|3|
4|Y|フ|4|
5|N|モ|2|
6|S|シ|●|
7|

Aベストアンサー

選択した行でいいなら

Sub ボタン1_Click()
Dim RG As Range
Set RG = ActiveCell
Range("C" & RG.Row) = Application.WorksheetFunction.Max(Range("C:C")) + 1
End Sub

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルのシートごとに連番を入れたい

エクセルでお客様番号を振ったシートを300枚ほど作ることになりました。
ちなみにお客様番号は連番で通し番号になっています。
エクセルのシートを300枚ほど同じブックに作って
一括で印刷することは可能でしょうか?
ちなみにその番号以外は同じ内容の文章なので
いっぺんに同じ内容のシートをコピーしつつ、番号だけ連番となることが理想なのですが。
マクロの知識はほとんどありませんが、教えていただけるとありがたいです。
どうかよろしくお願いします。

Aベストアンサー

もし印字上番号が振られればよく
300枚のシートを保持する必要がないのなら
差し込み印刷のような機能を使ってみてはどうでしょう

http://www.vector.co.jp/soft/win95/business/se386179.html
このようなものもあるようですので
EXCELだけでも実現できそうです

Qエクセルで連番をマクロで

こんにちは いつもお世話になっています。
Windows7、エクセル2010で教えてください。

 B3から仮にB100まで文字列があるとします、空白セルはありません。
この状態でA3からA100まで1から始まる連番をマクロで実行したいのです。
実際はB列のデータの最終行は不定です。つまり、B列にデータがなくなるまで(空白セルになるまで)A列に連番をつけたいのです。現在はA3,A4に1,2と入力し、オートフィルで該当セルを選択し「予測」で連番をつけています。
マクロ記録ではB列にデータがなくなる判断ができなくて作れません。
この作業が頻繁にあるものですからマクロができれば助かります。
よろしくお願いいたします。

Aベストアンサー

一例です。
Sub sample()
Dim i As Long
For i = 3 To Cells(Rows.Count, "B").End(xlUp).Row
If Cells(i, "B") <> "" Then Cells(i, "A") = i - 2
Next
End Sub


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング