エクセル2000マクロインデックスエラー

このQ&Aのポイント
  • 下記のマクロでインデックスが有効範囲にありません。
  • Windows(F_NAME).Activate→エラー個所 Sheets(M_KAKOBA(count)).Select→エラー個所 教えてください。
  • Dim work, hensu, i, j, h Windows(加工品.xls).Activate work = Sheets(masta).Cells(3, 6).Text 'シート名の変更 Windows(F_NAME).Activate Sheets(M_KAKOBA(count)).Select ActiveSheet.Name = work
回答を見る
  • ベストアンサー

エクセル2000マクロインデックスエラー

下記のマクロでインデックスが有効範囲にありません。 Windows(F_NAME).Activate→エラー個所 Sheets(M_KAKOBA(count)).Select→エラー個所 教えてください。 Dim work, hensu, i, j, h Windows("加工品.xls").Activate work = Sheets("masta").Cells(3, 6).Text 'シート名の変更 Windows(F_NAME).Activate Sheets(M_KAKOBA(count)).Select ActiveSheet.Name = work

noname#72697
noname#72697

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

この数行だけでは回答に困りますね。エラーが2箇所分かっているのも?ですね。 F_NAMEがどんな文字か、countは何か、M_KAKOBA(count))はどんな文字か調べる必要があります。 変数として有効でも、その名前のBookが開いているか、その名前のシートが存在するかも問題になります。 VBE画面で、表示→イミディエイトウインドウでイミディエイトウインドウ(デバッグ)を出します。 そこに、 ?F_NAME と入力してEnter ?count と入力してEnter ?M_KAKOBA(count)) と入力してEnter などを行って、自分の意図した値になっているか調べます。 または、VBE画面でエラーが起きる直前辺りの行でブレークポイントの設定を行います。 マクロを中断させて、F_NAMEやcountの文字にマウスを持っていけば、値が表示されます。 ブレークポイントはコードウインドウの左のグレー部分をクリックしても設定できます。 他にウオッチウインドウなどもあります。使い方を研究してみたらどうでしょうか。 エラー原因も直ぐわかるように(自力で)なると思います。

