【Excel】VBAの雑多なTips
ExcelのVBAでマクロを作る際に、メモしておこうと思ったTipsを以下に列挙。
・列番号を英文字に変換
Chr(65)=”A”なので、列番号に応じてChr(64 + 列番号)にすればいい。
“AA”みたいな英文字に変更するには、
もし列番号が27以上なら、
- 左:Chr(64 + 列番号を26で割った時の数)
- 右:Chr(64 + 列番号を26で割った時の余り)
http://support.microsoft.com/kb/833402/ja
・オートフィルタを設定・解除する方法
Cells(行1,列1)からCells(行2,列2)を範囲として、オートフィルターを設定し、もし既に設定されていたら解除する。
With ActiveSheet.Range(Cells(行1,列1),Cells(行2,列2))
If Not .AutoFilter Then .AutoFilter
End With
http://www.nurs.or.jp/~ppoy/access/excel/xlA015.html
・一番下or右のデータがあるセル
- 行:(SheetsやRange).UsedRange.Rows.Count
- 列:(SheetsやRange).UsedRange.Columns.Count
その他色々は、以下リンク参照
http://www.happy2-island.com/excelsmile/smile03/capter00702.shtml
・Do While ~ Loopのループを一回スキップ(continueみたいな動き)
は、ある一定以上のバージョンなら使えるらしいが、私が使用しているものでは出来なかった。
その為、ifやcase等を使いながら、擬似continueを実現する必要がある。その方が、色々なバージョンで使える汎用的なプログラムになる。
・行全体or列全体を選択
- 行全体:(セル).EntireRow
- 列全体:(セル).EntireColumn
・セルの色を変更
(セル).Interior.ColorIndex = 1
ColorIndexの数値が何の色かは、以下リンク参照
http://www.relief.jp/itnote/archives/000482.php
・幅や高さを自動調整
- 高さ:(セル).AutoFit
- 幅:(セル).AutoFit
・ウィンドウ枠を固定
(セル).FreezePanes = True
・シートのハイパーリンク押下でマクロ実行
http://www.excel-wing.com/study/jitumu/941
・Private Functionを関数として利用
http://d.hatena.ne.jp/tachyon12/20110608/1307512232
・1行削除、複数行削除
関連記事
-
-
【Excel】対象日が今週日付なら0、先週なら-1、来週なら+1を返す式
対象日が今週の日付なら0、先週の日付なら-1、来週の日付なら+1、となるような式を考えてみた。