|
▼さくら さん:
>exlApp.Workbooks.Open "\\00.00.00.00\**\**.xls"
すみません。ネットワーク環境がないので、↑ちょっと分かりません。
>excelから起動してマクロを実行すれば普通に動きます。
>[D3]セルには以下の関数が入っています。
>VALUE(TEXT(WORKDAY(DATE(YEAR(TODAY()),MONTH(TODAY()),DAY(TODAY())),1,$A$2:$A$256),"yyyy/mm/dd")&" 09:00")
>[A2:A256]部分には今年度の休日が入っております。
これ、どこか他のセルに( たとえば[D1]セルに ) =TODAY() と書いておけば、
式は
=VALUE(TEXT(D1,1,$A$2:$A$256),"yyyy/mm/dd")&" 09:00")
だけで済むのではないかしら?
(ま、本題とは関係ないことでしょうが)
>excelから起動した場合は問題なく、
>翌営業日付+9:00が[D3]に入っております。
なのに、
>これが、VBSから起動した場合は
>[D3]セルが[#NAME?]になっており、マクロもエラーが出る状態です。
であれば、問題なく動くexcelと VBSから起動したexcelがちがう、という
こと、考えられませんか?
OpenするBookの <Before> マクロに ◆部分を追加してみて、
もういちどVBSを走らせ
CreateObject("excel.application")
でどのExcelが起動しているのか、確かめてもらえませんか?
Public Sub Before()
Dim ws0 As String
Dim ws1 As Worksheet, ws2 As Worksheet
Dim i As Long, k As Long
Dim date1 As Date
Dim date2 As Date
MsgBox Application.Path, , Application.Version '◆追加
ws0 = Format$(Date, "yyyyMM")
Set ws1 = ThisWorkbook.Worksheets(ws0)
Set ws2 = ThisWorkbook.Worksheets("日付")
date1 = ws2.Range("D2").Value
date2 = ws2.Range("D3").Value
Dim c As Range
For Each c In ws1.Range("A1", ws1.Cells(ws1.Rows.Count, 1).End(xlUp))
Select Case c.Value
Case date1 To date2
MsgBox c.Value
End Select
Next
End Sub
|
|