- ベストアンサー
エクセル2010についての質問です。
現在エクセル2010を使用しています。 月が変わるたびに同じ数字を自動でプラスしてくれるような関数はありますでしょうか? 例えば・・・ 2013年9月末で4000000が入ってるセルがあるとして、これを2013年10月1日になったら 8000000にする様な関数です。 月が変わるたびに4000000をプラスしたいです。 詳しい方ご教授頂けると助かります。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
#3さんのコードを改良して、年をまたいでも大丈夫なようにしてみました。 Private Sub Workbook_Open() 'この行から With Worksheets("Sheet1") If .Range("B1") <> Date Then .Range("A1") = .Range("A1") + 4000000 * ((Year(Date) - Year(.Range("B1"))) * 12 + Month(Date) - Month(.Range("B1"))) .Range("B1") = Date End If End With End Sub 'この行まで
その他の回答 (3)
- tom04
- ベストアンサー率49% (2537/5117)
No.2です! たびたびごめんなさい。 前回のコードは必ず1か月に1度はファイルを開くコトが前提のコードでした。 実際は何か月も開かない場合があるかもしれませんので、 前回のコードは削除して↓のコードに変更してください。 Private Sub Workbook_Open() 'この行から With Worksheets("Sheet1") If Month(.Range("B1")) <> Month(Date) Then .Range("A1") = .Range("A1") + 4000000 * (Month(Date) - Month(.Range("B1"))) .Range("B1") = Date End If End With End Sub 'この行まで ※ これで仮に2か月ファイルを開かなくても1か月あたり4000000はプラスされます。 (当然毎月・毎日ファイルを開いても問題ありません) どうも失礼しました。m(_ _)m
お礼
ありがとうございました!ベストアンサーをどちらにするか悩みましたが、今回はNo.4の方にさせて頂きました。 でも、私にとってはお二人共ベストアンサーにさせて頂きたかったくらい助かりました。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! >月が変わるたびに同じ数字を自動でプラスしてくれる・・・ というコトは入力済みのセル数値に4000000をプラスすれば良い訳ですよね? VBAになってしまいますが、一例です。 Bookを開くたびにマクロが実行されるようにしていますので、 どこか最終更新日を表示しておくセルが必要になります。 仮にA1セルが4000000をプラスした数値が表示されるセルで、最終更新日をB1セルに表示させておくとします。 Alt+F11キー → 画面左側の「This Workbook」をダブルクリック → VBE画面に ↓のコードをコピー&ペーストしてください。 Private Sub Workbook_Open() 'この行から If Month(Range("B1")) <> Month(Date) Then With Worksheets("Sheet1") '←Sheet1は実際のSheet名に! .Range("A1") = Range("A1") + 4000000 .Range("B1") = Date End With End If End Sub 'この行まで ※ 便宜上A1・B1セルとしましたが、A1セルは実状に合わせ、 B1セル(最終更新日)は目障りにならない場所の使っていないセルにしてください。 上記ファイルを「名前を付けて保存」する訳ですが、ファイルの種類は「マクロ有効ブック」で保存してください。 これでおそらくご希望通りになると思います。m(_ _)m
これでどうですか? =4000000*((YEAR(NOW())-2013)*12+MONTH(NOW())-8)
お礼
ありがとうございました!今回は後者の方々の意見を参考にさせて頂きました。また何かあったらよろしくお願いいたします。
お礼
遅くなりましたが、ありがとうございました!おかげさまでできました!