みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

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

解決済みの質問

日付を元にカウンター~質問に追加です

先ほど質問して、ベストアンサーまで選択してしまいました。が追加で質問させてください。
 先ほどの質問
 WinXp Excel2003 のVBAです。(初心者なので言葉足らずのときは申し訳ありません)
請求書の番号を日付が変更したら、”0”に戻す方法で悩んでいます。

モジュールで、パブリック宣言して

Public Sub 初期設定()
Dim 本日, 受付1, 受付2 As String, 採番 As Integer

本日 = Today()
End Sub

ここで行き詰ってしまいました。本日変数ひ日付を代入して、日付が変わったものと比較するのに、
どの段階で比較すればいいのか?
パソコンのスイッチを切ってしまったら、変数はクリアになってしまってう・・・等々考えていくうちに
わからなくなってしまいました。

多分単純なことなのだと思います。(いろいろネットで調べてみましたが、似たようなものがなかったので、どなたか、似たような参考でもけっこうですので、教えていただけないでしょうか?

その回答が
   Function 請求書番号取得(ByVal 本日 As Date) As Integer

With Worksheets("Sheet1")
If CDate(.Range("A1").Text) = 本日 Then
'日付が変わっていない場合
.Range("B1").Text = CInt(.Range("B1").Text) + 1 '請求書番号を+1
Else
'日付が変わった場合
.Range("A1") = 本日 '日付情報を更新
.Range("B1").Text = 1 '請求書番号をリセット
End If

日付確認 = CInt(.Range("B1").Text)
End With

ActiveWorkbook.SaveAs

End Function


こんな感じでどうでしょう?
Sheet1という名前のシートのA1セルに日付、B1セルに請求書番号を保存します。
そして、本日の日付がSheet1のA1セルと違っていた場合は、A1セルの日付を本日に書き換えてB1セルの請求書番号をリセットします。
このルーチンを使いたい場合は、

Dim Count As Integer '請求書番号

Count = 請求書番号取得(Date)

で追加質問です。

日付確認 = CInt(.Range("B1").Text)とあるのですが、”B1”には請求番号がはいっているんですよね
また日付確認は変数ですか?
変数宣言したとして、Dateでしょうか? Integer でいいのでしょうか?

またFunction からのルーチンはモジュール内でいいでしょうか

基本的なことで申し訳ありませんが、よろしくお願い致します。

投稿日時 - 2012-08-10 13:20:42

QNo.7636770

すぐに回答ほしいです

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

こんにちは 請求書番号ら月日の情報を入れては如何でしょうか(月日の情報4桁+連番3桁)
今日なら 0810001~
請求書番号のあるセルB1は文字列形式で

Sub Test()
  Dim 請求書番号 As String
  Dim str月日 As String

  請求書番号 = Range("B1").Value
  str月日 = Format(Now, "mmdd")
  If Left(請求書番号, 4) = str月日 Then
    '本日なら+1
    Range("H2").Value = str月日 & Format(CLng(Right(請求書番号, 3)) + 1, "000")
  Else
    '月日が変われば
    Range("H2").Value = str月日 & "001"
  End If
End Sub

投稿日時 - 2012-08-10 16:56:26

お礼

お礼が遅くなり申し訳ありませんでした。
休みに入ってしまい、確認せず、思い悩んでいました。
でも、前回の方の回答を読解して、なんとかうまくできました。

そのあとで、かくにんしたところ、watabe007さんが、御回答いただいていたので、感謝しております。日付を管理番号に加えるお知恵を生かしてみます。

本当にありがとうございました。
(その上訂正までしていただき、申し訳ありませんでした。)<m(__)m>

投稿日時 - 2012-08-12 13:35:44

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

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

回答(2)

ANo.2

訂正
    '本日なら+1
    Range("H2").Value = str月日 & Format(CLng(Right(請求書番号, 3)) + 1, "000")
         ↓
    Range("B1").Value = str月日 & Format(CLng(Right(請求書番号, 3)) + 1, "000")

    '月日が変われば
    Range("H2").Value = str月日 & "001"
         ↓
    Range("B1").Value = str月日 & "001"

投稿日時 - 2012-08-10 17:02:06

あなたにオススメの質問