1
VBAを使用してOutlookからExcelのセルを編集したいと思います。ブックを再度開くことなくOutlookからExcelのセルを編集する
私はそうしたいです:
初めてマクロを実行すると、セルA1は "1"です。
2回目にマクロを実行すると、セルA2が "1"になります。
マクロを3回実行すると、セルA3は "1"になります。
。
。
マクロを5回実行すると、セルA1に戻り、セルA1の値が「1」から「2」に増加します。
Dim count As Integer: count = 1
Dim number As Integer: number = 1
Sub test()
Dim xlApp As Object
Dim xlWB As Object
Dim xlSheet As Object
On Error Resume Next
Set xlApp = GetObject(, "Excel.Application")
If Err <> 0 Then
Set xlApp = CreateObject("Excel.Application")
End If
On Error GoTo 0
If (IsWorkBookOpen("D:\Book1.xlsx") = True) Then 'Check workbook is opening or not
Set xlWB = xlApp.Workbooks("D:\Book1.xlsx")
Else
Set xlWB = xlApp.Workbooks.Open("D:\Book1.xlsx")
End If
Set xlSheet = xlWB.Sheets("Sheet1")
If (count < 5) Then
xlSheet.Range("A" & count) = number
count = count + 1
Else
count = 0
number = number + 1
End If
End Sub
Function IsWorkBookOpen(FileName As String)
Dim ff As Long, ErrNo As Long
On Error Resume Next
ff = FreeFile()
Open FileName For Input Lock Read As #ff
Close ff
ErrNo = Err
On Error GoTo 0
Select Case ErrNo
Case 0: IsWorkBookOpen = False
Case 70: IsWorkBookOpen = True
Case Else: Error ErrNo
End Select
End Function
「下付き文字が範囲外です」と表示されます。私はこの行に問題があります:Set xlWB = xlApp.Workbooks("D:\Book1.xlsx")
。私がデバッグすると、この行がハイライト表示されています。
うわー、それは動いている。どうもありがとうございます :) – Bruce