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

Q&A½¸[¡©]

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

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

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

¼ÁÌ䥳¡¼¥Ê¡¼

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

ʬÎà¥á¥Ë¥å¡¼

´ØÏ¢¥µ¥¤¥È


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


vMyBUF()() ·¿¤ÎÊÑ¿ô¤òÀßÄꤹ¤ëÊýË¡-setFormulaArray-¤Î´Ø·¸¤«¤é

¥Ú¡¼¥¸OpenOffice.org FAQ¤ÎÅÐÏ¿¥Ú¡¼¥¸
Åê¹Æ¼Ômr_happy
ʬÎà
edit/refer
Í¥Àè½ç°Ì
edit/refer
¾õÂÖ
edit/refer
¥«¥Æ¥´¥ê¡¼
edit/refer
Åê¹ÆÆü2011-05-08 09:59:49 (Æü)
OSWin7
°Í¸¤¹¤ë¥Ú¡¼¥¸faq/6/205, faq/6/211
¥Ð¡¼¥¸¥ç¥ó
edit/refer

¥á¥Ã¥»¡¼¥¸

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

¤ªÀ¤Ïäˤʤê¤Þ¤¹¡£ vMyBUF(10)(4) ·¿¤ÎÇÛÎóÊÑ¿ô¤Ï¤É¤Î¤è¤¦¤ËÀë¸À¤¹¤ì¤Ð»È¤¨¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© ¤¤¤í¤¤¤í¤ä¤Ã¤Æ¤ß¤Æ¤Ï¤¤¤ë¤Î¤Ç¤¹¤¬¤¦¤Þ¤¯¤æ¤­¤Þ¤»¤ó¡£
¤É¤Ê¤¿¤«¶µ¤¨¤Æ¤¯¤À¤µ¤¤¡£

Dim vBuf
vBuf = oRSheet.getCellRangeByName("B1:E10").getFormulaArray

¤³¤ì¤Ï vBuf(x)(y)¡¡¤Î·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ÎÇÛÎóÊÑ¿ô¤È¤Ê¤ê¡¢x,y¤ÎÃͤǤ½¤ì¤¾¤ì¤Î¥»¥ëÃͤȤʤê¤Þ¤¹¡£

¤³¤Î·¿¤ÈƱ¤¸ÇÛÎó¤ò¼¡¤Î¤è¤¦¤ËÀë¸À¤·¤Æ¤â¥¨¥é¡¼¤È¤Ê¤ê¤Þ¤¹¡£

Dim vMyBUF
¡Á
ReDim vMyBUF(10)(4)    ' ¤³¤³¤Ç¥¨¥é¡¼
¤Þ¤¿¤Ï
Dim vMyBUF()()         ' ¤³¤³¤Ç¥¨¥é¡¼

¤È¤Ê¤ê¡¢»ÈÍѤ¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤»¤ó¡£

»È¤¤Êý¤È¤·¤Æ¤ÏÎ㤨¤Ð

vMyBUF(y)(x) = vBuf(y)(x) * 5

¤ÎÍͤËgetFormulaArray¤ägetDataArray¤ÇÆÀ¤¿¥Ç¡¼¥¿¤ò Ê̤ËÀë¸À¤·¤¿ÇÛÎóÊÑ¿ô¤ËÂåÆþ¤·¤Æ
setFormulaArray(vMyBUF) ¤ò»È¤¤°ì³ç¤·¤Æ¥»¥ë¤Ë½ñ¤­¹þ¤ß¤¿¤¤¤ï¤±¤Ç¤¹¡£

º£¤Î¤È¤³¤í¤Ï

vMyBUF = vBuf

¤È¤·¤Æ vMyBUF ¤ÎÃͤò¾Ãµî¤·¤Æ»È¤¦ÊýË¡¤ò¹Í¤¨¤Æ¤¤¤Þ¤¹¤¬¡¢ ¤É¤¦¤âµ¤¤Ë¿©¤ï¤Ê¤¯¤Æ¡¦¡¦¡¦

¾°¡¢½ñ¤­¹þ¤ß¤ËºÝ¤·¡¢½ñ¤­¹þ¤ß¤¿¤¤ºÇ½é¤Î¥¢¥É¥ì¥¹¤ÈvMyBUF ¤Ëºî¤é¤ì¤¿ÇÛÎ󤫤é

