- ベストアンサー
エクセルのVBAのことで教えてください
教えてください。 会社でエクセルを使って客先の住所録を作成しています。 オートフィル機能解除と、CtrlキーとHomeキーを同時に押した状態の機能を持たせたボタンをつくりたいと思っています。 Private Sub CommandButton1_Click() ActiveSheet.ShowAllData Range("A3").Select End Sub コードを上記のように書いたのですが、オートフィルタ機能を使って抽出作業がされていない画面に対してこのボタンを押すと、実行時エラーがでて、 WorksheetクラスのShowAllDataメソッドが失敗しました と表示されてしまいます。 オートフィルタ機能を使っていない状態の画面や、左上のセルが選択されている状態でも、このボタンを押した場合、エラーメッセージがでないようにしたいのですが、可能でしょうか?教えてください!
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#01です。質問を読み損なっていました。 全てのフィールドに対して絞り込みを解除するという方法ではどうですか Sub Macro1() Dim idx As Integer If ActiveSheet.AutoFilterMode Then For idx = 1 To ActiveSheet.AutoFilter.Filters.Count ActiveSheet.Cells.AutoFilter field:=idx Next idx End If ActiveSheet.Range("A3").Select End Sub
その他の回答 (2)
同じことですが、エラートラップを利用する手もあります。 Private Sub CommandButton1_Click() On Error GoTo Err_CommandButton1_Click ActiveSheet.ShowAllData Range("A3").Select Exit_CommandButton1_Click: Exit Sub Err_CommandButton1_Click: Resume Exit_CommandButton1_Click End Sub
お礼
アドバイスありがとうございました。 コードをコピペさせていただきましたが、オートフィルタの抽出がされていない場合、左上のセルがアクティブになりませんでした。 でも、とても勉強になりました。ありがとうございました。
- zap35
- ベストアンサー率44% (1383/3079)
オートフィルタモードを確認する方法でどうですか? If Activesheet.AutoFilterMode Then ActiveSheet.ShowAllData Range("A3").Select End If
お礼
ありがとうございました! バッチリ出来ました!