• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2000のVBA Activateについて)

Excel2000のVBAにおけるActivateについてのエラーについて

kenken0001の回答

回答No.2

単純なことで申し訳ありませんが 実行をステップインで行った時の 変数file_nameの内容は何ですか。 機種間で違いはありませんか。 不明な点ですが Workbooks.Open Filename:=file_name は Workbooks.Open file_name ではだめですか。 他で開かれている可能性はありませんか。 富士通機でファイルを 開く、更新、保存の 手作業の処理は可能ですか。 オープンがうまくいっているとしたら ツールバーの「ウィンドウ」のところに表示されますか。 (同じくステップインで見れませんか) オープン済みブックの確認は下記でも可 Dim ブック名 As Variant For Each ブック名 In Workbooks MsgBox ブック名.Name Next ディレクトリ内のほかのファイルではどうですか。 サーバーでなくローカルのファイルではどうですか。 サーバーとの設定が機種間で違うところはありませんか。 (ファイル共有) 以前からだめですか。 (まだ一度も成功したこと無い?) しばらく ScreenUpdating は解除して 変数の推移など様子を眺めてみてはどうでしょうか。 エラー処理はどのようなことをしていますか。 (オープン時エラーは回避する、等はありますか) 同じソースでのエラーは機種間の設定が心配です。 ネットワークファイルの扱いが気になります。 たいした事が書けなくてすいません。 何かありましたら質問ください。

win95user
質問者

お礼

Workbooks("****").Worksheets("@@@@").Activate に限らず,既にActivateが,かかっているワークブック("****") に対して, Workbooks("****").Worksheets("@@@@").Close savechanges:=False などの処理もうまくいかないことがわかりました。 コードを, ActiveWorkbook.Close savechanges:=False 等に変更することで とりあえずはエラーを回避しました。 ただ,同じモジュールをそのまま使ってPCによって現象が出るものと 出ないものがあるのが気がかりです。 NEC製のPCや他の富士通製のノートPCでは現象が出ないため, 現象が出るのは同時期にまとめて購入した特定の型のPCのようです。 1台を除き全てのPCで現象がでました。 以上です。色々とありがとうございました。

win95user
質問者

補足

ご丁寧にありがとうございます。 1)実行をステップインで行った時の変数file_nameの内容は何ですか。 機種間で違いはありませんか。 --->機種間での違いはないです。 2)Workbooks.Open Filename:=file_nameは Workbooks.Open file_nameではだめですか。 --->どちらでもOKだと思います。 3)他で開かれている可能性はありませんか。 富士通機でファイルを開く、更新、保存の手作業の処理は可能ですか。 --->手作業は問題ありません。手作業のさいにブックの使用中の警告が 出てこないので,他で使用している可能性はないと思われます。 4)オープンがうまくいっているとしたらツールバーの「ウィンドウ」の ところに表示されますか(同じくステップインで見れませんか) --->表示はされます。異常終了の際にWindowsのタスクバーにオープン したブックが出ていますので。 5)ディレクトリ内のほかのファイルではどうですか。  --->最初にユーザーの認証を行うため,別のブックを開いています。    そちらは問題なく動作します。 サーバーでなくローカルのファイルではどうですか。 --->試してみます。  サーバーとの設定が機種間で違うところはありませんか(ファイル共有)。  --->特に違いはないと思います。アプリケーション自体がサーバーの共有    ファイルにあり,参照するブックも同じフォルダー内にありますので。  --->以前からだめですか。 (まだ一度も成功したこと無い?) 一度も成功していません(>_<) 6) エラー処理はどのようなことをしていますか(オープン時エラーは回避する   等はありますか) --->オープン時エラーは回避する等の処理はいれていません。     On Error Resume Next 等をいれれば回避されるとは思うのですが     その場はよくても後のメンテナンスが厄介そうなので・・・・ 以上です。 色々と説明不足で申し訳ありませんでした。 私も色々と試してみます。うまくいったら報告させてもらいます。

