[[20160402083717]] 『セルA1に平日のみの日付を表示』(ジウ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セルA1に平日のみの日付を表示』(ジウ)

1ヶ月ごとに1Book 約25枚のシートが用意されていて、1日1シートを使用します。
最初のシートのセルA1に2016/4/4、次のシートのセルA1に2016/4/5と土日祝日を除いた
平日のみを毎月手入力しているので、簡素化できたらと考えています。
Bookは新規作成ではなく、使い回しです。
初心者なので良い方法を教えていただけたらと思います。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 Workday関数
(GobGob) 2016/04/02(土) 08:51

 たとえば シート名を左から 1、2、3、・・・25 と変更しておきます。
 で、最初のシートには、手入力で 2016/4/4 等をいれます。
 2枚目のシート以降の A1 に =WORKDAY(INDIRECT(RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))-1&"!A1"),1,祝日)

 これで、すべてのシートに、最初のシートのA1にいれた日付を元に、営業日がセットされると思います。

(β) 2016/04/02(土) 09:11


すみません シート名には0404月、0405火とセルA1とリンクする日付と曜日を入れるようになっておりますので、変更することができません。
(ジウ) 2016/04/02(土) 09:19

 >シート名には0404月、0405火とセルA1とリンクする日付と曜日を入れるようになっておりますので

 これって各シートのA1セルに土日祝を除いた日付を入力後、マクロでシート名を書き換えていると
 いうことですか?
(se_9) 2016/04/02(土) 09:49

そうです。
(ジウ) 2016/04/02(土) 09:54

 >>シート名には0404月、0405火とセルA1とリンクする日付と曜日を入れるようになっております

 ということは、25枚のシート名を、当該の日付で変更されるんですね?
 う〜ん・・・それなら、シート名変更の際に、A1も打ち直せば、そんな手まではないと思いますが?

 それはさておき、では、25枚のシートの、どこか決められた場所(たとえば Z1 とか)に
 シート毎に1から連番を振ることはできますか?

 もし、そうできるなら、最初のシートのA1に 開始日 という名前を付けておいて
 2枚目以降のシートのA1 の式を =WORKDAY(開始日,Z1-1,祝日) にすればいかがでしょう。

(β) 2016/04/02(土) 09:55


 各ブックに年間の祝日が入ったシート(シート名:祝日)を1枚目に入れておいて

 Sub 日付()

     Dim i As Long

     Application.ScreenUpdating = False

     For i = 2 To Sheets.Count
         Sheets(i).Range("A1").Value = Application.WorkDay(Date, i - 1, Sheets("祝日").Range("A1:A30").Value)
         Sheets(i).Name = Format(Sheets(i).Range("A1").Value, "mmddaaa")
     Next

     Application.ScreenUpdating = True

 End Sub
(se_9) 2016/04/02(土) 10:00

できました。
大変助かります。ありがとうございました。
(ジウ) 2016/04/02(土) 10:36

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.