Excel VBA関連

http://www.big.or.jp/~seto/vbaref/contents.htm
http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_050_08.html


●オートフィルタVBA
VBA/マクロ便利Tips:Excelのオートフィルターでデータ抽出条件を設定/解除http://www.atmarkit.co.jp/ait/articles/1407/09/news036.html

表の左上がA5の表で、2行目をC2の条件でオートフィルタかける場合
Range("表の左上セル A5").AutoFilter Field:=2, Criteria1:=Range("C2").Value

フィルター解除する場合
Range("A5").AutoFilter

複数の条件を指定する場合のパラメータ Operator1:={Operator}

 {Operator}に指定する定数(一部)
定数 説明
xlAnd {抽出条件1}と{抽出条件2}の論理演算子「AND」
xlBottom10Items 下から数えて○番目({抽出条件1}で指定される項目数)まで表示
xlBottom10Percent 下から数えて○%({抽出条件1}で指定される割合)まで表示
xlFilterCellColor セルの色
xlFilterDynamic 動的フィルター
xlFilterFontColor フォントの色
xlFilterIcon フィルターアイコン
xlFilterValues フィルターの値
xlOr {抽出条件1}または{抽出条件2}の論理演算子「OR」
xlTop10Items 上から数えて○番目({抽出条件1}で指定される項目数)まで表示
xlTop10Percent 上から数えて○%({抽出条件1}で指定される割合)まで表示
参考「XlAutoFilterOperator 列挙型 - MSDN
●ワークシート関連 (http://www.big.or.jp/~seto/vbaref/vbaref6.htm)
 指定番号のワークシートオブジェクトを返す: worksheets(番号) または worksheets("Sheet1")
   引数に array(1,2,3)とすると、複数のシートを指定可能。
   ワークシート番号はVBEを見ればわかる。
 現在のアクティブシートオブジェクトを返す: ActiveSheet

 ワークシート名を返す: .name
 アクティブにする: .activate
 名前を設定する: .name
 ワークシートを選択する。複数可能: .select
 ワークシートを追加する: .add(Before, After, Count, Type)

<ワークシートを1枚追加しシート名の変更などを行う>
Sub シートの追加とプロパティ操作()
Dim NewWS As Worksheet
Set NewWS = Worksheets.Add(After:=Worksheets("Sheet3"))
NewWS.Name = "追加シート"
NewWS.Columns.ColumnWidth = 20
End Sub
●現在のアクティブセルの位置を調べる。
  y = ActiveCell.Row
  x = ActiveCell.Column

●Cells(y, x)でセルの位置を指定する。代入可能。
  Cells(y, x).Interior.ColorIndex = 6 色の変更
  Cells(y, x).Interior.Pattern = xlUp パターンの変更
  Cells(y, x).Interior.PatternColorIndex = xlAutomatic パターン色の変更
この値は、マクロを記録してVBAで見るのが簡単。

カラーコード



●選択しているセルの範囲を返す
Selection.Address

●ファイルを開くダイアログボックス
Application.Dialogs(xlDialogOpen).Show ("ディレクトリパス")
全部のワークシートにページ設定し印刷実行
sub 印刷実行()
dim w as worksheet
for each w in worksheets
if w.name<>"do not print" then
with w.pagesetup
.zoom=false
.centerfooter="&P/&N page"
.fittopageswide=1
end with
end if
next
worksheets.printpreview
end sub

● 金利計算
http://www.geocities.co.jp/HeartLand-Kaede/9186/loan013.html#b
元利均等計算
Excelに用意されている以下の財務ワークシート関数を使用して算出しています。
 返済額・融資金額に関してはボーナス併用をサポートしていますが、ボーナス分は無条件に6ヶ月間隔、初回ボーナス返済までの月数6ヶ月として計算されます。

 @返済額 = PMT(金利, 期間, 融資金額)
  小数点以下は切り捨てます。

 A融資金額 = PV(返済額、金利、返済期間)
  小数点以下は切り捨てます。

 B返済期間 = NPER(融資金額、毎月返済額、金利)
  小数点第3位以下は切り捨てます。

 C金利 = RATE(融資金額、毎月返済額、返済期間)
  小数点第6位以下は切り捨てます。

なお、B、Cは毎月返済額をもとに計算しますので、ボーナス分の金額を入力しても無視します。
ボーナス分の金額で算出したい場合は、概算としてボーナス分融資金額は毎月分融資金額の概ね半分、ボーナス分返済金額は概ねボーナス分返済額の概ね6倍の金額として算出してみてください。