|
いつもお世話になっています。
処理の中に数式を入れて計算させようとしているのですが、うまくいきません。
お力添えをお願いいたします。
テキストファイルに105個の数値が入っており、そのファイルが複数あります。
それらの数値を15個づつ取り出し、シート1からシート7に振り分け、
それぞれセルA2からセルP2に入力するマクロを作成しました。というか、作成してありました。
A1にはそのファイルの作成日が入力されるようになっています。
そこで、シート1・2・3の数値を使用して計算し、結果をシート8のセルA2から
セルP2に貼り付けるマクロを作成しています。
作成されていたマクロを参考に作っては見たのですが、うまくいきません。
皆さんのお力をお貸し願えないでしょうか?
Sub macsens取込(inputmode As Integer)
Dim fp As Variant
Dim fso As Object, fnow As Object
Dim temp As Variant
Dim temptime1, temptime2
Dim i As Integer, j
Dim rowcount
Const ForReading = 1, ForWriting = 2, ForAppending = 8
fp = Application.GetOpenFilename(MultiSelect:=True, _
Title:=" ログファイルを選択して下さい(CtrlやShiftキーを使って複数選択可)")
If Not IsArray(fp) Then
MsgBox ("処理を中止します")
Exit Sub
End If
Set fso = CreateObject("Scripting.FileSystemObject")
UserForm2.Show vbModeless
DoEvents
If inputmode = 0 Then
rowcount = 0
Else
rowcount = Sheets(1).Range("A65536").End(xlUp).Row - 1
End If
For i = 1 To UBound(fp)
Set fnow = fso.OpenTextFile(fp(i), ForReading)
Do While fnow.AtEndOfStream <> True
temp = Split(Replace(fnow.ReadLine, "=", ","), ",")
If temp(0) Like "*DATE*" Then
temptime1 = DateSerial(temp(1), temp(2), temp(3))
rowcount = rowcount + 1
DoEvents
ElseIf temp(0) Like "*TIME*" Then
temptime2 = TimeSerial(temp(1), temp(2), temp(3))
ElseIf temp(0) Like "*ORGB*" Then
Sheets(1).Cells(rowcount + 1, 1) = temptime1 + temptime2
For j = 1 To UBound(temp)
Sheets(1).Cells(rowcount + 1, j + 1) = temp(j)
Next j
ElseIf temp(0) Like "*ORGP*" Then
Sheets(2).Cells(rowcount + 1, 1) = temptime1 + temptime2
For j = 1 To UBound(temp)
Sheets(2).Cells(rowcount + 1, j + 1) = temp(j)
Next j
ElseIf temp(0) Like "*OFF3*" Then
Sheets(3).Cells(rowcount + 1, 1) = temptime1 + temptime2
For j = 1 To UBound(temp)
Sheets(3).Cells(rowcount + 1, j + 1) = temp(j)
Next j
ElseIf temp(0) Like "*POST*" Then
Sheets(4).Cells(rowcount + 1, 1) = temptime1 + temptime2
For j = 1 To UBound(temp)
Sheets(4).Cells(rowcount + 1, j + 1) = temp(j)
Next j
ElseIf temp(0) Like "*OFF4*" Then
Sheets(5).Cells(rowcount + 1, 1) = temptime1 + temptime2
For j = 1 To UBound(temp)
Sheets(5).Cells(rowcount + 1, j + 1) = temp(j)
Next j
ElseIf temp(0) Like "*PRID*" Then
Sheets(6).Cells(rowcount + 1, 1) = temptime1 + temptime2
For j = 1 To UBound(temp)
Sheets(6).Cells(rowcount + 1, j + 1) = temp(j)
Next j
ElseIf temp(0) Like "*SOPC*" Then
Sheets(7).Cells(rowcount + 1, 1) = temptime1 + temptime2
For j = 1 To UBound(temp)
Sheets(7).Cells(rowcount + 1, j + 1) = temp(j)
Next j
ElseIf Sheets(1).Cells(rowcount + 1, 1) <> "" Then
Sheets(8).Cells(rowcount + 1, 1) = Sheets(1).Cells_ (rowcount, 1)
For j = 1 To UBound(temp)
Worksheets("データ").Cells(rowcount + 1, j + 1) = _
(Worksheets("ORGP")!RC - Worksheets("ORGB")!RC + _
Worksheets("OFF3")!RC) * 1000000000
Next j
End If
Loop
fnow.Close
Set fnow = Nothing
Call Display_MyProgressBar(i, UBound(fp))
DoEvents
Next i
Unload UserForm2
End Sub
最後の
ElseIf Sheets(1).Cells(rowcount + 1, 1) <> "" Then
Sheets(8).Cells(rowcount + 1, 1) = Sheets(1).Cells_ (rowcount, 1)
For j = 1 To UBound(temp)
Worksheets("データ").Cells(rowcount + 1, j + 1) = _
(Worksheets("ORGP")!RC - Worksheets("ORGB")!RC + _
Worksheets("OFF3")!RC) * 1000000000
Next j
この部分を作成しています。
それ以外の部分は正常に処理しています。
長文になってしまい、申し訳ありません。
よろしくお願いいたします。
|
|