関連するQ&A

  • エクセル2000マクロエラー

    下記のマクロを実行すると、Sheets(M_KAKOBA(count)).Selectのロジックでインデック スが有効範囲にありません。というエラーメッセージがでます。 エクセルのツール→オプション→全般→新しいシートの数を2から3に変更すると エラーは発生しないのですが、エクセルのツール→オプション→全般→新しいシートの数を2 のままでエラーを出さないようにするには、ロジックを変更すればできるのでしょうか? ロジックの追加方法を教えてください。 Sub 送信() '変数の設定 Dim work, hensu, i, j Windows("加工品.xls").Activate work = Sheets("masta").Cells(3, 6).Text 'シート名の変更 Windows(F_NAME).Activate Sheets(M_KAKOBA(count)).Select ActiveSheet.Name = work Windows("加工品.xls").Activate Sheets(work).Select i = 5 Do i = i + 1 hensu = Cells(i, 5) Loop While hensu <> "" Range(Cells(1, 1), Cells(i + 1, 33)).Select Selection.Copy Windows(F_NAME).Activate Sheets(work).Select Range("a1").Select Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("A2").Select End With Selection.BorderAround Weight:=xlThin, ColorIndex:=xlAutomatic ' '行の高さ If Worksheets(work).AutoFilterMode = False Then Range(Cells(5, 1), Cells(i + 1, 31)).Select Selection.AutoFilter End If End Sub

  • エクセル2000マクロエラーについて

    下記のマクロをエクセル95で動かすと正常に終わるのですが、エクセル2000で 動かすとデバッグエラーで止まります。 何処がおかしいのでしょうか教えてください。 出来れば言語の意味も教えてください。 Sub 送信メニュ() Dim i, C_COUNT, folda, work, tuki i = MsgBox("加工業者別の発注基礎資料を作成します。", 1, "着色加工計画作成システム") If i <> 1 Then Exit Sub Sheets("msg2").Select Call gafalse folda = "C:\aa着色加工計画\" tuki = Sheets("ACT").Cells(5, 12).Text→最初にここでデバッグエラーになります。 tuki = Val(Right(tuki, 2)) If tuki = 12 Then tuki = 1 Else tuki = tuki + 1 End If tuki = Format(Str(tuki), "00") Workbooks.Add F_NAME = "加計" + tuki + "月.XLS" ActiveWorkbook.SaveAs Filename:=folda + F_NAME, _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False Windows("加工品.xls").Activate Sheets("masta").Select C_COUNT = Sheets("masta").Cells(2, 3).Text For count = 1 To C_COUNT 'C_COUNT Windows("加工品.xls").Activate Sheets("masta").Select Cells(3, 5) = count i = count M_KAKOBA(count) = "sheet" + i Call 送信 Next count Application.CutCopyMode = False ActiveWorkbook.SaveAs Filename:=folda + F_NAME, _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ActiveWindow.Close End Sub

  • Excel VBA(マクロ)処理中の画面に”お待ち下さい”を表示させたい。

     Excel2002で帳票印刷の処理を作成しました。 該当ブック(自身.xls)オープンすると最初にVBAにより帳票レイアウトの初期化を行います。(原紙.xlsをオープンし、自身のシートに貼り付けます。)この初期化の貼り付け処理が"原紙"と"自身"のシートを交互にアクティブにしている為、画面がちらついて、とても見苦しい状態です。 Sub 帳票初期化()  Workbook.Open Filename="F:\原紙.xls"  Sheets("帳票1").Select  Cells.Select  Selection.Copy  Windows("自身.xls").Activate  Sheets("帳票1").Select  Cells.Select  ActiveSheet.Paste  Windows("原紙.xls").Activate  Sheets("帳票2").Select  Cells.Select  Selection.Copy  ・・・・・・・・・(以下同様処理を8帳票程)  Windows("原紙.xls").Activate  ActiveWindow.Close  Windows("自身.xls").Activate End Sub (動作確認済み。手打鍵にて誤コマンドご容赦) この処理を”お待ち下さい”画面等で実行中だけ見えない状態にする、又は画面より見えない形で行うにはどうすれば良いでしょうか。

  • エクセル2000マクロデバッグエラー

    下記のマクロを書いていますがエクセル95では多分うまくいったのですが 2000で動かすとエラーになります。 tuki = Sheets("mmm").Cells(5, 12).Text→ここでインデックスが有効範囲にありません 5行目の12列目には、200201データが入っています。書式は###です。 原因を教えてください。 なにをしているか記述の意味がわかれば教えてください。 Dim i, C_COUNT, folda, work, t folda = "C:\test\" tuki = Sheets("mmm").Cells(5, 12).Text tuki = Val(Right(tuki, 2)) If tuki = 12 Then tuki = 1 Else tuki = tuki + 1 End If tuki = Format(Str(tuki), "00") Workbooks.Add F_NAME = "Kei" + tuki + "tuki.XLS" ActiveWorkbook.SaveAs Filename:=folda + F_NAME, _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False

  • マクロを教えてください

    同じフォルダ内にあるXlsブックのあるSheetのデータを他のBookにコピーして貼り付けて貼り付けた側のBookで加工したいのですがうまくマクロが組めません。 Bookを共有で使っているので困っています。 Sub ワードアート1_Click ' ActiveWindow.ScrollWorkbookTabs sition:=xlLast Workbooks.Open ("販売管理表み.xls") Sheets("在庫一覧").Select Cells.Select Range("A1").Activate Selection.Copy Windows("完成在庫.xls").Activate Sheets("完成在庫一覧").Select Range("A1").Select ActiveSheet.Paste End Sub って書いてみましたが、Workbooks…のところでエラーになってしまいました。(TOT)初心者ですみません。教えてください。

  • エクセル2007VBAで新規ファイルを作る場合

    現在A社というファイルのsheet1に電気代と名前を付けたデータ、sheet2に ガス代という名前を付けたデータがあり電気代のブックからコピーして新規ファイルに貼り付けをしたいと思い下記のとおりマクロがありますが、新規ブックを開いた時常に1ではなく他に新規ブックを開いていたら2とか3になってしまいます。すると再度新規ブックに戻ってガス代を貼り付ける時2とか3tpか4とかでしたらエラーになってしまいます。 こういう場合どのように書いたら良いのでしょうか? それから最後に新規ファイルで名前を付けて保存のところまでダイアログ出すところまで 教えていただきたいのですが。 マクロ勉強始めたばかりでよろしくお願います。 Sub DGCopy() Cells.Select Selection.Copy Workbooks.Add Cells.Select ActiveSheet.Paste Sheets("Sheet1").Select Sheets("Sheet1").Name = "電気代" Windows("A社.xls").Activate Sheets("電気代").Select Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Book1").Activate Sheets("Sheet2").Select Cells.Select ActiveSheet.Paste Sheets("Sheet2").Select Sheets("Sheet2").Name = "ガス代" Application.CutCopyMode = False End Sub

  • エクセルのマクロの質問です。

    エクセルのマクロの質問です。 こんにちわ。エクセルのマクロを始めて間もないものです。 下記ようなマクロを組みましたが「Windows("B.xls").Activate」(※の部分)でとまってしまいます。 なぜかもわからず困っています。 Workbooks.Open Filename:="B.xls" For i = 1 To 1000 Step 1 Range(Cells(i, 1), Cells(i, 5)).Select Selection.Copy Windows("A.xls").Activate Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Select ActiveSheet.Paste ※ Windows("B.xls").Activate Next i 一応、動作としては Bのマクロを開く→ループ始点(1000回繰り返す) 一回目⇒A1~B5をコピー→Aのエクセルを開く→A列のセル1行目に貼り付ける→Bのエクセルを開く 二回目⇒A2~B5をコピー→Aのエクセルを開く→A列のセル2行目に貼り付ける→Bのエクセルを開く . . . ループ終点 こんな感じで作成しましたが、どうしても上手く動かないで困っています。 無駄な動作が多いかもしれませんが、ぜひアドバイスをお願いします。 また、もっと簡単な動作ができるのであればそちらもお願いします。

  • エクセル マクロ エラー

    Sub 保存() Dim MySheetName As Variant MySheetName = InputBox("シート名を入力してください") If MySheetName = "" Then Exit Sub Sheets("1").Copy After:=Sheets(Worksheets.Count) ActiveSheet.Name = MySheetName Sheets("原本").Range("A1:K73").Copy Sheets("1原本").Range("A1") End Sub シートにグラフを乗せたらエラーが出たのですが 解除できないでしょうか?

  • 【Excel】マクロのエラー

    先日、ここで質問させていただきながら、複数のファイルの全シートから、会社名と金額を取り出して、一覧表を作成するマクロを作りました。(Excel2003使用) この複数のファイルと一覧表は同じフォルダに入っているのですが、一覧表が4種類あるので、そのフォルダ内に『一覧表』という名前のフォルダを作って、その中に4つの一覧表を移動しました。 その後、マクロを実行すると時々「ファイルが見つからない」といった内容のエラーが出るようになったのですが、一旦、中止して一覧表の元になるファイルを1つ開いて何もせずにそのまま閉じた後、再度マクロを実行するとエラーは出ません。 このエラーは、やはり『一覧表』フォルダを作って移動させたことが原因でしょうか?また、このエラーが出ないようにする方法はあるのでしょうか? コードは下記のようになっていて、“ファイル名”というシートに一覧表の元になる複数のファイル名が入力してあります。 Sub LISTOUT() OUT_LINE = 1 MY_BOOK = ActiveWorkbook.Name Sheets("ファイル名").Select For FILE_GYO = 2 To Cells(2, 1).End(xlDown).Row Sheets("ファイル名").Select FILE_NAME = Cells(FILE_GYO, 1) Workbooks.Open Filename:=FILE_NAME OPEN_BOOK = ActiveWorkbook.Name SHEET_SU = Sheets.Count For i = 1 To SHEET_SU Sheets(i).Select CODE_NO = ActiveSheet.Name KAISHAMEI = Cells(2, 3) TSUKIKEI = Cells(1, 23) RUIKEI = Cells(1, 25) Workbooks(MY_BOOK).Activate Sheets("一覧表").Select OUT_LINE = OUT_LINE + 1 Cells(OUT_LINE, 1) = CODE_NO Cells(OUT_LINE, 3) = KAISHAMEI Cells(OUT_LINE, 4) = TSUKIKEI Cells(OUT_LINE, 6) = RUIKEI Workbooks(OPEN_BOOK).Activate Next ActiveWorkbook.Close Next End Sub マクロに関しては初心者ですので、詳しく教えていただけると助かります。

  • エクセルマクロでロックするとエラーが出る

    こんにちは エクセルマクロでロックをかけるとエラーが出てしまいます。 具体的には↓ Sub tes() Range("a1:c1").Copy ActiveWorkbook.Worksheets("Sheet2").Activate ActiveSheet.Unprotect '(1) Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).PasteSpecial End Sub 上記のマクロでSheet2にロックをかけるとエラーが起こります。 (1)まではちゃんと行きますし、Sheet2にロックをかけなくても上手く動作します。 原因が思いつかないので、ぜひアドバイスをお願いいたします。

専門家に質問してみよう