• ベストアンサー

フィルタを解除してA1セルを選択<マクロ>

EXCEL2002を使用しています。 以下のようなマクロで、フィルタを解除してA1のセルを選択するようにしたいと思いました。 Sub Macro1() ActiveSheet.ShowAllData Range("A1").Select End Sub フィルタがかかっている状態で実行すれば問題ないのですが、かかっていない状態で実行するとエラーになっていまいます。 フィルタがかかっていない状態の場合は単にA1を選択するようにしたいのですが、どのようにしたらよいでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • akey
  • ベストアンサー率38% (8/21)
回答No.2

#1です。すいません。まちがっていました。 Sub Macro1() On Error GoTo Errhand ActiveSheet.ShowAllData Range("A1").Select Exit Sub Errhand: Range("A1").Select End Sub

min128mini
質問者

お礼

早速試させていただきました。希望通りの動作をしてくれました。 本当にありがとうございました。もっとマクロを勉強したいと思います。

その他の回答 (1)

  • akey
  • ベストアンサー率38% (8/21)
回答No.1

単純にエラー処理を追加するだけではだめですか? Sub Macro1() On Error GoTo Errhand ActiveSheet.ShowAllData Range("A1").Select Errhand: Range("A1").Select End Sub

関連するQ&A

  • Excell : 「データ→フィルタ→全て表示」をマクロにする。

    Excellにて「データ→フィルタ→全て表示」をマクロにしました。既にフィルタがかかった状態でこのマクロを実行すると問題ありません。しかし、フィルタがかかっていない状態から実行すると「全て表示」が有効になっていないので、マクロ実行がエラーになってしまいます。 多分、以下のVBに「全て表示」が有効になっているかの判断を入れればいいかと思うのですが、その具体的なコードを教えてください。よろしくお願いします。 Sub 全て表示() ActiveSheet.ShowAllData End Sub

  • 複数のシートにまたがり、フィルタオプションの設定から値を抽出するマクロ

    複数のシートにまたがり、フィルタオプションの設定から値を抽出するマクロを組んでおります。 表示したくないシート(data,output)を非表示にしたら、エラーが出てしまいました。 非表示シートの状態で処理することはできませんでしょうか。 Sub Macro7() Application.ScreenUpdating = False Sheets("data").Select Columns("A:J").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _ Sheets("マップ").Range("E2:N3"), Unique:=False Columns("A:J").Select Selection.Copy Sheets("output").Select Range("A1").Select ActiveSheet.Paste Application.CutCopyMode = False Selection.Copy Sheets("マップ").Select Range("E5").Select ActiveSheet.Paste Range("H4").Select Sheets("data").Select Application.CutCopyMode = False ActiveSheet.ShowAllData Sheets("マップ").Select End Sub

  • マクロが実行しない

     二行三列を一枡として月の勤務割表を作成しています。マクロで同じ事を しているのにMacro1の方が実行しません。お教え願えませんでしょうか。 (尚、図形を枠線上にコピペしています。) Sub Macro1()実行しません。 Dim i As Integer Dim j As Integer For i = 10 To 43 Step 2 For j = 10 To 103 Step 3 Select Case Cells(i, j).Value Case 1: ActiveSheet.Shapes("四角形1").Select Selection.Copy Cells(i + 1, j + 1).Select ActiveSheet.Paste End Select Next Next End Sub Sub Macro2()実行します。 ActiveSheet.Shapes.Range(Array("四角形1")).Select Selection.Copy Range("J11:K11").Select ActiveSheet.Paste End Sub

  • Excelマクロでオートフィルターからコピペ

    ファイルのB列の値から0以外の値をオートフィルターで抽出し、値を、別のファイルのD列の一番下に貼りつけるマクロを作っていますがうまくいきません。 今作ったのは Sub macro1() If ActiveSheet.AutoFilterMode = False Then Range("A:G").Select Selection.AutoFilter Else Selection.AutoFilter Range("A:G").Select Selection.AutoFilter End If Selection.AutoFilter Field:=2, Criteria1:="<>0", Operator:=xlAnd Range("A1").Select Range("B2", Range("B2").End(xlDown)).Select Selection.Copy Windows("貼りつけるファイル名").Activate Cells(Rows.Count, 4).End(xlUp).Offset(1).Select ActiveSheet.Paste End Sub です。 フィルターで0以外の値を抽出しコピーまではできていますが、貼りつけるところでエラーがでます。 Microsoft Visual Basic 400 というエラーです。 何が悪いのか分かりません・・・。 分かる方いましたらご教授ください。よろしくお願いします。

  • Excelのイベントマクロ

    Private Sub Worksheet_Activate()に関する質問です。 ワークシート1と2があるとします。 ワークシート1は普通のデータが記されており、それのソートを実行するマクロをMacro1、そのデータから重複したものを外してソートするマクロをMacro2とし、Macro1から呼び出してます。 今、シート2を開いたときは必ず、シート1でMacro1を実行するようにしたいのですが、以下のように記述すると、無限ループになってしまいうまくいきません。 どなたか、方法をお教えください。 Sheet2に記載したイベントマクロ Private Sub Worksheet_Activate() Sheets("Sheet1").Select Macro1 Sheets("Sheet2").Select End Sub 標準モジュールに記載したマクロ Sub Macro1() Dim team As Integer ActiveSheet.Unprotect ("pass") Range("A3:c18").Select Selection.Sort Key1:=Range("c3"), Order1:=xlAscending, Key2:=Range("A3") ,Order2:=xlAscending, Header:=xlNo,OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal team = Range("b1").Value ActiveSheet.PageSetup.PrintArea = "$A$3:$c$" + CStr(team + 2) Macro2 Range("A1").Select ActiveSheet.Protect ("pass") End Sub Sub Macro2() Range("i3:j18").ClearContents Range("i3").Select Selection.Consolidate Sources:="R3C6:R18C7", Function:=xlMax, TopRow:=False,LeftColumn:=True, CreateLinks:=False Range("i3:k18").Select Selection.Sort Key1:=Range("k3"), Order1:=xlAscending, Header:=xlNo,OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal Range("j3:j18").Select Selection.NumberFormatLocal = "0_);[赤](0)" End Sub

  • セル変更2回目以降マクロが走らない

    office2010 セル値変更でマクロ実行の件で質問です。 macroというシートのA11セルがプルダウンリストになっていて、その値を変更したらマクロ実行という構成を作成しました。 下記はmacroというシートに記載したマクロ Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$11" Then Exit Sub Calculate Macro4 End Sub 下記は標準モジュールに記載したマクロ Sub Macro4() ' 'macroシートB11に表示されるNo.で抽出 Application.EnableEvents = False Application.Calculation = xlCalculationManual Application.ScreenUpdating = False Sheets("Sheet1").Visible = True Sheets("Sheet2").Visible = True Sheets("Sheet3").Visible = True Sheets("Sheet4").Visible = True Sheets("work").Visible = True Sheets("Sheet3").Select Cells.Select Selection.ClearContents Selection.ClearContents Sheets("Sheet2").Select Cells.Select Selection.ClearContents Selection.ClearContents Sheets("Sheet1").Select Cells.Select Selection.AutoFilter Selection.AutoFilter ActiveSheet.Range("$A:$BA").AutoFilter Field:=3, Criteria1:=Sheets("macro").Range("B11") Sheets("kisyu_work").Select Cells.Select Selection.ClearContents Sheets("Sheet1").Select Columns("F:F").Select Selection.SpecialCells(xlCellTypeVisible).Select Application.CutCopyMode = False Selection.Copy ActiveWindow.ScrollWorkbookTabs Position:=xlLast Sheets("kisyu_work").Select Range("A1").Select ActiveSheet.Paste Application.CutCopyMode = False Sheets.Add ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "kisyu_work!R1C1:R1048576C1", Version:=xlPivotTableVersion14). _ CreatePivotTable TableDestination:="", TableName:= _ "ActiveSheet.Name", DefaultVersion:=xlPivotTableVersion14 Cells(1, 1).Select With ActiveSheet.PivotTables("ActiveSheet.Name").PivotFields("V_KISYU_CD") .Orientation = xlRowField .Position = 1 End With Range("A3:A" & Range("A" & Rows.Count).End(xlUp).Row - 2).Select ' Selection.Copy ActiveWindow.ScrollWorkbookTabs Position:=xlLast Sheets("kisyu_work").Select Range("B1").Select ActiveSheet.Paste ' Range("C1:C" & Range("B" & Rows.Count).End(xlUp).Row).Value = "=INDEX(M_KISYU!C[5],MATCH(RC[-1],M_KISYU!C,0))" Sheets("macro").Select End Sub A11セルの値を変更するとMacro4は実行されます。 しかしながら、2回以上続けてA11の値を変更するとMacro4が動作しません。 なぜなのでしょうか? なお、プルダウンリストの構成をやめると、連続してA11セル値変更しても動作します。

  • マクロBVAに関する質問です

    Sub Macro1() ' ' Macro1 Macro ' ' Range("テーブル1[番号]").Select ActiveSheet.Range("テーブル1[#すべて]").RemoveDuplicates Columns:=1, Header:=xlYes End Sub といった、マクロを作ったのですがActiveSheet.Range("テーブル1[#すべて]").RemoveDuplicates Columns:=1, Header:=xlYesのところでデバックになってしまいます。 なぜデバックとなるのか? また解決策を教えて下さい。宜しくお願い致します。(マクロ超初心者)

  • 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

  • オートフィルタを使わずに行削除

    こんにちは。 簡易記録のマクロで実行したものが、以下となります。 オートフィルタで選択した0以下の行を削除するために選択した物になります。 Sub 0以下を削除() ' Macro test ' ActiveSheet.Range("$A$1:$G$165").AutoFilter Field:=7, Criteria1:="<=0", _ Operator:=xlAnd Rows("3:56").Select ActiveWindow.SmallScroll Down:=66 Rows("3:165").Select Selection.Delete Shift:=xlUp ActiveSheet.Range("$A$1:$G$123").AutoFilter Field:=7 End Sub 行数は、日によって、様々で何千行となる場合もあります。 そこで、オートフィルタを使用せず、G列目の0以下の数値を行削除を行いたいです。 どのように設定したらいいか教えて頂けると幸いです。 不備がありましたら、補足を入れますので、 お手数ではございますが、宜しくお願い致します。

  • マクロで選択した図形の選択状態を解除するには

    Excel97,Windows98SEを使用しています。 シート上に作成したコントロールツールのコマンドボタンをクリックすると、 シート上の全ての図形を選択して、順序を最背面にするというマクロを作成したのですが、 選択した図形のハンドルが消えません。 図形選択を解除して、B26セルを選択したいのですが、どうしたらよいでしょうか? Private Sub CButton_gyou_Click() ActiveSheet.DrawingObjects.Select Selection.ShapeRange.ZOrder msoSendToBack Range("B26").Select End Sub ご存知の方、どうぞよろしくお願いいたします。

専門家に質問してみよう