関連するQ&A

  • EXCEL2000とEXCEL2003のVBAについて

    現在、EXCEL2000で下記のコードを実行しています。 が、EXCEL2003で実行すると、 .UsedRange.Copy myb のコードが実行されているのにコピー出来ていません。 ファイルは開いていて、エラーは出ていないのです。 問題点わかる方教えていただけますか? Sub 日別データ読込() Dim rngsaki As Range Dim pathmacrobook As String Dim namebook As String Dim motobook As Workbook Dim myb As Variant Set rngsaki = Workbooks("残高集計用.xls").Worksheets(3).Range("a2") pathmacrobook = ThisWorkbook.Path & "\CSV読込データ12\" namebook = Dir(pathmacrobook & "*.xls") Do While Not namebook = "" Set motobook = Workbooks.Open(pathmacrobook & namebook) Set myb = Workbooks("残高集計用.xls").Worksheets(3).Range("A65536").End(xlUp) With motobook.Worksheets("Sheet1") .UsedRange.Copy myb End With motobook.Close False namebook = Dir() Loop MsgBox "完了しました" End Sub

  • Excel2007VBA ブックのアクティブ化

    ●質問の主旨(2点) 1.以下のコードは、なぜエラーが返されるのでしょうか? 2.タスクバーにあるアクティブ状態ではないブックの1枚目シートを 選択するためには、以下のコードをどのように書き換えれば良いでしょうか? ●質問の補足 タスクバーにはエクセルブック「Book1」と「Book2」を表示させ、 「Book1」の「sheet1」がアクティブになっています。 Book1の標準モジュールに以下のコードを記述しています。 Sub sample1() Workbooks("Book2.xlsx").Activate Worksheets("sheet1").Select End Sub しかし実行すると「実行時エラー9インデックスが有効範囲にありません」と エラーが返されます。なぜそうなるのかが分かりません。 ご存知の方がいらっしゃればご教示よろしくお願い申し上げます。 私はVBA初心者です。

  • Excel2007 VBA Copyメッソド

    Excel2003で開発されたVBAをExcel2007で動くように修正しているのですが、 次のコードがExcel2007ではエラーになります。  (1)Workbooks.Open Filename:=pthFolder & "\" & nmFile  (2)nmSheet = Workbooks(nmFile).ActiveSheet.Name  (3)Workbooks(WB_Name).Worksheets(S_MAIN).Copy After:=Workbooks(nmFile).Sheets(nmSheet) (1)と(2)は実行されますが、(3)がエラーになり、(4)に飛びます。 (4) SaveError:      MsgBox "エラー発生"      Application.DisplayAlerts = False      Workbooks(nmFile).Close    End Sub どなたか、Excel2007でエラーになる理由と解決策を教えていただけないでしょうか。 既に同じ質問が出ているかもしれませんが、VBA初心者なもので、うまく探せませんので、 ご協力をお願いいたします。

  • VBA★ブックがactivateできません

    簡単なVBAで躓いています。 新しいエクセルファイルを追加して、アクティブにしたいです。 エクセルファイルの名をフォームで入力させ、mybookという変数にしました。 ---------------- Private Sub CommandButton1_Click() mybook = UserForm1.TextBox1.Text Unload Me End Sub ---------------- そして、mybookという名前のファイルを追加しました。 ここまではうまく行きます。 ただ、その後の Workbooks(mybook).Activate で 「実行時エラー”9” インデックスが有効範囲にありません」 が表示されてしまいます。 ---------------- Public mybook As String ---------------- Sub ファイル名変数() UserForm1.Show MsgBox "ファイル名は" & mybook & "です" Workbooks.Add ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & mybook Workbooks(mybook).Activate End Sub ---------------- 一連の処理の中でactivateしたいな、という箇所が何回か出てくるのですが、 Workbooks(mybook).Activate でエラーが出てしまい困っています。 識者の方、何卒アドバイスをお願いいたします。

  • VBAが得意な方 助けてください Rangeについて

    入門書を読みながらVBAを勉強しています。 3日以上繰り返して、ぜんぜんすすみません。困っています。お願いします。ご協力お願いします。 コードの内容は (1)マクロから別のエクセルファイルを開く (2)開いたファイルのシート1を選択 (3)Endプロパティを使ってRange("A65536")から上にジャンプするものです。 本に書いてあったコード通りうち実行しても4行目で以下のエラーメッセージが表示されます。 --出るエラー-- 実行時エラー'1004 'RangeクラスのActivateメソッドが失敗しました。 --使っているコード-- Application.DisplayAlerts = False Workbooks.Open Filename:= "C:\1班.xls" Worksheets("Sheet1").Select Range("A65536").End(xlUp).Activate 使っているものはExcel2000です。 ご協力お願いします。

  • WorkbooksとWorksheetsを簡単にActivateする方法

    お世話になります。よろしくお願いいたします。 Excel 2003で複数のワークブック、ワークシートを以下の方法以外に簡素にActivateする方法ありませんでしょうか? Workbooks("ほげ.xls").Activate Worksheets("ほげほげ").Activate 複数の違うワークブック、ワークシートを何度も処理の途中でActivateする為、Workbooksと、Worksheetsを変数に格納し、変数.Activateのような事ができないかと考えているですが、方法がわかりません。 よろしくお願いいたします。

  • Excel2010 VBA終了時に強制終了する

    Excel2003、2007で実行した場合は正常終了するが Excel2010で実行するとVBA終了時に強制終了します。 処理は、マクロありブックからマクロなしブックを作成するために、 新規ブックを作成しマクロありブックからシートを移動する処理です。 VBA起動は、フォームコントロールから行っています。 VBA終了時に(End Sub)後にEXCELがなぜか強制終了します。 (Microsoft Excel は動作を停止しました。のメッセージが表示される) なお、 ・フォームコントロールから実行した場合はEXCELが強制終了し、   デバックモードで実行した場合は強制終了しません。  ・マクロありファイルの種類:Excel 97-2003ブック  ・★★★のソースが含まれていると、Excelが強制終了します。 以下、ソース。 Sub ファイル保存()   'マクロなしファイルを作成 CreateNoMacroBook End Sub '←ここで異常終了が発生する。 Sub CreateNoMacroBook() Dim fname As String Dim ns As Integer Dim cnt As Integer Dim i As Integer 'マクロありブックの名前を取得 fname = ActiveWorkbook.Name 'マクロありブックのシート数を取得 cnt = ActiveWorkbook.Worksheets.Count 'すべてのシートをMoveするとエラーになるのでシートを追加 Worksheets.Add After:=Worksheets(Worksheets.Count) '新規ブック作成時のデフォルトのシート数を保管 ns = Application.SheetsInNewWorkbook '新規ブック作成時のシート数を変更 Application.SheetsInNewWorkbook = 1 '新規ブック作成 Workbooks.Add '新規ブック作成時のデフォルトのシート数に戻す Application.SheetsInNewWorkbook = ns 'マクロありブックのシートを新規ブックの"Sheet1"シートの前に移動 For i = 1 To cnt Workbooks(fname).Worksheets(1).Move Before:=Workbooks(Workbooks.Count).Worksheets("Sheet1")  '★★★ Next i '表示用に新規ブックの一枚目のシートをアクティブにする Workbooks(Workbooks.Count).Worksheets(1).Activate Application.DisplayAlerts = False '新規ブックのデフォルトシート"Sheet1"を削除する Workbooks(Workbooks.Count).Worksheets("Sheet1").Delete Workbooks(Workbooks.Count).Activate Application.DisplayAlerts = True End Sub

  • エクセルVBA

    こんばんは! エクセルマクロ初心者です。 エクセルVBAについて教えてください! パス(?)を指定して、ファイルを開けてから実行する マクロを書きたいのですが、エラーになってしまいます。 Dim Filename as string (1)Workbooks.Open Filename:= "\D\MyDocument\●●.xls" (●●はファイル名) (2)Workbooks("●●").Activate (1)の部分は実行されて目的のファイルは開くのですが(2)でエラーになってしまいます。 どなたか教えてください! 以前までは、このマクロ実行できていたのですが、突然できなくなりました。 困ってます。

  • Excel2007VBAでコンパイルエラー

    EXCEL2000ので動作していたVBAのプログラムをEXCEL2007で動かしたら、CHRの命令でコンパイルエラー、プロジェクトまたはライブラリーが見つかりませんとメッセージが出てしまいます。 (Excel2007の設定は初期値のままです) CHRの命令行をコメントにして先へ進ませると今度は、Leftの命令で同じエラーが発生します。 又、VBAProjectのコンパイルを実行するとFormatの命令で同じエラーがでます。 何かアドインのモジュール設定が足りないと思っていますが、何が足らないのかわかりません。 ご存知の方は解決方法を教えて下さい。 宜しくお願い致します。

  • VBA(Excel2007からExcel2003の注意事項)

    Excel2003のマクロが起動しません。 Excel2007で新しいマクロの記録(自動)を行ったExcelファイルがあります。それを別のPCのExcel2003で実行すると、エラーが発生し、プログラムが停止します。 (両方のファイルの拡張子は***.Xlsです。) VBAでExcel2003から2007にバージョンアップでは問題ないようですが、2007から2003にバージョンダウンするうえで注意事項があれば、教えて下さい。よろしくお願いします。