Libre:069 セルデータの数値のみコピーする

これは、数値かどうかを判定するところ新しく、

それ以外は今までのコードを組み合わせて実現できそうです。

 

sub ksIsNumeric

dim sheet as object
dim cell as object

Sheet =ThisComponent.sheets (0)
cell = Sheet.getCellByPosition(0,0)

if (isNumeric(cell.value)) then
msgbox “YES”
end if

end sub

 

上のコードは何時でもYESを返します。

msgboxを以下のように変更してみると

理由は簡単です。

msgbox “YES” & cell.value &” :” & cell.string

 

YES0:a ・・・・(0,0)にaを代入してある場合

 

というわけで、何時でもYESであるらしい。

こういうところが面倒くさいと思うんだけど、

Cell.Typeを使用すれば、解決できそうです。

 

sub ksIsNumeric

dim sheet as object
dim cell as object

Sheet =ThisComponent.sheets (0)
cell = Sheet.getCellByPosition(0,0)

Select Case cell.Type
Case com.sun.star.table.CellContentType.EMPTY
MsgBox “Content: Empty”
Case com.sun.star.table.CellContentType.VALUE
MsgBox “Content: Value”
Case com.sun.star.table.CellContentType.TEXT
MsgBox “Content: Text”
Case com.sun.star.table.CellContentType.FORMULA
MsgBox “Content: Formula”
End Select

end sub