Sub f_GetXY(oOneRng, vMyBUF, x1, y1, x2, y2)
   Dim oOneAdr
   
   oOneAdr = oOneRng.getRangeAddress()
   x1 = oOneAdr.StartColumn  
   y1 = oOneAdr.StartRow
   x2 = Ubound(vMyBUF(0)) + x1
   y2 = Ubound(vMyBUF)    + y1  
End Sub

¤È¤·¤Æ¡¢setCellRangeByPosition(x1, y1, x2, y2)¤òÆÀ¤Æ¤¤¤Þ¤¹¡£ ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£


Æó¼¡¸µÇÛÎó¤ÎÌäÂê¤Ç¤¹¤è¤Í

M.Kamataki (2011-05-09 11:39:31 (·î))

°Ê²¼¤ÎOOoBasic¥µ¥¤¥È¤Î¤´¼ÁÌä¤ÈƱ¤¸¤Ç¤·¤ç¤¦¤«¡£

CellRange¤Ë¤Ä¤¤¤Æ¤ÎDataArray, getDataArray, setDataArray¤Î»È¤¤Êý
http://hermione.s41.xrea.com/pukiwiki/pukiwiki.php?OOobbs%2F28

zDR¤ÏɬÍפǤ¹¤«¡£¡¡¤Þ¤¿yDR¤Ø¤ÎÂåÆþ¤òFor¤Ê¤É»È¤¨¤Ê¤¤¤Ç¤·¤ç¤¦¤«

mr_happy (2011-05-14 20:41:53 (ÅÚ))

M.Kamataki¤µ¤ó¡¡¤¤¤Ä¤â¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£
Á᮸«¤Æ¡¢¤¤¤í¤¤¤í¤ä¤Ã¤Æ¤ß¤Þ¤·¤¿¡£
¤½¤ÎÊǤκǸå¤Ë¤¢¤ë¥Þ¥¯¥í¤¬°Ê²¼¤Ç¤¹¡£

Sub MyTest2()
	Dim oSheet As Object
	Dim oRange, yCursor As object
	Dim zDR() as object
	Dim yDR(3)
	oSheet = ThisComponent.CurrentController.ActiveSheet
	For i=0 to 3
		yDR(i) = Array("A" & CStr(i), "B" & CStr(i)) 
	Next i
	zDR() = Array(yDR(0),yDR(1),yDR(2),yDR(3))
	yCursor = oSheet.getCellRangeByPosition(1, 1, 2, 4)
	yCursor.setDataArray(zDR())
End Sub

­¡¤³¤ÎÃæ¤Ç¡¢yDR ¤â zDR ¤âÁ´¤¯Æ±¤¸ÆâÍÆ¤Ç¡¢¤É¤Á¤é¤ò»È¤Ã¤Æ¤â¤¦¤Þ¤¯¤æ¤­¤Þ¤·¤¿¡£~
¤Ê¤é¤Ð¡¢zDR() = Array(yDR(0),yDR(1),yDR(2),yDR(3))¡¡¤ÏÉÔÍפÀ¤È»×¤¤¤Þ¤¹¤¬¤³¤ÎÊդϤɤ¦¤Ê¤Î¤Ç¤·¤ç¤¦¤«¡©
­¢yDR(i) = Array("A" & CStr(i), "B" & CStr(i))¡¡~
¤³¤ÎÎã¤Ç¤ÏyDR¤Î±¦Êդιब£²¤Ä¡Ê£²¹Ôʬ¡Ë¤Ç¤¹¤¬¡¢¤â¤Ã¤È¿¤¯¤Ê¤ë¤È¡Ê¿ô½½¹Ô¡ËÂçÊѤʤ³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤³¤Î¤È¤³¤í¤Î¼ÂºÝ¤Î¥Ç¡¼¥¿¤¬£³¹Ôʬ¤ÎÎã¤Ç~

yDR(i) = Array(Hairetu(i,k), Hairetu(i,k+1), Hairetu(i,k+2))

¤À¤È¤·¤¿»þ¡¢¤³¤Î±¦ÊÕ¤ò¡¡For Next ¤Ê¤É»È¤¤·Ò¤²¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«¡©¡¡Î㤨¤Ð

