OOobbs3/29
質問
お世話になります。 2つの四角形を線で繋ぐMACROとして下記Codeにて試みましたが、ConnectorShape追加のLineでErrorが生じます。 [ Error ] Error Message : An exception occurred Type: com.sun.star.lang.IllegalArgumentException Message 良く見る「予期せぬエラー」ということだと認識しているのですが、当方の知識ではなぜダメなのか解決出来ませんでした。 つきましては、下記Codeの不具合点をご教示頂けます様お願いします。 ******* Code *********** Sub oDShape Dim oDoc Dim oPage Dim oShape Dim Dummy() oDoc = StarDesktop.loadComponentFromURL("private:factory/sdraw", "_default", 0, Dummy()) oPage = oDoc.getDrawPages().getByIndex(0) for i = 0 to 1 oShape(i) = oDoc.createInstance("com.sun.star.drawing.RectangleShape") ' Position oPoint = CreateUnoStruct("com.sun.star.awt.Point") oPoint = oShape(i).Position oPoint.X = 2000 + i*6000 oPoint.Y = 2000 oShape(i).Position = oPoint ' Size oSize = CreateUnoStruct("com.sun.star.awt.Size") oSize = oShape(i).Size oSize.Height = 1500 ' unit : 1/100mm oSize.Width = 3000 ' unit : 1/100mm oShape(i).Size = oSize oPage.add(oShape(i)) next i ' oConnector = oDoc.createInstance("com.sun.star.drawing.ConnectorShape") oPage.add(oConnector) ' <= Error Line oConnector.StartShape = oShape(0) oConnector.StartGluePointIndex = 0 oConnector.EndShape = oShape(1) oConnector.EdgeKind = com.sun.star.drawing.ConnectorType.STANDARD End Sub *********************************************** 回答
感想,コメント,メモ
new{2010-10-09 (土) 11:32:48};
お騒がせしまして申し訳ありません。 [ 環境1 ] OS : Windows7 Professional 32bit版 OOo : OpenOffice.org 3.3 Beta での現象でした。 ご提示頂きました様に下記環境ではConnectShapeが作成されました。 [ 環境2 ] OS : Windows XP Professional SP3 OOo : OpenOffice.org 3.2.1 但し、上記Codeのままでは1つの□を繋ぐ様になるので、下記Code2の様に修正することで想定するConnecterを作成する事ができました。 また、Error Messageの誤認識までご指導頂きましてありがとうございます。(自分の英語力の無さを改めて痛感しました。) ******* Code2 *********** Sub oDShape Dim oDoc Dim oPage Dim oShape(1) ' <= 配列数を追加 Dim Dummy() oDoc = StarDesktop.loadComponentFromURL("private:factory/sdraw", "_default", 0, Dummy()) oPage = oDoc.getDrawPages().getByIndex(0) for i = 0 to 1 oShape(i) = oDoc.createInstance("com.sun.star.drawing.RectangleShape") ' Position oPoint = CreateUnoStruct("com.sun.star.awt.Point") oPoint = oShape(i).Position oPoint.X = 2000 + i*6000 oPoint.Y = 2000 oShape(i).Position = oPoint ' Size oSize = CreateUnoStruct("com.sun.star.awt.Size") oSize = oShape(i).Size oSize.Height = 1500 ' unit : 1/100mm oSize.Width = 3000 ' unit : 1/100mm oShape(i).Size = oSize oPage.add(oShape(i)) next i ' Dim oConnector oConnector = oDoc.createInstance("com.sun.star.drawing.ConnectorShape") oPage.add(oConnector) oConnector.StartShape = oShape(0) oConnector.StartGluePointIndex = 1 oConnector.EndShape = oShape(1) oConnector.EdgeKind = com.sun.star.drawing.ConnectorType.STANDARD End Sub **************************************************** |