[リストへもどる]
一括表示

投稿時間:2002/09/19(Thu) 10:09
投稿者名:MANA
URL :
タイトル:
エクセルについての質問です
質問です。下記で、For iiが If条件を通過した場合に、jが例えば4で書かれ、
Nextに行き、次のFor iiが If条件を通過した場合、jが一個増え、5で書かれる
ようにしたいのですが、どのようにやれば出来るのでしょうか?色々な所にFor文
を追加してみたのですが、うまく行きませんでした。教えてください!

For ii = 1 To filekensaku
    
        If FileLen(マスターパス & Nowdate & "\" & strMyfile(ii)) = 0
Then
        Else
              
            ファイル名前 = Left(strMyfile(ii), 11)
            辺 = Left(Right(strMyfile(ii), 5), 1)
                              
                    Open マスターパス & Nowdate & "\" & strMyfile(ii)
For Input As #1
                
                        Do Until EOF(1)
                        
                            Input #1, varA_
                                    , varB_
                                    , varC_
                                    , varD _
                                    , varE _
                                    , varF _
                                    , varG _
                                    , varH _
                                    , varI _
                                    , varJ _
                                    , varK
                            
                             '***** Excel のセルに値を代入*****'
                                    
                            xlSheet.Cells(j, 1).Value = ファイル名前
                            xlSheet.Cells(j, 2).Value = 辺
                            xlSheet.Cells(j, 3).Value = Mid(varA, 1)
                            xlSheet.Cells(j, 4).Value = varB
                            xlSheet.Cells(j, 5).Value = varC
                            xlSheet.Cells(j, 6).Value = varD
                            xlSheet.Cells(j, 7).Value = varE
                            xlSheet.Cells(j, 8).Value = varF
                            xlSheet.Cells(j, 9).Value = varG
                            xlSheet.Cells(j, 10).Value = varH
                            xlSheet.Cells(j, 11).Value = varI
                            xlSheet.Cells(j, 12).Value = varJ
                            xlSheet.Cells(j, 13).Value = varK
                            
                        Loop
                
                    Close #1
                              
        End If
        
Next ii

投稿時間:2002/09/19(Thu) 13:02
投稿者名:NAO★
Eメール:
URL :
タイトル:
Re: エクセルについての質問です
質問の文面からすると End If の前の行に
j = j + 1
を入れればいいのですが、

このサンプルのプログラムを見る限り
Loopの前に入れないと期待した動きにならないでしょう。

j = 4 '初期化
For ii = 1 To filekensaku
  If FileLen(マスターパス & Nowdate & "\" & strMyfile(ii)) = 0
  Then
  Else
    Do Until EOF(1)
      '略
      j = j + 1
    Loop
  End If
Next ii

投稿時間:2002/09/19(Thu) 13:48
投稿者名:MANA
URL :
タイトル:
Re^2: エクセルについての質問です
ありがとうございます。とりあえず、動きました!
でも、もしプログラムが止まった時、エクセルに書
かれた行の続きから再開する場合は、どのようにす
ればいいのですか?あ、ヒントだけでもよろしいん
で教えてくださいっ!

投稿時間:2002/09/19(Thu) 19:18
投稿者名:NAO★
Eメール:
URL :
タイトル:
Re^3: エクセルについての質問です
> でも、もしプログラムが止まった時、エクセルに書
> かれた行の続きから再開する場合は、どのようにす
> ればいいのですか?

バグ以外でとまるときには
たぶんエラー処理が出来ていないのだと思われます(それもバグか)ので、たとえば
ファイルを開く時なら、開く前にファイルの存在をチェックするなど安全対策をとるか、
On Error Goto などでエラーが起きたときの対策を決めておくと良いかもしれません。