• ベストアンサー

excel関数について

現在、EXCELで会社の注文書を作成しています。合計金額が入力されると同時に合計金額入力して日を発行日として表示したいのですが、その発行日が次の日になると変わってしまいます。良い方法はないでしょうか?日付が入るセルには以下の関数を入れています。 =IF(C15,TODAY()," ") できれば関数で教えてください。よろしく お願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

TODAY関数は、そういう特徴を持った関数です。 これが普通は便利なんですが。 だからTODAY関数は使えません。 (1)シートの自分で決めたセルに1回だけ日付を入れておき、そこを参照。 しかしそのシート(のそのセル)を別の日の当日なんてで置き換えて使うと、全部がその日に置き換わってしまう。 (2)CTRL+;を使う。これが結構便利。 (3)VBA  C列でダブルクリックすると、アクチブセルに当日日付(マイナス1日=前日の決めでも良い。下記プログラムでは Date()-1に変える)にする約束 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column = 3 Then ActiveCell = Date End If End Sub (4)(エクセルで使える)カレンダーコントロールを使う http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_calendar.html (この例はフォームに貼り付け版だが、そのシートに貼り付け版もできる)

warchin3
質問者

お礼

詳しく教えて頂き大変にありがとうございました。すべて有効ですので、どれを使うか検討します。ちなみに(3)のCalendar1ボタンはどのうようにして作成すればよいのでしょうか?

その他の回答 (5)

  • turuzou
  • ベストアンサー率33% (15/45)
回答No.6

下記も参考になりそうです。 Excel(エクセル) VBA入門:ワークシートのイベント http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_event.html の Changeイベント

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

#4です。 >(3)のCalendar1ボタン ボタンでなく、ダブルクリックで発動します。 例えばSheet1シート+C列(#4のコードでは)+ダブルクリックで発動します。 Sheet1のシート・タブ部で右クリックし、コードの表示、 左をWorksheet、右をBeforeDoubleClickを選択し、#4のようにコピペ。 右や左と言うのは(General)と(Declaration)と見えている部分のそれぞれの▼をクリックして選びます。

warchin3
質問者

お礼

ありがとうございます。(3)を使わせて頂きます。

  • Sinogi
  • ベストアンサー率27% (72/260)
回答No.3

まるっきり蛇足ですが・・・・ コントロール+セミコロン Ctrl ; の同時押しで本日の日付が入力できます。

warchin3
質問者

お礼

大変にありがとうございました。参考になりました。

  • sky-plane
  • ベストアンサー率37% (33/88)
回答No.2

TODAY関数についての説明をします。 TODAY関数は入力した日の日にちを返す関数ですよね。これはご存知だと思うのですが、よくよく読んでみると原因が分かると思います。 今日の日付を返すんですよ。今日の日付を。 TODAY関数は入力した時の日付だけではなくファイルを開いたときの日付に更新してしまいます。すると、次の日には次の日の日付が表示されるのです。 これの解決策としてはTODAY関数を使わないようにしましょう。 具体的なやり方は、今日の日付は手で入力するようにすればいいのです。なので、シート上のどこのセルでもいいので今日の日付(例:2009/7/14)を入力します。次にこの数式 =IF(C15,TODAY()," ") のTODAY()の部分を日付を入力したセル番地を指定しましょう。 例:セルA1に日付を入力した場合 =IF(C15,A1," ") こんな感じです。 分からないところがありましたらご報告お願いします。

warchin3
質問者

お礼

大変にありがとうございました。検討いたします。 "シート上のどこのセルでもいいので今日の日付(例:2009/7/14)を入力します。"について質問です。 直接=IF(C15,A1," ")を入力したセルに今日の日付を打ち込むのと同じことですよね?

回答No.1

>できれば関数で教えてください。 たぶんマクロを使わないと実現不可能だと思います。 VBAの質問でないのであれば、 [技術者向] コンピューター > 業務ソフトウェア > 会計ソフト http://oshiete1.goo.ne.jp/c234.html の方が適切かと。

関連するQ&A

専門家に質問してみよう