- ベストアンサー
rangeクラスのselectメソッドが失敗
- ExcelのVBAマクロにおいて、rangeクラスのselectメソッドが正常に機能しない問題が発生しています。
- タイトルのエラーが出て実行されず、解決策を模索しています。
- Sheet2をアクティブにする必要があることがわかっているが、同様のエラーが発生しています。Excel2003にて作成されています。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- RangeクラスのSelectメソッドが失敗しました。
VB5.0でExcel97のファイルを作成するプログラムを作成しています。 今まで順調にエクセルのほうで、コピーしたり移動したりしていたんですが 以下のようなエラーが出るようになってしまいました。 何のタイミングで出てきたかがわからないので困っています・・。 Exsheet1にアクティブシートを設定しています。 (1)の範囲をコピーして(2)の部分を先頭に貼り付けようとしています。 (1)ExSheet1.Range("A6:Z6").Copy (2)ExSheet1.Range("A7").Select (3)ExSheet1.Paste (2)で、「Range クラスの Select メソッドが失敗しました。」 というエラーが出ます。 前後を詳しく書いていないので、わかりにくいと思いますが こういったエラーが出る場合の対処方法など教えてください。 よろしくお願いいたします!
- 締切済み
- Visual Basic
- range クラスのselectメソッドが・・・
マクロ実行時に 実行エラー 1004 「Range クラスのselectメソッドが失敗しました。」 のメッセージが出てしまいます。 マクロは以下のとおりです。 ----------------------------------------------------------------------------------- Sub 振替表作成() Workbooks.Add Application.SheetsInNewWorkbook = 1 ActiveSheet.Name = "未収" MsgBox ("未収・前受振替表エクセルファイルを作成します。" & "任意の場所を指定して保存してください。 ") With Application.FileDialog(msoFileDialogSaveAs) .InitialFileName = "未収・前受振替表" If .Show = -1 Then .Execute End With MsgBox ("対象月次の1370集計表 を選択してください。") With Application.FileDialog(msoFileDialogOpen) .InitialFileName = "" .AllowMultiSelect = True If .Show = -1 Then .Execute End With Columns("A:D").Select Selection.Delete Shift:=xlToLeft ---------------------------------------------------------------------------- Columns("A:D").Select の部分でエラーになります。 Columns("A:D").Select の前に ActiveWindow.Select を入れてみたんですが駄目です。 Columns("A:D").Select の前に Selection.Select を入れてみたんですが駄目です。 Columns("A:D").Select の前に Worksheets("シート名").Activate を入れてみたんですが駄目です。 原因と解消方法がわかりません。 何がいけないんでしょうか?
- ベストアンサー
- その他MS Office製品
- SheetsクラスのSelectメソッドが失敗
Excelファイルのマクロで、SheetsクラスのSelectメソッドが失敗しましたのエラーが出ます 以下のマクロですが、最初のSheets(Array(................))._Select でエラーになりますその後は解りませんが...。 原因はSelectしているSheetの中に非表示なシートがあるのが原因ですが、 このマクロが入っているExcelファイルは色々な人が使うので人によって非表示にしたい シートがまちまちで、限定は出来ません。ただし、非表示にしたものはそのファイルを 使う人はそのシートはなくても構わないですので、使う人によってマクロを修正すれば 動くのですが、ちょっと面倒なのでこのマクロを修正して対応出来ればと思います。 このケースはsheet4~sheet10までのシートを選択して、選択した全てのシートの特定 部分を消去し、選択していないシートに入って選択を解除し基本となるシートに戻る というマクロです。 マクロの記録で作成して、いらなそうなやつを削除したものです。 ホームページで色々検索しましたが、非表示シートはSelect出来ないと言うことは何となく 解りましたが、マクロの記録で作成した事でも解るように全くの初心者ですので、そこの ところよろしくお願いします。 Sub クリアー() ' ' クリアー Macro ' Sheets(Array("sheet4", "sheet5", "sheet6", "sheet7", "sheet8", "sheet9", "sheet10")). _ Select Sheets("sheet6").Activate Union(Range( _ "F109:BO109,F112:BO112,F115:BO115,F118:BO118,F121:BO121" _ ), Range( _ "FJ225:GS225,FJ228:GS228,FJ231:GS231,FJ234:GS234,FJ237:GS237" _ ), Range( _ "OA535:PD535,OA538:PD538,OA541:PD541,OA544:PD544,OA547:PD547")).Select Selection.ClearContents Sheets("sheet3").Select Sheets("sheet6").Select Range("J1:L1").Select End Sub
- ベストアンサー
- Visual Basic
- 'Range'メソッドは失敗しました
ExcelのVBAの質問になりますが、教えてください。 下記を動かすと最後の行で「'Range'メソッドは失敗しました: '_Worksheet' オブジェクト」と出ます どうしても最後の行をセレクトしたいのですが、どうしたらよいでしょうか。 Option Explicit Public WB1 As Workbook Public WB1SH1 As Worksheet Public CSVWB1 As Workbook Public CSVWB1SH1 As Worksheet Dim MaxRow As Integer Private Sub CommandButton1_Click() Set WB1 = ActiveWorkbook Set WB1SH1 = WB1.Worksheets(1) Dim a As String a = WB1SH1.Range("a1) Workbooks.Open "C:\Users\User\Desktop\" & a & ".CSV" Set CSVWB1 = ActiveWorkbook Set CSVWB1SH1 = CSVWB1.Worksheets(1) MaxRow = CSVWB1SH1.Cells(Rows.Count, 1).End(xlUp).Row WB1SH1.Activate WB1SH1.Range(Cells(1, 1), Cells(MaxRow, 3)).Select CSVWB1SH1.Activate CSVWB1SH1.Range(Cells(1, 1), Cells(MaxRow, 3)).Select '←ここでエラーがでる End Sub
- ベストアンサー
- Excel(エクセル)
- ECXEL VBA - Selectメソッドの失敗
Rangeを指定するのに、 Workbooks("abc").Sheets("Sheet1").Range("A1").Select と言う風に指定したいのですが、これを行なうと -------------------------------------------- 実行時エラー '1004': RangeクラスのSelectメソッドが失敗しました。 -------------------------------------------- となってしまう為、いつもわざわざ下記のようにしています。 Workbooks("abc").Activate Sheets("Sheet1").Select Range("A1").Select Selectだけでなく、Copyの貼り付け等の時も同様で かなりの手間と、コードの長さになってしまっています。 どこかの設定を変えると出来たりするのでしょうか? 又、他に良い方法がありましたらお教え下さい。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 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です。 ご協力お願いします。
- ベストアンサー
- オフィス系ソフト
- worksheetクラスのcopyメソッドが失敗しました。
VBA初心者です。 「worksheetクラスのcopyメソッドが失敗しました。」 エラー回避方法を教えてください。 やりたいことは、データ入力シートから雛形シートにデータを参照して、データ入力シートの1行ずつを新しいシートにしたいです。35シートぐらいをコピーしたら上記のエラーがでました。メモリ不足でエラーになるんだろうなぁということは予測つくのですが、なにか回避方法はありますか? 別のブックを使う方法でもよいです。ご教示ください。 コードはこんな感じです。 Sub シート作成1() 'データ行選択 Range("B9").Select Range(Selection, Selection.End(xlDown)).Select ActiveSheet.Unprotect Rows("8:8").Select Selection.AutoFilter Selection.AutoFilter Field:=12, Criteria1:="<>" Range("B9").Select Range(Selection, Selection.End(xlDown)).Select '選択したデータ行のシート作成 For Each 選択セル In Selection Worksheets("ひな形").Copy after:=ActiveSheet DoEvents 'シート名の変更 ActiveSheet.Name = 選択セル.Value ActiveSheet.Tab.ColorIndex = 38 Next 選択セル DoEvents 'オートフィルタを元にもどす Sheets("データ入力シート").Select Rows("8:8").Select Selection.AutoFilter Range("B1").Select Columns("L:O").Select Selection.EntireColumn.Hidden = True Range("B1").Select ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _ False, AllowSorting:=True, AllowFiltering:=True End Sub よろしくおねがいします。
- 締切済み
- その他MS Office製品
- Excel Selectは使わない? VBA
おはようございます。 ExcelのVBAを独学しております。 いまさらな質問だとは思いますが、 そこで、色々調べていたところ 「Select」はあまり使うな! ということが良く出てきました。 selectを使わず、上手くシート移動などができるのでしょうか? 私が組んでいるものは、色んなシートを切り替えなければならなく、 毎回Selectしています。 Activateを使ったこともありますが、 エラーが多発し、良く分からなかったためSelectを使用しています。 出来れば、シートをアクティブにすることなく 操作ができれば良いのですが・・・ 例)「データ」「コピー」のシートがあります。 「データ」シートのAからD列を「コピー」シートにコピー しようとするものです。 WorkSheets(データ).select Range("A1").select Range("A:D").select selection.copy Worksheets("コピー").select Range("A1").select ActiveSheet.Paste どうしてもSelectを多様してしまいます。 ●Selectを使わないデータの入力方法 ●Selectを使わず、シートをアクティブにしなくても良い参照方法 ●どうしてもSelectを使わないといけない場面 ●Selectを使うのを回避するためには・・・ などなど、ご存知でしたら回答お願い致します。
- ベストアンサー
- Excel(エクセル)
- excelのマクロでrangeの選択がうまくいきません。
excelのマクロでrangeの選択がうまくいきません。 以下のマクロをsheet2に書きました。testcopyは動きますが、testcopy2は動きません。なぜなのでしょうか。どうすればいいのでしょうか。それ以外のマクロの部分との関係から、cellsを使い、数字を使ってrangeの処理をしたいのです。よろしくお願いします。 Sub testcopy() Worksheets("sheet1").Range("B3:C10").Copy Worksheets("sheet2").Range("e5").Select ActiveSheet.Paste End Sub Sub testcopy2() Worksheets("sheet1").Range(Cells(3, 2), Cells(10, 3)).Copy Worksheets("sheet2").Range("e5").Select ActiveSheet.Paste End Sub
- ベストアンサー
- その他MS Office製品
- ActiveX コントロールでのセル選択
Excel VBA独学中の初心者です。 目的:ActiveX コマンドボタンをクリックして他のSheetのセルを選択する 環境例:シートが2個(Sheet1、Sheet2) Sheet2にActiveXコントロールのコマンドボタンを置く 【プログラム1】:コマンドボタンには次のようなVBAコードを記述 ---------------- Private Sub 別シートセル選択_Click() Worksheets(1).Activate Range("A5").Select End Sub ---------------- 結果:この時次のようなエラーが出ました。 '実行時エラー'1004 'アプリケーション定義またはオブジェクト定義のエラーです。 -------------------------------- -------------------------------- 【プログラム2】:コマンドボタンには次のようなVBAコードを記述 ---------------- Private Sub 別シートセル選択_Click() Worksheets(1).Activate Worksheets(1).Range("A5").Select End Sub ---------------- 結果:OK ---------------- ---------------- ところが次の【比較1】【比較2】の場合、「Range("A5").Select」だけでOKでした。 ---------------- 【比較1】 コントロールの存在するSheetのセルを選択する場合は「Range("A5").Select」だけでOKでした。 ---------------- 【比較2】 Subマクロで記述する場合も「Range("A5").Select」だけでOKでした。 プログラムは以下 -------- Sub セル選択() Worksheets(1).Activate Range("A5").Select End Sub ---------------- 【質問】 ActiveX コントロールを置いているSheetとは別のSheetのセルを選択する時は、選択しようとするセルの「Sheet名」から記述しなければならないのでしょうか。 「Range("A5").Select」だけでOKだった【比較1】【比較2】との違いを教えていただきたくお分かりの方宜しくお願いします。 (用語の使い方に誤りがありましたらすみません。)
- ベストアンサー
- Excel(エクセル)
お礼
無事に例1を使用することで解決することが出来ました。 ありがとうございました。