[[20020702091737]] 『エラー9インデックスが適用範囲外です』(だい) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『エラー9インデックスが適用範囲外です』(だい)

上記エラーが出て困っています。

マクロの内容は、CSVファイルのデータの一部を取り出すもので、起動させるとエラーが

出ます。

パソコンによって、出る場合と出ない場合があるのですが、法則がわかりません。

ちなみに、OSはWin98、Excel2000です。

Sub Macro2()

 Dim ファイル名 As String

 Dim ファイル数 As Variant

 Dim 規定ファイル名 As String

 Dim 保存ファイル名 As Variant

 Dim 桁数 As Integer

 Dim L As Integer

 Dim LL As Integer

 Dim i As Integer

 ファイル名 = InputBox("読み込むファイル名を入力してください。", "データー読み込み", "")

 If ファイル名 <> "" Then

   GoTo AA

   Else: GoTo CC

 End If

 ファイル名 = ファイル名 + ".csv"

AA:

  If Cells(7, 26) = "" Then

     MsgBox "節を入力して下さい"

     GoTo CE

     Else

      規定ファイル名 = "管理図" & "-第" & Range("Z7") & "節" & ".xls"

      保存ファイル名 = Application.GetSaveAsFilename(規定ファイル名)

      If 保存ファイル名 = False Then

         MsgBox "保存は中止されました"

         Else

          ActiveWorkbook.SaveAs 保存ファイル名

       End If

    ChDir "A:\"

    Workbooks.Open Filename:="A:\data\" + ファイル名

    Windows(規定ファイル名).Activate

  End If

AC:

  Sheets("データテーブル").Select

 For i = 4 To 204

  If Cells(i, 2) = 0 Then

     GoTo AD

  End If

 Next i

AD:

  桁数 = i

  LL = 8

AE:

 For L = 1 To 20

    Windows(ファイル名).Activate

    Cells(LL, 3).Select

    If Cells(LL, 3) = 0 Then

       GoTo CC

       Else: GoTo AF

    End If

AF:

    Selection.Copy

    Windows(規定ファイル名).Activate

    Cells(i + L - 1, 11).Select

    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _

        False, Transpose:=False

    Windows(ファイル名).Activate ←ここが黄色くなってエラー発生

    Cells(LL - 2, 1).Select

    Selection.Copy

    Windows(規定ファイル名).Activate

    Cells(i + L - 1, 3).Select

    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _

        False, Transpose:=False

    Windows(ファイル名).Activate

    Cells(3, 2).Select

    Selection.Copy

    Windows(規定ファイル名).Activate

    Cells(i + L - 1, 2).Select

    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _

        False, Transpose:=False

    Windows(ファイル名).Activate

    Cells(2, 1).Select

    Selection.Copy

    Windows(規定ファイル名).Activate

    Cells(i + L - 1, 4).Select

    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _

        False, Transpose:=False

    Windows(ファイル名).Activate

    Cells(LL, 1).Select

    Selection.Copy

    Windows(規定ファイル名).Activate

    Cells(i + L - 1, 10).Select

    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _

        False, Transpose:=False

    Windows(ファイル名).Activate

    Cells(LL, 2).Select

    Selection.Copy

    Windows(規定ファイル名).Activate

    Cells(i + L - 1, 9).Select

    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _

        False, Transpose:=False

CD:

    LL = L * 59 + 8

  Next L

CC:

  Windows(規定ファイル名).Activate

CE:

  Sheets("グラフ").Select

End Sub

以上、よろしく御願いします。


 エラーが起きて、とまったとき、VBAのどこが黄色く光って、とまりますか?

 一般論では、『インデックスが適用範囲外』とは10個しか用意していないものを

 11個使いに行った場合などに発生します。

 (kazu)


 すみません、見落としていました、[ここが黄色になる]を発見しました。

 ファイル名がエラーになるということは、手で入力したファイル名が間違えている

 可能性が一番大きいです。

 ファイル名を手で入力させるのは基本的に間違っています。

 ファイルが存在するかDir関数などで、調べて、もしファイルが存在しなかったら、

 終わらせるようにします。

 (kazu)


 もし、ファイル名が違っていたら、AE:とAF:の間の ”Windows(ファイル名).Activate”

の所が黄色く点滅するのではないでしょうか?

 (だい)


 うーーむ、たしかに、上で引っかかるはずですね。

     Windows(ファイル名).Activate ←ここが黄色くなってエラー発生

     Cells(LL - 2, 1).Select

 となると、あと考えられるのは、LLが3より小さい場合が起こりうるのでは?

 (kazu)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.