プロが教えるわが家の防犯対策術!

セルの中に先週の月曜日の日付を入れたいのです。
形式は○月○日で表示したいのですができますでしょうか。

手動で入力するのではなく、ファイルを開いたらそのセルにすでに入力されているといった風にしたいのです。

ファイルを開く日が決まっていたらDATE関数でいけるのですが、ファイルを開く日は決まっていません。

マクロを使えば可能だと思うのですが、アフォなのでよくわかりません。(ノ_<。)

プロフェッショナルな方!よろしくお願いいたします。

A 回答 (4件)

マクロでの回答をしたいと思います。


1.該当ファイル(Excel)を開きます。

2.上部バーから[ツール]-[マクロ]-[Visual Basic Editer]を選択します。

3.エディターが起動したら、上部バーから[挿入]-[標準モジュール]を選択します。

4.プロジェクトという場所に標準モジュールの[Module1]が作成されましたらそちらをダブルクリックします。

5.下記をコピーして貼り付けてください。
 Function DateConv(datDate As Date) As Date
   Dim datWk1 As Date
   Dim intWk1 As Integer
   If IsDate(datDate) = True Then
      datWk1 = DateAdd("ww", -1, datDate)
      intWk1 = 2 - Weekday(datWk1)
      DateConv = DateAdd("d", intWk1, datWk1)
   End If
 End Function

6.該当セルに=DateConv(now)と入力すれば
 先週の月曜日の日付が出力されるはずです。
 ただし○月○日はセルの書式設定で変更してください。
 (今後の汎用性を高めるため)

作成にあたり日曜日を週の最初として捉えました。
また、週の1週前の月曜日(金曜日であっても先週の月曜日)
となっております。
また、=DateConv("2005/04/01")と入力しても動作します。
    • good
    • 0
この回答へのお礼

丁寧にご回答いただき大変ありがとうございました。

試してみましたが#VALUE!のエラーが出ました。
自分なりに考えてみたのですが、なにぶん勉強不足でわかりませんでした。

他の方の回答でできたので結果的には良かったのですが、大変参考になりました。

どうもありがとうございました。

お礼日時:2005/04/04 13:45

今週の月曜 4/4月 は4/4月


=TODAY()-WEEKDAY(TODAY(),2)+1

先週の月曜 4/4月 は 3/28月
=TODAY()-WEEKDAY(TODAY(),3)-7
    • good
    • 3
この回答へのお礼

GJ!天才!

できました!

なるほど。。。
これならよく見たら理解できそうな感じです。

もうちょっとエクセルとにらめっこしてみます!

お礼日時:2005/04/04 13:47

=TODAY()-CHOOSE(WEEKDAY(TODAY(),2),7,8,9,10,11,12,13)


でどうでしょ^^
    • good
    • 0

説明不足でした


先ほどの例は、月曜日起算の場合です^^;
日曜起算なら以下のとおりです
違いは、日曜日のときに日付が一週間ずれます

=TODAY()-CHOOSE(WEEKDAY(TODAY(),1),6,7,8,9,10,11,12)
    • good
    • 3
この回答へのお礼

素晴らしい!

答え一つ出すのにもいろいろなやり方があるのですね!

CHOOSEですか。。。実は初めて聞く関数です。
自分のバカさが身にしみてわかりました。

今日は一日かけてエクセルを勉強してみます。

No1さんのようにパパッとマクロを書ければいいのですが私はまだスキル不足みたいです。

お礼日時:2005/04/04 13:50

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

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


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