エクセルVBA全シートに差し込みマクロ構文
Sheets("震圧データ").Select
MsgBox "新規ブックに年月分けて" & vbCrLf & "震圧データを転記します、" & vbCrLf & "お待ちください。"
Dim c As Range
Dim i As Integer
Dim LastRow As Long
Dim NewSheetName As String, MatchFlag As Boolean
Application.ScreenUpdating = False
Workbooks.Add
With ThisWorkbook.Sheets("震圧データ")
For Each c In .Range(.Cells(4, "A"), .Cells(Rows.Count, "A").End(xlUp))
If NewSheetName <> Year(c.Value2) & "年" & Month(c.Value2) & "月" Then
NewSheetName = Year(c.Value2) & "年" & Month(c.Value2) & "月"
If c.Row - 2 > Sheets.Count Then
Worksheets.Add after:=Worksheets(Worksheets.Count)
Else
Sheets(c.Row - 2).Select
End If
ActiveSheet.Name = NewSheetName
Sheets(NewSheetName).Range("A1").Value = "年月日"
Sheets(NewSheetName).Range("B1").Value = "曜日"
Sheets(NewSheetName).Range("C1").Value = "A"
Sheets(NewSheetName).Range("D1").Value = "B"
Sheets(NewSheetName).Range("E1").Value = "C"
Sheets(NewSheetName).Range("F1").Value = "時間"
Sheets(NewSheetName).Range("G1").Value = "状態"
Sheets(NewSheetName).Range("I1").Value = "No.1"
Sheets(NewSheetName).Range("I2").Value = "記録者"
Sheets(NewSheetName).Range("I3").Value = "氏名:"
Sheets(NewSheetName).Range("I4").Value = "=IF(ISBLANK(A4),"""",DATEDIF("""",Today(),""Y"") & ""歳"")"
Sheets(NewSheetName).Range("I5").Value = "=""転載日"""
Sheets(NewSheetName).Range("I6").Value = "=TODAY()"
Sheets(NewSheetName).Range("I56").Value = "=IF(ISBLANK(A56),"""",""No.2"")"
Sheets(NewSheetName).Range("I57").Value = "=IF(ISBLANK(A56),"""",""記録者"")"
Sheets(NewSheetName).Range("I58").Value = "=IF(ISBLANK(A56),"""", ""氏名:"")"
Sheets(NewSheetName).Range("I59").Value = "=IF(ISBLANK(A56),"""",DATEDIF("""",Today(),""Y"") & ""歳"")"
Sheets(NewSheetName).Range("I60").Value = "=IF(ISBLANK(A56),"""",""転載日"")"
Sheets(NewSheetName).Range("I61").Value = "=IF(ISBLANK(A56),"""",TODAY())"
Sheets(NewSheetName).Range("I111").Value = "=IF(ISBLANK(A111),"""",""No.3"")"
Sheets(NewSheetName).Range("I112").Value = "=IF(ISBLANK(A111),"""",""記録者"")"
Sheets(NewSheetName).Range("I113").Value = "=IF(ISBLANK(A111),"""", ""氏名:"")"
Sheets(NewSheetName).Range("I114").Value = "=IF(ISBLANK(A111),"""",DATEDIF("""",Today(),""Y"") & ""歳"")"
Sheets(NewSheetName).Range("I115").Value = "=IF(ISBLANK(A111),"""",""転載日"")"
Sheets(NewSheetName).Range("I116").Value = "=IF(ISBLANK(A111),"""",TODAY())"
Sheets(NewSheetName).Range("I166").Value = "=IF(ISBLANK(A166),"""",""No.4"")"
Sheets(NewSheetName).Range("I167").Value = "=IF(ISBLANK(A166),"""",""記録者"")"
Sheets(NewSheetName).Range("I168").Value = "=IF(ISBLANK(A166),"""", ""氏名"")"
Sheets(NewSheetName).Range("I169").Value = "=IF(ISBLANK(A166),"""",DATEDIF("""",Today(),""Y"") & ""歳"")"
Sheets(NewSheetName).Range("I170").Value = "=IF(ISBLANK(A166),"""",""転載日"")"
Sheets(NewSheetName).Range("I171").Value = "=IF(ISBLANK(A166),"""",TODAY())"
Sheets(NewSheetName).Range("H1").Value = "提出済○"
Sheets(NewSheetName).Range("A57").Select
Range("I6,I61,I116").Select
Range("I6,I61,I116,I171").Select
Selection.NumberFormatLocal = "yyyy/m/d"
Columns("F:F").Select
Selection.NumberFormatLocal = "[$-409]h:mm AM/PM;@"
Range("G1").Select
With Selection
.HorizontalAlignment = xlCenter
End With
LastRow = Sheets(NewSheetName).Cells(Rows.Count, "A").End(xlUp).Row
Sheets(NewSheetName).Cells(LastRow + 1, "A").Resize(1, 8).Value = .Cells(c.Row, "A").Resize(1, 8).Value
Sheets(NewSheetName).Columns("A:I").EntireColumn.AutoFit
Next
新規ブック最終シートのみ適用できますが他の月別シートに適用できておりません
'↓どのような構文にしたら適用されるのでしょうか?ここからが質問です↓
If Sheets(NewSheetName).Range("A56") = "" Then
Range("I56:I171").Delete
Else
Sheets(NewSheetName).Range("A56").Value = "年月日"
Sheets(NewSheetName).Range("B56").Value = "曜日"
Sheets(NewSheetName).Range("C56").Value = "A"
Sheets(NewSheetName).Range("D56").Value = "B"
Sheets(NewSheetName).Range("E56").Value = "C"
Sheets(NewSheetName).Range("F56").Value = "時間"
Sheets(NewSheetName).Range("G56").Value = "状態"
End If 'ここまで! どなたかご教示お願いします
.Activate
End With
お礼
ありがとうございます。 各ボタンの座標を予めエクセルに表を作り格納しておき それらを必要な時に参照して、マウスを移動してクリック→次のアクション それの集合体でWEBを開いて、競馬の投票(IPAT)をするプログラムはすでに作成してます。 買い方は、私なりの理論をプログラムに移植したものでです。 出来あがってから実際毎週走らせていますが、今のところ土曜日の朝に走らせたら日曜日の最終レースまで、締切1分前で各レースを買ってくれてます。 しかしながら、ものすごく原始的で、 クリックしてから違うリンク先の画面表示がしっかりなされてるかの確認は、ページをエクセルのシートにコピペして、とか・・・ sendkeys"{tab}" を使うにしても,tab30とかになると目標のボタンに辿りついてないとか・・ これは単に私の未熟さ、からなんですが。 それを補正するために for i=1 to 30 sendkeys"{tab}" call jikan1'現在の時間から一秒経過させる next とかで解決するしかできませんでした。 クリックしてリンク先の画面を表示するのに、クリックしてから8秒待つとか その8秒なんかに確固たる根拠はなく、何回も試してるうち8秒なら大丈夫だろう みたいな、感覚的なものでした。 そんな状況の中、今回教えていただいた「navigate」なんかは、目を疑うほどのものでした サンプルには「他にもお宝がいっぱい!!!」 というのが本音です。 今現在は、やっとWEBを完全にコントロールするプログラム作成の入り口に立った くらいの私です。 教えていただいた内容は、私がやりたいことの一部ですが 2つのサンプルをあれこれいじってみて、勉強を始めていきたいと思ってます 入口に立った時に、みなさんに出会えたことを感謝いたします。 ここで躓くと、これ以上先には進めませんでした。 本当にありがとうございます。 これからも、皆さんにとっては「くだらない・とるにたらない」 そんな質問をすることになりますが、その時はどうか見捨てないでください。 勝手なお願いばかりですみません。