エクセル2000マクロデバッグエラー
- エクセル2000でマクロを実行する際に発生するデバッグエラーについて質問があります。
- エクセル95では問題なく動作するマクロが、エクセル2000ではエラーになってしまいます。
- 具体的には、特定のセルのインデックスが有効範囲外となり、エラーが発生します。解決策を教えてください。
- ベストアンサー
エクセル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
- オフィス系ソフト
- 回答数2
- ありがとう数0
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
各行に意味を書いてみました。 L5の数値の下2桁の月の翌月をファイル名の一部としてBookを保存しようとしているみたいです。 >インデックスが有効範囲にありません のエラー Sheet("mmm")のmmmはシート名と一致していますか。全角と半角で違っている可能性があります。 Excel2000でこの辺りが厳格になったのかもしれません。(自信なし) シートでシートタブをクリックしてシート名を反転させてコピー。 それをこのコードのSheet("mmm")の『mmm』部分に貼り付ければうまくいくかもしれません。 後は、tukiの変数宣言が質問の中には見当たりません。 記述の意味 ↓ '*** 配列の定義。みんなバリアント型になっている。これでもいいが、ちゃんと宣言したほうがいい。 '*** tukiについては、Dimがない? 書くなら、Dim tuki。これはバリアント型の必要あり Dim i, C_COUNT, folda, work, t '*** フォルダを定義 folda = "C:\test\" '*** tukiはシート名mmmのL5の文字 = 200201 tuki = Sheets("mmm").Cells(5, 12).Text '*** tuki = 1 。200201の右2桁『01』にして、数値にしている tuki = Val(Right(tuki, 2)) '*** 翌月を求めている If tuki = 12 Then '*** 12月なら翌月は1月 tuki = 1 Else '*** 12月以外ならtukiに1加算した月が翌月 tuki = tuki + 1 End If '*** tukiを数値から前ゼロの文字に変えている tuki = Format(Str(tuki), "00") '*** 新規Bookを追加 Workbooks.Add '*** F_NAMEは Kei02tuki.XLS になる F_NAME = "Kei" + tuki + "tuki.XLS" '*** Bookをfoldaにファイル名F_NAMEで保存している ActiveWorkbook.SaveAs FileName:=folda + F_NAME, _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False
その他の回答 (1)
- nishi6
- ベストアンサー率67% (869/1280)
M_KAKOBA(count) は文字列ですよね。iは数値。 多分、 M_KAKOBA(count) = "Sheet" & i でしょう。文字列と文字列(または数値)の結合は & を使います。
関連するQ&A
- エクセル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
- 締切済み
- オフィス系ソフト
- マクロ シート別に名前をつけて保存したい
1つのブックにシートが複数あり、それぞれシート毎に名前をつけて保存したいです。 質問を検索しましたら似たようなマクロを見つけたのですが、例えば1.2.3・・・というシートがあった場合、エクセル1、エクセル2、というような共通の言葉をつけて保存したい場合の方法を教えて下さい。 たぶんですが・・・下記のどこかにエクセルという言葉をいれるとできますでしょうか? Workbooks(2).SaveAs Filename:= _ SvPath & Workbooks(BookName).Sheets(SheetName).Name & ".xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- マクロが思い通りに動きません
エクセルでマクロを使いボタンを 作りました。ボタンを押すとHDDとDVDに保存される仕組みになっています Sub DVD() ChDir "E:\" ActiveWorkbook.SaveAs Filename:=Format(Now, "yyyy-mm-dd(hh時mm分ss秒)"), FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub Sub HDD() ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\***\デスクトップ\ファイル名.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub これだとDVDへ保存が上手くいきません。DVDからエクセルを開いて使えば問題ないのですが、デスクトップから開くと日付入りのデータがデスクトップに保存されてしまいます。 どうやって書き換えたらいいでしょうか
- ベストアンサー
- Visual Basic
- エクセル2000 VBA
ウィンドウズ2000 エクセル2000です。 ブックの中のシートを一枚だけコピーして別のブックに名前を付けて保存したいと思っています。 「'コピーするシートを選ぶ Sheets("概要表").Select '全部選んでコピー Cells.Select Selection.Copy '新しいブックを選ぶ Workbooks.Add Cells.Select '新しいブックにコピーを貼り付ける。 ActiveSheet.Paste Application.CutCopyMode = False」 ここまでは順当に動いています。 質問は アクティブになった新しいブックを保存したいです。 一行から二行目にかけて設定しているファイルネームを、 メッセージボックスを表示させてそこに入力した文字列 をファイルネームとして(現在****)保存したいのですが。 ActiveWorkbook.SaveAs Filename:= _ "**********.xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False どなたかよろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルのコード修正について
OSはWindowsNT、Excel97です。 コマンドボタンで、保存ボタンを作ったのですが、保存したデータを呼び出すと、 上書するにはパスワードを入力しないといけない画面が出てきてしまいます。 これをパスワードを入れなくても画面がすぐ開くようにしたいのですが、以下のコードをどう作りかえれば良いですか? 宜しくお願いします。 Private Sub CommandButton4_Click() Dim FName As String FName = Sheets("フッ素ガルタイト見出し").Cells(6, 3) Application.WindowState = xlMinimized Application.WindowState = xlNormal ActiveWorkbook.SaveAs Filename:="\\業務\見積\" & FName & ".xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="gf3002", ReadOnlyRecommended:= _ False, CreateBackup:=False End Sub
- ベストアンサー
- オフィス系ソフト
- Excelマクロで年度別にフォルダ作成したい。
Excel2003です。 日々の売り上げ集計ファイルをボタン一つで保存していくマクロを作っています。 Application.DisplayAlerts = False If Dir(ThisWorkbook.Path & "\" & Format(Date, "yy") & "年集計", vbDirectory) = "" Then MkDir Path:=ThisWorkbook.Path & "\" & Format(Date, "yy") & "年集計" ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Format(Date, "yy") & "年集計\" & Format(Date, "yymmdd") & ".xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Else ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Format(Date, "yy") & "年集計\" & Format(Date, "yymmdd") & ".xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False とりあえず指定のフォルダに「yymmdd.xls」という名前をつけて保存、もしフォルダがなければ作るというところまで作れました。そこで、今度は「**年度」というフォルダに自動的に保存され、もし「**年度」というフォルダがなければ作るようにしたいのです。上に上げたマクロでは「**年」というフォルダを作ってその中に保存というところまでは出来ているのですが……。とにかく年度で分ける場合の処理がよくわかりません。 回答よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- ファイルの保存先を任意にしたい(マクロ)
エクセルのマクロです。 マクロを実行した時に、保存先とファイル名は任意に入力して(その部分だけは、マクロ実行者が入力して)、その後もマクロを実行させたいのですがどうすれば良いのでしょうか? たとえば、 ActiveCell.FormulaR1C1 = "1" Range("B1").Select ChDir "C:\Documents and Settings\a\デスクトップ" ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\a\デスクトップ\ Book1.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Range("A2").Select ActiveCell.FormulaR1C1 = "2" Range("B2").Select ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\a\デスクトップ\ Book2.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Range("A3").Select ActiveCell.FormulaR1C1 = "3" Range("B3").Select ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\a\デスクトップ\ Book3.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Range("A4").Select ActiveCell.FormulaR1C1 = "4" Range("B4").Select 上記の場合は、保存先もファイル名もこちらが指定していますが、その部分だけは、マクロの実行者に任意指定及び入力させたいのです。 マクロ初心者なので、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBマクロで教えて下さい。
下記VBマクロで上書きしない時はマクロを終了させたいのですがこ指導をお願いします。 Sub Macro2() ' Macro2 Macro ' マクロ記録日 : 2012/9/3 ユーザー名 : HA社 ChDir "C:\Documents and Settings\6464552\デスクトップ" ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\6464552\デスクトップ\直送先部品出庫伝票.xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False Range("D42:E49").Select Selection.ClearContents Range("I32:J32").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\6464552\デスクトップ\PPSC部品出庫伝票.xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False Application.Quit End Sub
- ベストアンサー
- Visual Basic
- VBAでのシートコピーについて
VBAでシートを新しいブックにコピーして、名前を付けて保存したいのですが、同じファイル名が存在すると、必ず「上書きしますか?」のダイアログが表示されてしまいます。無条件で上書きする方法ってありませんか? 今は↓のようなコードを書いてます。 Application.ScreenUpdating = False Sheets("sheet1").Copy ActiveWorkbook.SaveAs Filename:= _ "C:\Book1.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False ActiveWindow.Close
- ベストアンサー
- その他(業務ソフトウェア)
- ファイル保存のマクロについて
ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\Owner\aaa\bbb\ccc\" & Range("k2").Value & ".xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False 上記のようにマクロを組みましたがうまく作動しません。 セル"k2"の値は日付が入力されています。 その値が原因で読み取れないみたなのですが。 (セルの書式設定の日付で●月●日で設定しています)
- ベストアンサー
- その他(データベース)
補足
早速の回答ありがとうございます。 もうひとつ教えてください。 下記のマクロで型が一致していませんがでます。 M_KAKOBA(count) = "Sheet" + i(3行目の5列には1が入っていま。) 何が原因でしょうか。 Dim i, C_COUNT, folda, work, tuki For count = 1 To C_COUNT 'C_COUNT Windows("test.xls").Activate Sheets("aaa").Select Cells(3, 5) = count i = count M_KAKOBA(count) = "Sheet" + i