[[20170816171734]] 『マクロ ボタンクリックで途中まで実行』(たっちょん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロ ボタンクリックで途中まで実行』(たっちょん)

下記にコード全文表示します。
★シートのオートフィルタとその後の処理を別のシートにあるボタンから実行するようにしたいです。
オートフィルタまでは★シートで実行してくれるのですが、その後の処理(B〜Jの列、L〜Rの列を非表示にする)は、ボタンのあるシートで実行されてしまいます。
「 Columns("B:J").Select

    Selection.EntireColumn.Hidden = True
    Columns("L:R").Select
    Selection.EntireColumn.Hidden = True
    Columns("A:A").ColumnWidth = 13.14
    Columns("K:K").ColumnWidth = 21.14
    Columns("S:S").ColumnWidth = 23.29」
この辺りをどうにかしなければいけないと思うので、調べたのですが自分の知識では答えを見つけられませんでした。
よろしくお願い致します。

Private Sub CommandButton1_Click()
' 一時保存準備 Macro
'

'

    Sheets("★").Rows("1:1").AutoFilter
    Range("A1").Select
    ActiveWorkbook.Worksheets("★").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("★").Sort.SortFields.Add Key:=Range("I2:I500") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("★").Sort Columns("B:J").Select
    Selection.EntireColumn.Hidden = True
    Columns("L:R").Select
    Selection.EntireColumn.Hidden = True
    Columns("A:A").ColumnWidth = 13.14
    Columns("K:K").ColumnWidth = 21.14
    Columns("S:S").ColumnWidth = 23.29

        .SetRange Range("A1:V500")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Worksheets("★").Range("$A$1:$V$500").AutoFilter Field:=19, Criteria1:="="
   End Sub

< 使用 Excel:Excel2010、使用 OS:Windows7 >


親オブジェクト(シートとか)を省略すると、現在アクティブなオブジェクトを対象として動作してしまうので、オブジェクトを明示しましょう。 整形した例なぞ。

 Private Sub CommandButton1_Click()
    With Worksheets("★")
        .Sort.SortFields.Clear
        .Sort.SortFields.Add Key:=Range("I2:I500") _
            , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
            xlSortTextAsNumbers
        .Sort.SetRange .Range("A1:V500")
        With .Sort
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With

        .Columns("B:J").EntireColumn.Hidden = True
        .Columns("L:R").EntireColumn.Hidden = True
        .Columns("A:A").ColumnWidth = 13.14
        .Columns("K:K").ColumnWidth = 21.14
        .Columns("S:S").ColumnWidth = 23.29

        .Rows("1:1").AutoFilter Field:=19, Criteria1:="="
    End With
 End Sub
(???) 2017/08/16(水) 17:40

ありがとうございます。
コード流石すっきりしてますね。
★の部分がやたらあるのも気になってましたので
勉強になりました。
(たっちょん) 2017/08/17(木) 09:04

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.