¡ÖWeb½ÐÈÇ¥µ¥¤¥È¡×¥Ù¡¼¥¿¸ø³«

Q&A½¸[¡©]

Åö¥µ¥¤¥È¤Ç¤Î¤´¼ÁÌä¤Î¼õÉդϽªÎ»¤·¤Þ¤·¤¿

¤¹¤Ù¤Æ¤Î¥³¥ó¥Æ¥ó¥Ä¤òÆÉ¤ß¹þ¤ßÀìÍѤȤ·¤¿¤¿¤á¡¢²óÅúÍ󤫤é¤âÅê¹Æ¤Ç¤­¤Þ¤»¤ó

Apache OpenOffice/LibreOffice¤Î¤´¼ÁÌä¤Ï¤½¤ì¤¾¤ì¤Î¥Õ¥©¡¼¥é¥à¤Ø¤´Åê¹Æ¤¯¤À¤µ¤¤

¼ÁÌ䥳¡¼¥Ê¡¼

¥µ¥¤¥ÈÆâ¸¡º÷

ʬÎà¥á¥Ë¥å¡¼

´ØÏ¢¥µ¥¤¥È


ËÜÆü¡§1
ºòÆü¡§0
Áí¿ô¡§2033
¸½ºß¡§2


¥½¥ë¥Ð¡¼¤Î¥Þ¥¯¥í¤Ç¤Îµ­½ÒÊýË¡

¥Ú¡¼¥¸OpenOffice.org FAQ¤ÎÅÐÏ¿¥Ú¡¼¥¸
Åê¹Æ¼Ôƿ̾
ʬÎà
edit/refer
Í¥Àè½ç°Ì
edit/refer
¾õÂÖ
edit/refer
¥«¥Æ¥´¥ê¡¼
edit/refer
Åê¹ÆÆü2009-09-04 13:24:56 (¶â)
OSWindows XP
°Í¸¤¹¤ë¥Ú¡¼¥¸http://api.openoffice.org/docs/common/ref/com/sun/star/sheet/Solver.html
¥Ð¡¼¥¸¥ç¥ó
edit/refer

¥á¥Ã¥»¡¼¥¸

²óÅú¥Ú¡¼¥¸¤Ç¤Ï¹ÔËö¤Ë¡Ö~¡×¤òÉղ乤ëɬÍפϤ¢¤ê¤Þ¤»¤ó

¥½¥ë¥Ð¡¼¤Î½èÍý¤ò¥Þ¥¯¥í¤Îµ­Ï¿¤Çµ­Ï¿¤Ç¤­¤Ê¤¤¤¿¤á¡¢UNO API¤ò»ÈÍѤ·¤Æ¥Þ¥¯¥í¤òµ­½Ò¤·¤¿¤¤¤Î¤Ç¤¹¤¬¡¢ÀßÄê¤Î»ÅÊý¤¬¤è¤¯¤ï¤«¤ê¤Þ¤»¤ó¡£

­¡¥ª¥×¥·¥ç¥ó¤ÎÀßÄê¤Ï¤É¤Î¤è¤¦¤Ëµ­½Ò¤¹¤ì¤Ð¤è¤¤¤Î¤Ç¤·¤ç¤¦¤«¡© ­¢¡Ö·ë²Ì¤ÎºÇŬ²½¡×¤ÇÃͤλØÄê¤Ï¤É¤Î¤è¤¦¤Ëµ­½Ò¤¹¤ì¤Ð¤è¤¤¤Î¤Ç¤·¤ç¤¦¤«¡©

¤è¤í¤·¤¯¤ª´ê¤¤Ãפ·¤Þ¤¹¡£


¥Ý¥¤¥ó¥È¤È¤¤¤¦¤³¤È¤Ç¤¹¤¬

M.Kamataki (2009-09-04 17:45:19 (¶â))

¤¿¤Ö¤ó¤Þ¤À±Ñ¸ì¤Î¾ðÊó¤·¤«¤Ê¤¤¤È»×¤¤¤Þ¤¹¡£°Ê²¼¤ÎOpenOffice.org Communty Forum¤Î¤ä¤ê¤È¤ê¤Ê¤É¤¬»²¹Í¤Ë¤Ê¤é¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£

[Solved] Solver Macro
http://user.services.openoffice.org/en/forum/viewtopic.php?f=9&t=16980

̵Âê

tani (2009-09-07 09:55:54 (·î))

¢­¤À¤¤¤¿¤¤¤³¤ó¤Ê´¶¤¸¤Ç¤¹¡£

Sub Main

 oSolver = CreateUnoService("com.sun.star.sheet.Solver")
 oSolver.Document = ThisComponent
 
 ' ¥¿¡¼¥²¥Ã¥È¥»¥ë
 oSolver.Objective = ThisComponent.getSheets().getByIndex(0).getCellRangeByName("D5").getCellAddress()

 ' Êѹ¹¤µ¤ì¤ë¥»¥ë
 Dim Arr_1(2) As New com.sun.star.table.CellAddress
 Arr_1(0) = ThisComponent.getSheets().getByIndex(0).getCellRangeByName("C2").getCellAddress()
 Arr_1(1) = ThisComponent.getSheets().getByIndex(0).getCellRangeByName("C3").getCellAddress()
 Arr_1(2) = ThisComponent.getSheets().getByIndex(0).getCellRangeByName("C4").getCellAddress()
 oSolver.Variables = Arr_1
 
 ' ºÇÂçÃÍ
 oSolver.Maximize = True

 ' À©¸Â¾ò·ï D5<=5000, C5=40, C2¡¦C3¡¦C4¤ÏÀ°¿ô
 Dim Arr_2(4) As New com.sun.star.sheet.SolverConstraint
 Arr_2(0).Left = ThisComponent.getSheets().getByIndex(0).getCellRangeByName("D5").getCellAddress()
 Arr_2(0).Operator = com.sun.star.sheet.SolverConstraintOperator.LESS_EQUAL
 Arr_2(0).Right = 5000
 Arr_2(1).Left = ThisComponent.getSheets().getByIndex(0).getCellRangeByName("C5").getCellAddress()
 Arr_2(1).Operator = com.sun.star.sheet.SolverConstraintOperator.EQUAL
 Arr_2(1).Right = 40
 Arr_2(2).Left = ThisComponent.getSheets().getByIndex(0).getCellRangeByName("C2").getCellAddress()
 Arr_2(2).Operator = com.sun.star.sheet.SolverConstraintOperator.INTEGER
 Arr_2(3).Left = ThisComponent.getSheets().getByIndex(0).getCellRangeByName("C3").getCellAddress()
 Arr_2(3).Operator = com.sun.star.sheet.SolverConstraintOperator.INTEGER
 Arr_2(4).Left = ThisComponent.getSheets().getByIndex(0).getCellRangeByName("C4").getCellAddress()
 Arr_2(4).Operator = com.sun.star.sheet.SolverConstraintOperator.INTEGER
 oSolver.Constraints = Arr_2

 ' ¥½¥ë¥Ð¡¼¼Â¹Ô
 oSolver.solve()

 If oSolver.Success = True Then
   Msgbox "¥¿¡¼¥²¥Ã¥ÈÃͤÏ" & oSolver.ResultValue
   Arr_3 = oSolver.Solution 
   MsgBox "ÊÑ¿ôÃͤÏ" & Arr_3(0) & ":" & Arr_3(1) & ":" & Arr_3(2) & "¤Ç¤¹¡£"
 End If

End Sub

̵Âê

tani (2009-09-07 10:00:44 (·î))

³Æ¥×¥í¥Ñ¥Æ¥£¤ä¤é¥á¥½¥Ã¥É¤ä¤é¹½Â¤ÂÎ(¤ÎÇÛÎó)¤ä¤éENUM¤ä¤é¤ÎÀâÌÀ¤Ï°Ê²¼¤Ë¤¢¤ê¤Þ¤¹¡£
http://api.openoffice.org/docs/common/ref/com/sun/star/sheet/XSolver.html

¤Ê¤ª´Êñ¤ÊϢΩÊýÄø¼°¤È¤«À°¿ôÌäÂê¤È¤«¤À¤Ã¤¿¤é¥½¥ë¥Ð¡¼¤Îµ¡Ç½¤ò»ÈÍѤ¹¤ë¤è¤ê¤âÉáÄ̤˷׻»¥×¥í¥°¥é¥à¤ò½ñ¤­²¼¤í¤·¤¿¤Û¤¦¤¬³Ú¤À¤È»×¤¤¤Þ¤¹¡£Î㤨¤Ð¾å¤Î¤è¤¦¤ÊÌäÂê¤À¤ÈÉáÄ̤˽ñ¤¯¤È°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¤È»×¤¤¤Þ¤¹¡£

Sub Main
 For i = 0 To 40   
   For j = 0 To 40 - i 
     k = 40 - i - j
     If i * 200 + j * 300 + k * 100 = 5000 Then
       Msgbox i & ":" & j & ":" & k
       Exit Sub
     End If
   Next j
 Next i
End Sub
¤ªÌ¾Á°:
Âê̾: