27 September 2006

Excel セルタイプの判定、最終行まで一括変換

セルタイプの判定
TypeName らしいです。 isなんちゃらじゃないのね

For i = 2 To 300 ' 縦方向のスキャン j = ActiveSheet.Cells(i, 3) If TypeName(j) = "Double" Then strNew = Format(Int(j / 10000), "###") + "-" + Format(j Mod 10000, "0###") ActiveSheet.Cells(i, 3) = strNew End If Next i

最終行まで、一括変換するVBA

Dim i As Integer Dim j As Integer Dim nLastRow As Integer ' ワークシートの最終行を得る nLastRow = ActiveSheet.Cells.SpecialCells(xlLastCell).Row For i = 1 To nLastRow For j = 2 To 5 '行列の指定 : Cells(Row,Column) If TypeName(ActiveSheet.Cells(i, j).Value) <> "Empty" Then ActiveSheet.Cells(i, j) = ActiveSheet.Cells(i, j) / 100 Next j Next i