Microsoft Excel2010自動記録
 ファイル(F)  編集(E)  表示(V)  挿入(I)  書式(O)  ツ−ル(T)  デ−タ(D)  ウィンドウ(W)  ヘルプ(H)  TOP
並び替え(S)
フィルタ(F)           ≫
フォ−ム(O)
集計(B)
入力規制(L)

テ−ブル(T)
区切り位置(E)
統合(N)
グル−プとアウトラインの設定(G)

ピポットテ−ブルレポ−ト(P)

外部デ−タの取り込み(D)  ≫
デ−タの更新(R)


D1.並び替え

○「並び替え」のマクロ例
Sub Macro1()
    Range("B1").Select
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("B1"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("A1:C8")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("E3").Select
End Sub
■デ−タ範囲の1セルをアクティブにして、B列をキ−に昇順に並び替えたケ−ス
PageTop
D2.フィルタ
オ−トフィルタ(F)
すべて表示(S)
フィルタ−オプションの設定(A)


●「並び替え」のマクロ例
●D2-1.オ−トフィルタ(C列に"k"文字がある行を選択)
Sub Macro6()
    Range("C1").Select
    Selection.AutoFilter
    ActiveSheet.Range("$A$1:$C$15").AutoFilter Field:=3, Criteria1:="=*k*", _
        Operator:=xlAnd
End Sub
-----------------------------------------------------
●D2-2.すべて表示(全デ−タを表示(矢印はそのまま)) Sub Macro1() ActiveSheet.ShowAllData End Sub Sub Macro1() ■ 並べ替えとフィルタ | クリアをクリック -----------------------------------------------------
●D2-3.フィルタ−オプションの設定 Sub Macro1() Range("C1").Select Range("A1:C15").AdvancedFilter Action:=xlFilterInPlace, Unique:=False End Sub
PageTop
D3.フォ−ム

●「フォ−ム」のマクロ例
  ★ 自動記録されない
PageTop
D4.集計

●「小計」(Excel2003では集計)のマクロ例
Sub Macro4()
    Range("A6").Select
    Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(6), _
        Replace:=True, PageBreaks:=False, SummaryBelowData:=True
End Sub
■本例は、デ−タベ−スを集計したケ−ス(デ−タセルを選択してから実行)
PageTop
D5.入力規制

●「入力規制」のマクロ例
Sub Macro1()
    Columns("A:A").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="1/1/2009", Formula2:="1/1/2011"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .IMEMode = xlIMEModeNoControl
        .ShowInput = True
        .ShowError = True
    End With
    Range("F11").Select
End Sub
■本例は、A列の日付入力を2009/1/1〜2011/1/1までに規制したケ−ス
PageTop
D6.テ−ブル

●「テ−ブル」のマクロ例
Sub Macro1()
    Range("B14:G19").Select
    Selection.Table RowInput:=Range("A15"), ColumnInput:=Range("A14")
    Range("A1").Select
End Sub
■本例は、デ−タ範囲は("B14:G19")で"B14"に数式入れ、行代入セル("A15")
  で列代入セル("A14")でテ−ブル作成
PageTop

D7.区切り位置/D8.統合

●「区切り位置」のマクロ例
D7.区切り位置
Sub Macro3()
    Range("A1:A3").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True
    Range("A1").Select
End Sub
■本例は、"A1:A3"セルのカンマ付きのテキストデ−タをExcelデ−タに変換
PageTop
●D8「統合」のマクロ例

Sub Macro5()
    Selection.Consolidate Sources:=Array("'C:\tst\[統合.xls]Sheet1'!R2C1:R7C1", _
        "'C:\tst\[統合.xls]Sheet2'!R1C4"), Function:=xlSum, TopRow:=False, _
        LeftColumn:=False, CreateLinks:=False
    Range("B1").Select
End Sub
■本例は、シート1とシート2のセル"A2:A7"のデ−タを統合し、"D1"へ貼り付けたケ−ス
◆Excel2003ではC:\tst\[統合.xls]のファイル名は無く、Sheet1'!R2C1:R7C1のみだった。
PageTop
D9.グル−プとアウトラインの設定


●「アウトラインのグループ化」のマクロ例
Sub Macro1()
    ActiveSheet.PivotTables("ピボットテーブル1").PivotSelect "週間[All]", xlLabelOnly, _
        True
    Selection.Group Start:=True, End:=True, Periods:=Array(False, False, False, _
        False, True, False, False)
    ActiveSheet.PivotTables("ピボットテーブル1").PivotSelect "週間[All]", xlLabelOnly, _
        True
    Range("D3").Select
End Sub
-----------------------------------------------------------
●「アウトラインのグループ解除」のマクロ例 Sub Macro1() Selection.Ungroup ActiveSheet.PivotTables("ピボットテーブル1").PivotSelect "週間[All]", xlLabelOnly, _ True Range("A2").Select End Sub
PageTop
D10.ピポットテ−ブルレポ−ト

○「ピポットテ−ブルレポ−ト」のマクロ例
Sub Macro1a()
    Range("A2").Select
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
         "Sheet1!R1C1:R35C3", Version:=xlPivotTableVersion10).CreatePivotTable _
        TableDestination:="Sheet1!R1C12", TableName:="ピボットテーブル1", _
        DefaultVersion:=xlPivotTableVersion10
    Sheets("Sheet1").Select
    Cells(1, 12).Select
    With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("日付")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("製品名")
        .Orientation = xlColumnField
        .Position = 1
    End With
    ActiveSheet.PivotTables("ピボットテーブル1").AddDataField ActiveSheet.PivotTables( _
        "ピボットテーブル1").PivotFields("数量"), "合計 / 数量", xlSum
End Sub

■ TableDestination:=ActiveSheet.Name & "!R3C1", ・・・・ ■ Sheets(ActiveSheet.Name).Select ■ シート名「Sheet1」が記録されているが、上記のように追加されたシート名を ■ を読み取るマクロに変更しないとエラーになります。
PageTop
D11.外部デ−タの取り込み
保存したクエリの実行(D)
新しいWebクエリ(W)
新しいデ−タベ−スクエリ(N)
テキストファイルのインポ−ト(T)
クエリの編集(E)
デ−タ範囲プロパティ(A)
パラメ−タ(M)


●「新しいWebクエリ」のマクロ例
Sub Macro1()
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://table.yahoo.co.jp/t?c=2011&a=11&b=11&f=2012&d=2&e=12&g=d&s=5401.t&y=0&z=5401.t&x=sb" _
        , Destination:=Range("$A$1"))
        .Name = "t?c=2011&a=11&b=11&f=2012&d=2&e=12&g=d&s=5401.t&y=0&z=5401.t&x=sb"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "10"
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
    Range("K10").Select
End Sub
■ 本例はYahooファイナンスから、4501(新日鉄)の時系列株価を取得例です。
PageTop
D12.デ−タの更新

●「デ−タの更新」のマクロ例
Sub Macro1()
      ActiveWorkbook.RefreshAll
End Sub
PageTop