Excel VBA Part 2

今回の成果物
今回はdataシートからmemberシートへ転記するマクロです.
データの抽出→再設計はよく使うので,応用例がありそうですね.

メモ:
Const 定数名 As データ型 = 値

静的な定数の宣言

Rangeオブジェクト.Offset(RowOffset, ColumnOffset)

・RowOffset:移動する行数
・ColumnOffset:移動する列数
基準セルから一つだけ,上(左)の場合は-1,下(右)の場合は1を指示することで,基準位置から移動したのちのオブジェクトを指すことができる.

Excel VBA Part 1

雑誌でExcel VBAの特集やってたので,その記録.

Excel VBA = Excel Visual Basic for Applications の略

いわゆるマクロで手が届かないようなとこも記述できる.
(てか,マクロ自体がVBA記述してる

VBAはVBのオフィスバージョン的なもの.
オフィスバージョンなので,「word VBA」,「Access VBA」とかもある.

xlsm : VBA含むブックの拡張子
xlsm : VBA含まないブックの拡張子

準備:

マクロの実行にはExcelの[開発]を利用可能にする
メニューの[ファイル]→[オプション]→[リボンのユーザー設定]→[開発]にチェック

[Alt]+[F11]押してVBE(Visual Basic Editor)が開けばおk

とりあえず,今回は売上の表から必要なデータだけを抽出→別のシートに転記まで!

今回の成果物
sheet 1からsheet 2へ必要なデータだけを移行するマクロです!

メモ:

Rangeオブジェクト.AutoFilter Field:=フィールド番号,Criterial:=条件値

オブジェクトは表内のセルを1つ指示すれば,表内全てのセルが対象になる.
フィールド番号は表における相対的な列番号を入れる.
条件値には条件式でもいけるし,引数Operatorも使えば複数の条件も指示可.

Rangeオブジェクト.CurrentRegion

オブジェクト(表)のアクティブセル領域を取得する.
ただし,非表示になっているセルは対象にならない.

Rangeオブジェクト.PasteSpecial([Paste:=貼り付け種類])
定数 貼り付けの形式
xlPasteAll すべて(既定値)
xlPasteFormulas 数値
xlPasteValues
xlPasteFormats 書式
xlPasteAllExceptBorders 罫線を除くすべて
xlPasteColumnWidth 列幅