Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3472 / 13644 ツリー ←次へ | 前へ→

【61983】日付更新とシート一番最後に動かす ハニケン 09/6/15(月) 16:59 質問[未読]
【61987】Re:日付更新とシート一番最後に動かす つるりん 09/6/15(月) 21:48 回答[未読]
【62022】Re:日付更新とシート一番最後に動かす ハニケン 09/6/17(水) 13:05 お礼[未読]
【61993】Re:日付更新とシート一番最後に動かす つん 09/6/16(火) 10:50 発言[未読]
【62023】Re:日付更新とシート一番最後に動かす ハニケン 09/6/17(水) 13:06 お礼[未読]

【61983】日付更新とシート一番最後に動かす
質問  ハニケン E-MAIL  - 09/6/15(月) 16:59 -

引用なし
パスワード
   どなたか教えていただけないでしょうか?

シートが4個あります。
シートの名前は8月3日、8月10日、8月17日、8月24日と1週間のはじめの日としています。
これは各シートのA1のセルと同じです。
”8月1日のシートを更新するとA1のセルが8月31日となり、シート名も8月31日(4週間後)となり、シートが一番最後に動く”
というようなことを考えています。
まずA1のセルを8月3日から8月31日に変更する
:ダミーを作って+28しようとしましたが、うまくいきません。
シート名は
:WS.name = WS.Range("A1").value
シートを一番最後にもってくるのは
:WS.Move After:=Sheets(4)
これだと8月10日で更新するとうまくいくと思えません。

いいお考えはありませんでしょうか?
よろしくお願いします。

【61987】Re:日付更新とシート一番最後に動かす
回答  つるりん  - 09/6/15(月) 21:48 -

引用なし
パスワード
   こういうこと?
Sub test()
Dim mySt As Worksheet
Dim Rg As Range
Dim myStr As String

Set Rg = ActiveSheet.Range("a1")

  Rg = Rg + 28
  myStr = Month(Rg) & "月" & Day(Rg) & "日"
  With ActiveSheet
    .Move after:=Worksheets(Sheets.Count)
    .Name = myStr
  End With
  
End Sub

【61993】Re:日付更新とシート一番最後に動かす
発言  つん  - 09/6/16(火) 10:50 -

引用なし
パスワード
   ▼ハニケン さん
おはようございます^^
つるりんさんが回答されてて、それでOKかと思うので,蛇足ですが・・・

自分でもごちゃごちゃといじってましたので^^


'==============================================
「A1」セルの書式設定が「日付」に設定されてて、
数字も半角でOKなら

Sub Test()

  Dim ws As Worksheet
  
  Set ws = Worksheets("8月1日")
  
  With ws
    .Move after:=Worksheets(Sheets.Count)
    .Range("a1").Value = .Range("a1").Value + 28
    .Name = .Range("a1").Text
  End With
  
  Set ws = Nothing
 
End Sub

'==============================================

数字は全角で(質問の文章内が全角だったので・・・)
書式設定は「文字列」になってる場合

Sub test2()

  Dim ws As Worksheet
  Dim strDate As String
  
  Set ws = Worksheets("8月1日")
  With ws
    .Move after:=Worksheets(Sheets.Count)
    strDate = CStr(CDate(.Range("a1").Value) + 28)
    strDate = StrConv(Month(strDate) & "月" & Day(strDate) & "日", vbWide)
    .Range("a1").Value = strDate
    .Name = strDate
  End With
  
  Set ws = Nothing
 
End Sub

'==============================================

ちょっとごちゃごちゃしてるかしらん?

気が向いたらお試し下さい^^;

【62022】Re:日付更新とシート一番最後に動かす
お礼  ハニケン E-MAIL  - 09/6/17(水) 13:05 -

引用なし
パスワード
   ▼つるりん さん:
>こういうこと?
>Sub test()
>Dim mySt As Worksheet
>Dim Rg As Range
>Dim myStr As String
>
>Set Rg = ActiveSheet.Range("a1")
>
>  Rg = Rg + 28
>  myStr = Month(Rg) & "月" & Day(Rg) & "日"
>  With ActiveSheet
>    .Move after:=Worksheets(Sheets.Count)
>    .Name = myStr
>  End With
>  
>End Sub


ありがとうございます。
おかげさまでうまく行きました。
返事が遅くなってすみませんでした。

【62023】Re:日付更新とシート一番最後に動かす
お礼  ハニケン E-MAIL  - 09/6/17(水) 13:06 -

引用なし
パスワード
   ▼つん さん:
>▼ハニケン さん
>おはようございます^^
>つるりんさんが回答されてて、それでOKかと思うので,蛇足ですが・・・
>
>自分でもごちゃごちゃといじってましたので^^
>
>
>'==============================================
>「A1」セルの書式設定が「日付」に設定されてて、
>数字も半角でOKなら
>
>Sub Test()
>
>  Dim ws As Worksheet
>  
>  Set ws = Worksheets("8月1日")
>  
>  With ws
>    .Move after:=Worksheets(Sheets.Count)
>    .Range("a1").Value = .Range("a1").Value + 28
>    .Name = .Range("a1").Text
>  End With
>  
>  Set ws = Nothing
> 
>End Sub
>
>'==============================================
>
>数字は全角で(質問の文章内が全角だったので・・・)
>書式設定は「文字列」になってる場合
>
>Sub test2()
>
>  Dim ws As Worksheet
>  Dim strDate As String
>  
>  Set ws = Worksheets("8月1日")
>  With ws
>    .Move after:=Worksheets(Sheets.Count)
>    strDate = CStr(CDate(.Range("a1").Value) + 28)
>    strDate = StrConv(Month(strDate) & "月" & Day(strDate) & "日", vbWide)
>    .Range("a1").Value = strDate
>    .Name = strDate
>  End With
>  
>  Set ws = Nothing
> 
>End Sub
>
>'==============================================
>
>ちょっとごちゃごちゃしてるかしらん?
>
>気が向いたらお試し下さい^^;


有り難うございました。
うまくいきました。
ご親切に感謝致します。

3472 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free