Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


Narita さん

安部です。下記の情報ありがとうございます。

こちら(LibO 3.4.4)でもその振舞いが再現しました。
サンプルとしたマクロを含む .ods を以下に置いています:
http://fixedpoint.jp/libreoffice/20120124.ods
String 型や Variant 型の変数に代入して比べる場合と、文字列リテラルどうしで
比べる場合とで結果が違うようです。

Bugzilla に報告して開発者の方から意見をもらうのがよさそうです。
実際に不具合かどうかは定かではありませんが、少なくとも混乱を招きがちなことは
確かですね。

Basic での文字列の比較には StrComp() を使う、というのが
回避策の1つとして考えられます:
http://help.libreoffice.org/3.3/Basic/StrComp_Function_Runtime/ja

-- Takeshi Abe

On Mon, 23 Jan 2012 00:43:55 +0900, "Mitsuo.Narita" <mitsuo.narita@gmail.com> wrote:
======
scalc.exeで バグの症状がありました。
シート上でc1に「新」、c2に「旧」を入れて、d1セルで=If(c1>c2,0,1)とすると
0が返されます。
新>旧
ところが
次のマクロでは混乱しています。
Sub Main
Dim oCell As Object
Dim sString1 As String, sString2 As String
oCell = ThisComponent.Sheets(0).getCellByPosition(2, 0) 'C1
sString1 = oCell.String
oCell = ThisComponent.Sheets(0).getCellByPosition(2, 1) 'C2
sString2 = oCell.String
If sString1 > sString2 Then
MsgBox "C1=" & sString1 & ", C2=" & sString2 & ", C1>C2"
Else
MsgBox "C1=" & sString1 & ", C2=" & sString2 & ", C1<C2"
End If
'-----------------------------------
If "新">"旧" Then
MsgBox "新>旧"
Else
MsgBox "旧>新"
End If
End Sub

説明
上(----より上)の判定は C1<C2
下の判定は 新>旧
なのです。

http://ja.libreoffice.org/download/
LibO_3.4.5_Win_x86_install_multi.exe 191 MB
LibO_3.4.5_Win_x86_helppack_ja.exe 15 MB (ja - 日本語)
WindowsXP Professional Version 2002 SP3

-- 
Unsubscribe instructions: E-mail to discuss+help@ja.libreoffice.org
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/ja/discuss/
All messages sent to this list will be publicly archived and cannot be deleted

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.