Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


53366 / 76736 ←次へ | 前へ→

【28186】教えてください
質問  たかし  - 05/8/30(火) 16:10 -

引用なし
パスワード
   いつもお世話になっています。
処理の中に数式を入れて計算させようとしているのですが、うまくいきません。
お力添えをお願いいたします。

テキストファイルに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
この部分を作成しています。
それ以外の部分は正常に処理しています。

長文になってしまい、申し訳ありません。
よろしくお願いいたします。
0 hits

【28186】教えてください たかし 05/8/30(火) 16:10 質問
【28205】Re:教えてください りん 05/8/30(火) 21:15 発言
【28220】Re:教えてください たかし 05/8/31(水) 14:59 お礼

53366 / 76736 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free