advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 1215 for (Mook) (0.001 sec.)
[[20150224195048]]
#score: 9211
@digest: 5c6aca9c7e0f9a742fbe298ffc467f02
@id: 67340
@mdate: 2015-02-25T09:12:18Z
@size: 6477
@type: text/plain
#keywords: ブカ (14385), トネ (13938), 月: (9321), 去. (7196), dateadd (4672), 了en (4037), yyyymm (4028), 次月 (3045), dateserial (2838), ダム (2791), 理終 (2677), 水色 (2315), color (2227), formula (2138), ネー (1905), カラ (1797), name (1786), ンダ (1732), activesheet (1722), ラン (1718), トタ (1648), 書込 (1581), interior (1547), ムか (1406), worksheets (1332), ブシ (1254), 2015 (1167), rc (1066), 黄色 (1035), 消去 (984), format (977), 水) (967)
『月を加算したシートネームから値を書き込みたい』(nobu)
以下にて最終???部分で良いと思うのですが(自信ないですが) 新しく作成した1ヶ月足したシートネームから取得しB4に取得した月の 最終日を書き込みたいのですが、ご指導お願いします。 よろしくお願いします。 Sub 1ヶ月加算() Dim sh_name As String Dim d As Date Dim ws As Worksheet Dim n As Long With ActiveSheet If Len(.Name) = 6 And IsDate(Left(.Name, 4) & "/" & Right(.Name, 2) & "/1") Then ' その日付を取得 d = CDate(Left(.Name, 4) & "/" & Right(.Name, 2) & "/1") sh_name = Format(DateSerial(Year(d), Month(d) + 1, 1), "yyyymm") Else MsgBox "アクティブシートが月のシートではありません" Exit Sub End If End With On Error Resume Next Set ws = Worksheets(sh_name) On Error GoTo 0 If Not ws Is Nothing Then MsgBox "次月のシートは既に存在します" ws.Move After:=ActiveSheet Worksheets(Format(d, "yyyymm")).Activate Exit Sub ' 処理終了 End If ActiveSheet.Copy After:=ActiveSheet With ActiveSheet .Name = sh_name n = .Range("C" & .Rows.Count).End(xlUp).Row If n >= 4 Then .Range("B4:Q" & n).ClearContents ' 範囲を消去 .Range("I4:I35").Formula = "=IF(G4>0,F4-G4,"""")" .Range("N4:N35").Formula = "=IF(RC[-3]>0,RC[-7]-RC[-3]-RC[-2]-RC[-1],"""")" .Range("O4:O35").Formula = "=IF(RC[-1]="""","""",RC[-1]*1.08) End With ' 「B4」にシートネームから取得し日付書込 Range("B4").Value = DateAdd(????, sh_name) End Sub < 使用 Excel:Excel2013、使用 OS:Windows7 > ---- sh_nameと同様の方法でdから求めてもよいのでは。 Sub test() Dim d As Date d = Date MsgBox DateSerial(Year(d), Month(d) + 2, 0) End Sub (マナ) 2015/02/24(火) 20:16 ---- ちょいと整形。 Sub test() Dim sh_name As String Dim d As Date Dim ws As Worksheet Dim n As Long With ActiveSheet If Len(.Name) = 6 And IsDate(Left(.Name, 4) & "/" & Right(.Name, 2) & "/1") Then d = DateSerial(Left(.Name, 4), Right(.Name, 2), 1) sh_name = Format(DateAdd("m", 1, d), "yyyymm") Else MsgBox "アクティブシートが月のシートではありません" Exit Sub End If End With On Error Resume Next Set ws = Worksheets(sh_name) On Error GoTo 0 If Not ws Is Nothing Then MsgBox "次月のシートは既に存在します" ws.Move After:=ActiveSheet Worksheets(Format(d, "yyyymm")).Activate Exit Sub ' 処理終了 End If ActiveSheet.Copy After:=ActiveSheet With ActiveSheet .Name = sh_name n = .Range("C" & .Rows.Count).End(xlUp).Row If n >= 4 Then .Range("B4:Q" & n).ClearContents ' 範囲を消去 .Range("I4:I35").Formula = "=IF(G4>0,F4-G4,"""")" .Range("N4:N35").Formula = "=IF(RC[-3]>0,RC[-7]-RC[-3]-RC[-2]-RC[-1],"""")" .Range("O4:O35").Formula = "=IF(RC[-1]="""","""",RC[-1]*1.08)" .Range("B4").Value = DateAdd("m", 2, d) - 1 ' 「B4」にシートネームから取得し日付書込 End With End Sub (???) 2015/02/25(水) 09:18 ---- マナさん ???さん ありがとうございます。 どちらもうまくいきました。(^_^) 追加で、すみませんが翌月のシートを作成した段階で ランダムにシートタブカラーを変えるマクロ追加できないでしょうか? 現状は前月のシートタブカラーそのままですが よろしくお願いします。 (nobu) 2015/02/25(水) 10:18 ---- 横から失礼します。 【ランダムにシートタブカラーを変える】 ランダムに変えたい理由がいまいち、わからないのですが? むしろ、1月は青、2月は黄色、3月は水色、・・・といったように12か月分を決めておけば 色を見るだけで何月のシートなのかが直感的にわかるのでは?と思いますが。 仮に、【ランダム】だとして、xl2013で使用可能な色は 0 〜 16,777,216 あるわけで、 これらのなかから、どの色でもいい、ランダムに? 意図しないような色が選ばれるかもしれませんよ。 それでよければ、乱数で、0 〜 16,777,216 の整数の間から1つ取り出すことはできますけどね。 同じランダムでも、候補を、たとえば20種億ぐらいに決めておいて、1〜20の整数を取り出して 1なら 赤、2なら青 といったような制御のほうが現実的? でも、それなら、月別に色を決めておいたほうがよろしいかと思いますが? (β) 2015/02/25(水) 10:42 ---- βさん 仰るとおりです。 以下のように色決めたのですが よろしくお願いします。 1月 赤 2月 青 3月 緑 4月 濃黄色 5月 水色 6月 薄緑 7月 黄色 8月 任意色 9月 : 10月 : 11月 : 12月 : (nobu) 2015/02/25(水) 11:08 ---- 日付書き込みした直後あたりに、以下を追加。 .Tab.Color = Array(vbRed, vbBlue, vbGreen, &H99FFFF, vbCyan, &H99FF99, vbYellow, vbBlack, vbWhite, vbMagenta, &HF0B000, &H50D092)(Month(d) - 1) (???) 2015/02/25(水) 13:07 ---- ランダムっぽい順番より、規則性のある色のほうが綺麗に見えると思いますが、いかが? .Tab.Color = Array(&HFF&, &H40FF&, &H80FF&, &HB0FF&, &HFF00&, &HFF40&, &HFF80&, &HFFB0&, &HFF0000, &HFF4000, &HFF8000, &HFFB000)(Month(DateAdd("m", 1, d)) - 1) (???) 2015/02/25(水) 13:37 ---- お遊びです。 運用としては、回答されたものの方がいいと思います。 新規シートに下記コードを置いて、A1 をダブルクリックすると遊べます。 以降はA列に色をつけると、シートを変更したタイミングで、反映します。 Private Sub Worksheet_Activate() Columns("A").Clear For i = 1 To Worksheets.Count Cells(i, "A").Interior.Color = Worksheets(i).Tab.Color Next End Sub Private Sub Worksheet_Deactivate() If Range("A1").Interior.Pattern = xlNone Then Exit Sub For i = 1 To Worksheets.Count Worksheets(i).Tab.Color = Cells(i, "A").Interior.Color Next End Sub Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim cl If Target.Address = "$A$1" Then For i = 1 To Worksheets.Count cl = RGB(Int(256 * Rnd()), Int(256 * Rnd()), Int(256 * Rnd())) Worksheets(i).Tab.Color = cl Cells(i, "A").Interior.Color = cl Next Cancel = True End If End Sub (Mook) 2015/02/25(水) 14:05 ---- ???さん 返事遅くなりました。 ありがとうございます。 無事、色付けできました。識別し易いです Mookさん おもしろいですね 何かお遊びbookに利用させていただきます。 質問完了と致します。 回答者の皆様ありがとうございました。 (nobu) 2015/02/25(水) 18:11 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201502/20150224195048.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97050 documents and 608253 words.

訪問者:カウンタValid HTML 4.01 Transitional