|
たかし さん、こんばんわ。
>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
tempを使っているところをみたら、書くとしたらここでしょうか?
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
> Loop
> fnow.Close
> Set fnow = Nothing
> Call Display_MyProgressBar(i, UBound(fp))
> DoEvents
> Next i
> Unload UserForm2
>
>End Sub
|
|