For i=0 To 3
    For k=0 To 2
        yDR(i) = Array(Hairetu(i,k))
    Next
Next

¤Î¤è¤¦¤ÊÊýË¡¤Ç¡£
¼«Ê¬¤Ç¤Ï¤¤¤í¤¤¤í¹©Éפ·¤Æ¤ß¤¿¤Î¤Ç¤¹¤¬¤¦¤Þ¤¯¤æ¤­¤Þ¤»¤ó¡£
¥¢¥É¥Ð¥¤¥¹¤ò¤ª´ê¤¤¤·¤Þ¤¹¡£

Dim ¤ÇÄêµÁ¤·¤¿Â¿¼¡¸µÇÛÎó¤ÈUNO¤«¤é¤ÎÇÛÎó

¤Ï¤Ë¤ã? (2011-05-15 01:40:47 (Æü))

OOo Basic ¤Ç¤ÏDim a(5,3) ¤Ê¤É¤È¤·¤ÆÄêµÁ¤·¤¿ÇÛÎó¤Ï UNO ¤ÇÍøÍѤµ¤ì¤ë¿¼¡¸µÇÛÎó¤È¤Ï°ã¤¦¤â¤Î¤Ç¤¹¡£¤½¤·¤Æ¡¢getDataArray ¥á¥½¥Ã¥É¤ÎÊÖ¤êÃͤÎÇÛÎó¤ÏÇÛÎóÆâ¤ËÇÛÎ󤬯þ¤Ã¤Æ¤¤¤ë¤À¤±¤Ç¤¹¡£OOo Basic ¤Ç¤Ï¤³¤ÎÇÛÎó¤ÎÄêµÁÊýË¡¤òÄ󶡤·¤Æ¤¤¤Þ¤»¤ó¡£

¼¡¤Î¤è¤¦¤Ê´¶¤¸¤ËForʬ¤òÆþ¤ì»Ò¤Ë¤¹¤ë¤È¤É¤¦¤Ç¤·¤ç¤¦¤«¡£

n = 5
Dim a(3) As Variant
Dim b() As Variant
For i = 0 To 3 step 1
  ReDim b(5)
  For k = 0 To n step 1
    b(k) = i * k
  Next
  a(i) = b
Next

½ÐÍè¤Þ¤·¤¿¡ª

mr_happy (2011-05-15 08:23:21 (Æü))

¤Ï¤Ë¤ã? ¤µ¤ó¡¢½ÐÍè¤Þ¤·¤¿¡£¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£

¤³¤Î·Á¤â¤ä¤Ã¤Æ¤ß¤Æ¤Ï¤¤¤¿¤Î¤Ç¤¹¤¬¡¢¤½¤Î»þ¤Ï¤¦¤Þ¤¯¤æ¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£
Íýͳ¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£
¾åµ­¤ÎÎã¤Ç¸À¤¨¤Ð¡¢a¤Èb¤ÎÊÑ¿ô¤Î·¿¤Ç¡¢Î¾Êý¤È¤âVariant¤Ë¤·¤Æ¤ª¤±¤ÐÂç¾æÉפʤ褦¤Ç¡¢»ä¤Ï¤É¤¦¤ä¤é¤É¤Á¤é¤«¤Þ¤¿¤ÏξÊý¤òObject·¿¤Ë¤·¤Æ¤¤¤¿¤è¤¦¤Ç¤¹¡£

¤³¤³¤Ç´°Î»¤Ë¤·¤Þ¤¹¡ª¡¡¤Þ¤¿²¿¤«¤¢¤Ã¤¿¤é¤ª´ê¤¤¤·¤Þ¤¹¡£

¡Ö»²¾ÈÌäÂê¡×¤È¡¢´°À®¤·¤¿¥Æ¥¹¥ÈÍÑ¥Þ¥¯¥í

mr_happy (2011-05-17 09:39:15 (²Ð))

