- ベストアンサー
Excel の関数で TODAY() の固定化
帳簿の欄外 A2 に 済 、B2に TODAY() で現在月日を表示 書類の処理が終ると J6 に 済 と入れると K6 [ IF($J6="","",VLOOKUP($J6,$A$2:$B$2,2,FALSE))] に現在月日が自動で入るのですが、K6 の日付を TODAY() が変わっても変化しない様に固定化出 来ないでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No.1です! たびたびごめんなさい。 投稿後に気づいたのですが、関数が絶対参照になっているということは行方向に何行もデータがあるということなのですよね? もしそうであれば前回のコードはK6だけしか当てはまりませんので、コードを訂正しておきます。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から If Target.Column = 10 Then If Target = "済" Then With Target.Offset(, 1) .Value = Range("B2") .NumberFormatLocal = "yyyy/m/d" End With Else Target.Offset(, 1) = "" End If End If End Sub 'この行まで お役に立てば良いのですが、外していたらごめんなさいね。m(__)m
その他の回答 (2)
- popopopoon
- ベストアンサー率50% (1/2)
帳簿のように、〆という概念がある書類は、 固定化したいセルだけを確定してくれるような フリーソフトを使うのが便利です。 エクセル 計算値確定 フリーソフト でグーグルやヤフー検索すると 使えそうなのが出てきます。 参考URLがグーグルでトップに出ます。 私も使ってますが操作が簡単で便利です。
お礼
ありがとうございます。 今後、紹介されたソフトを試してみます。
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! K6セルに関数が入っている以上、B2セルの値に変化があれば当然K6セルの値も変化してしまいます。 そこでVBAでの方法になってしまいますが、コードの一例を載せておきます。 画面左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面がでますので、 ↓のコードをコピー&ペーストしてみてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から If Target = Range("J6") Then If Range("J6") = "済" Then With Range("K6") .Value = Range("B2") .NumberFormatLocal = "yyyy/m/d" '←日付の表示形式は適宜変更してください。 End With Else Range("K6") = "" End If End If End Sub 'この行まで 参考になれば良いのですが・・・m(__)m
お礼
tom04 さんありがとうございました。 マクロ・VBA関係はまったく分かりませんでしたが、指示どおりコードを貼り付けましたら 思考どおり帳簿の方が機能するようになりました、感謝いたします。 大変ありがとうございました。