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