vWData()()·¿¤ÎÇÛÎóÊÑ¿ô¤¬Àë¸À¤Ç¤­¤º³§¤µ¤ó¤Î¥¢¥É¥Ð¥¤¥¹¤«¤é~
¤È¤ê¤¢¤¨¤º´°À®¤Ë¤·¤Æ¤ª¤¤¤¿¤³¤ÎQA¡¢~
¼Â¤Ï»×¤ï¤Ì¤È¤³¤í¤ËÍî¤È¤··ê¤¬¤¢¤ê¤½¤Î¼è¤êÁȤߤò¤·¤Þ¤·¤¿¡£~
¤½¤ì¤Ï²¼µ­¥Þ¥¯¥íÃæ¤Î vWData(y) = f_DrctIn(vXBuf, xMx) ¤ÎÉôʬ¤Ç~
¤â¤È¤â¤È¤Ï¡¡vWData(y) = vXBuf¡¡¤Ç¤·¤¿¤¬¤³¤ì¤À¤È~
vWData(0), vWData(1), vWData(2)¡¦¡¦¡¦¡¦¤Ï¤¹¤Ù¤ÆÆ±¤¸Ê¸»ú¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£~
¤³¤ì¤Ï³ÑÅĤµ¤ó¤¬»ØÅ¦¤·¤Æ¤¤¤¿»²¾ÈÌäÂê¤À¤È¹Í¤¨¡¢°ìö´Ø¿ô¤ËÆþ¤ì¥¯¥ê¥¢¡¼¤·¤Þ¤·¤¿¡£~
´Ø¿ô¤ËÆþ¤ì¤Ê¤¯¤Æ¤âƱ¤¸¤³¤È¤ò¤ä¤ì¤ÐÂç¾æÉפǤ·¤¿¤¬¡¢´Ø¿ô¤ËÆþ¤ì¤ë¤³¤È¤Ç~
vFcBuf ¤¬¤¤¤Ä¤â¿·Á¯¤À¤È¹Í¤¨¤Æ»È¤¤¤Þ¤·¤¿¡£~
¤³¤Î¾ì¤ò¼Ú¤ê¤Æ»²¹Í¤Ë¤µ¤»¤Æ¤¤¤¿¤À¤¤¤¿¤³¤È¤Ë´¶¼Õ¤·¤Þ¤¹¡£~
¤½¤ÎHP http://blog.livedoor.jp/addinbox/

Sub f_TestMain
   Dim oRSheet, oRRange, oWSheet, oWRange, oWOneDoc
   Dim vRData(), vWData(), vXBuf()
   Dim x, y, x1, y1, x2, y2, yMx, xMx
   
   oWSheet = ThisComponent.getSheets.getByName("Sheet2")
   'oWSheet.getCellRangeByName("A5:G25").clearContents(31)           
   oWOneDoc = oWSheet.getCellRangeByName("C2")
   oRSheet = ThisComponent.getSheets.getByName("Sheet1")
   oRRange = oRSheet.getCellRangeByName("A5:G25")    
   vRData  = Range.getFormulaArray     
                                          
   xMx=UBound(vRData(0))
   yMx=UBound(vRData)
   ReDim vXBuf(xMx)
   ReDim vWData(yMx)
   For y = 0 to yMx                                   
       For x = 0 To xMx
           vXBuf(x) = vRData(y)(x)
       Next
       vWData(y) = f_DrctIn(vXBuf, xMx)
   Next                                                          
   Call f_GetXY(oWOneDoc, vWData, x1, y1, x2, y2) 
   oWRange = oWSheet.getCellRangeByPosition(x1, y1, x2, y2)
   oWRange.setFormulaArray(vWData)  
End Sub
Function f_DrctIn(vXBuf, xMx) As Variant
   Dim vFcBuf
    
   vFcBuf = vXBuf
   ReDim Preserve vFcBuf(0 to xMx)
   f_DrctIn = vFcBuf
End Function
Sub f_GetXY(oOneDoc, vMyBUF, x1, y1, x2, y2)
   Dim oOneAdr
   
   oOneAdr = oOneDoc.getRangeAddress()
   x1 = oOneAdr.StartColumn  
   y1 = oOneAdr.StartRow
   x2 = Ubound(vMyBUF(0)) + x1
   y2 = Ubound(vMyBUF)    + y1  
End Sub

²þ¤á¤Æ¤ß¤Ê¤µ¤ó¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£

¤ªÌ¾Á°:
Âê̾: