create a new page, using OOobbs3/16 as a template.
Front page
Search
掲示板
Reload
Help
Browse Log
掲示板の使い方
OOo 掲示板3
OOo 掲示板2
OOo 掲示板
掲示板
雑談掲示板
New
List of pages
Recent changes
Backup
簡単ヘルプ
整形ルール
Start:
** [[OOobbs3/16]] [#h03c9f16]
-''サマリ'': 表のセルが選択されているかどうか?
-''環境'': Writer
-''状態'': 解決
-''投稿者'': [[robbieprise]]
-''投稿日'': 2010-08-16 (月) 17:15:55
*** 質問 [#pf32c1e6]
今日も感謝でついてる♪
表の選択範囲の行列を知るすべが無いということで困っていま...
仕方が無いので、すべてのセルを調べて、そのセルが選択され...
そのセルが選択されているかどうかを確認する方法は有ります...
*** 回答 [#v636e832]
- 前の投稿のときになにを書いたか忘れましたが、セルが分割...
Sub GetSelectedDataFromTable
oDoc = ThisComponent
oController = oDoc.getCurrentController()
oViewCursor = oController.getViewCursor()
oSelection = oDoc.getCurrentSelection()
Dim vData() As Variant
If oSelection.supportsService("com.sun.star.text.TextTa...
sRangeName = oSelection.getRangeName()
oTable = oViewCursor.TextTable
If InStr(sRangeName, ":") = 0 Then
oSelectedRange = oTable.getCellByName(sRangeName)
ReDim vData(0, 0)
If oSelectedRange.getType() = com.sun.star.table.Ce...
vData(0, 0) = ""
ElseIf oSelectedRange.getType() = com.sun.star.tabl...
vData(0, 0) = oSelectedRange.getString()
ElseIf oSelectedRange.getType() = com.sun.star.tabl...
vData(0, 0) = oSelectedRange.getValue()
ElseIf oSelectedRange.getType() = com.sun.star.tabl...
vData(0, 0) = oSelectedRange.getFormula() '?
End If
Else
oSelectedRange = oTable.getCellRangeByName(sRangeNa...
vData = oSelectedRange.getDataArray()
End If
End If
End Sub
選択セルが一つのときに何を取得するか…。
前のページの例示した表を選択して試してみました。D1 も選択...
-- はにゃ? &new{2010-08-16 (月) 18:34:27};
- 回答感謝します。選択された部分セルの内容を取得したいの...
- 選択された範囲オブジェクトから getCellRangeByName メソ...
Function GetCellRangeAddress(sAddr As String) As com.sun...
aAddr = CreateUnoStruct("com.sun.star.table.CellRangeAd...
If InStr(sAddr, ":") = 0 Then
Else
sParts = Split(sAddr, ":")
If UBound(sParts) <= 1 Then
aRange1 = CellNameToAddr(sParts(0))
aRange2 = CellNameToAddr(sParts(1))
aAddr.StartColumn = aRange1.Column
aAddr.EndColumn = aRange2.Column
aAddr.StartRow = aRange1.Row
aAddr.EndRow = aRange2.Row
End If
End If
GetCellRangeAddress = aAddr
End Function
Function CellNameToAddr(sCellAddr As String) As com.sun....
aAddr = CreateUnoStruct("com.sun.star.table.CellAddress")
nRow = 0
nColumn = 0
n = 0
For i = 0 To Len(sCellAddr) - 1 step 1
n = Asc(Mid(sCellAddr, i + 1, 1))
If &H41 <= n AND n <= &H5A Then
nColumn = nColumn * 24 + (n - &H41)
ElseIf &H30 <= n AND n <= &H39 Then
nRow = nRow * 10 + (n - &H30)
End If
Next
aAddr.Column = nColumn
aAddr.Row = nRow -1
CellNameToAddr = aAddr
End Function
選択範囲のセル範囲アドレスを GetCellRangeAddress で変換、...
表にある全てのセルを一つずつチェックするにはテーブルカー...
Sub CheckAllCells()
oDoc = ThisComponent
oController = oDoc.getCurrentController()
oViewCursor = oController.getViewCursor()
oSelection = oDoc.getCurrentSelection()
If oSelection.supportsService("com.sun.star.text.TextTa...
oDoc.lockControllers()
oTable = oViewCursor.TextTable
sRangeName = oSelection.getRangeName()
aAddr = GetCellRangeAddress(sRangeName)
oCursor = oTable.createCursorByCellName("A1")
bInCol = True
sCellName = ""
While bInCol
sCellName = oCursor.RangeName
aCellAddr = CellNameToAddr(sCellName)
If aAddr.StartColumn <= aCellAddr.Column AND aCel...
aAddr.StartRow <= aCellAddr.Row AND aCellAddr....
oCursor.BackColor = RGB(255, 0, 0)
Else
oCursor.BackColor = -1
End If
bInCol = oCursor.goRight(1, False)
WEnd
oDoc.unlockControllers()
End If
End Sub
-- はにゃ? &new{2010-08-20 (金) 13:45:48};
- 回答感謝します。 -- ハリ・セルダン &new{2010-08-23 (月)...
#comment
*** 感想,コメント,メモ [#fba9baaf]
#comment
End:
** [[OOobbs3/16]] [#h03c9f16]
-''サマリ'': 表のセルが選択されているかどうか?
-''環境'': Writer
-''状態'': 解決
-''投稿者'': [[robbieprise]]
-''投稿日'': 2010-08-16 (月) 17:15:55
*** 質問 [#pf32c1e6]
今日も感謝でついてる♪
表の選択範囲の行列を知るすべが無いということで困っていま...
仕方が無いので、すべてのセルを調べて、そのセルが選択され...
そのセルが選択されているかどうかを確認する方法は有ります...
*** 回答 [#v636e832]
- 前の投稿のときになにを書いたか忘れましたが、セルが分割...
Sub GetSelectedDataFromTable
oDoc = ThisComponent
oController = oDoc.getCurrentController()
oViewCursor = oController.getViewCursor()
oSelection = oDoc.getCurrentSelection()
Dim vData() As Variant
If oSelection.supportsService("com.sun.star.text.TextTa...
sRangeName = oSelection.getRangeName()
oTable = oViewCursor.TextTable
If InStr(sRangeName, ":") = 0 Then
oSelectedRange = oTable.getCellByName(sRangeName)
ReDim vData(0, 0)
If oSelectedRange.getType() = com.sun.star.table.Ce...
vData(0, 0) = ""
ElseIf oSelectedRange.getType() = com.sun.star.tabl...
vData(0, 0) = oSelectedRange.getString()
ElseIf oSelectedRange.getType() = com.sun.star.tabl...
vData(0, 0) = oSelectedRange.getValue()
ElseIf oSelectedRange.getType() = com.sun.star.tabl...
vData(0, 0) = oSelectedRange.getFormula() '?
End If
Else
oSelectedRange = oTable.getCellRangeByName(sRangeNa...
vData = oSelectedRange.getDataArray()
End If
End If
End Sub
選択セルが一つのときに何を取得するか…。
前のページの例示した表を選択して試してみました。D1 も選択...
-- はにゃ? &new{2010-08-16 (月) 18:34:27};
- 回答感謝します。選択された部分セルの内容を取得したいの...
- 選択された範囲オブジェクトから getCellRangeByName メソ...
Function GetCellRangeAddress(sAddr As String) As com.sun...
aAddr = CreateUnoStruct("com.sun.star.table.CellRangeAd...
If InStr(sAddr, ":") = 0 Then
Else
sParts = Split(sAddr, ":")
If UBound(sParts) <= 1 Then
aRange1 = CellNameToAddr(sParts(0))
aRange2 = CellNameToAddr(sParts(1))
aAddr.StartColumn = aRange1.Column
aAddr.EndColumn = aRange2.Column
aAddr.StartRow = aRange1.Row
aAddr.EndRow = aRange2.Row
End If
End If
GetCellRangeAddress = aAddr
End Function
Function CellNameToAddr(sCellAddr As String) As com.sun....
aAddr = CreateUnoStruct("com.sun.star.table.CellAddress")
nRow = 0
nColumn = 0
n = 0
For i = 0 To Len(sCellAddr) - 1 step 1
n = Asc(Mid(sCellAddr, i + 1, 1))
If &H41 <= n AND n <= &H5A Then
nColumn = nColumn * 24 + (n - &H41)
ElseIf &H30 <= n AND n <= &H39 Then
nRow = nRow * 10 + (n - &H30)
End If
Next
aAddr.Column = nColumn
aAddr.Row = nRow -1
CellNameToAddr = aAddr
End Function
選択範囲のセル範囲アドレスを GetCellRangeAddress で変換、...
表にある全てのセルを一つずつチェックするにはテーブルカー...
Sub CheckAllCells()
oDoc = ThisComponent
oController = oDoc.getCurrentController()
oViewCursor = oController.getViewCursor()
oSelection = oDoc.getCurrentSelection()
If oSelection.supportsService("com.sun.star.text.TextTa...
oDoc.lockControllers()
oTable = oViewCursor.TextTable
sRangeName = oSelection.getRangeName()
aAddr = GetCellRangeAddress(sRangeName)
oCursor = oTable.createCursorByCellName("A1")
bInCol = True
sCellName = ""
While bInCol
sCellName = oCursor.RangeName
aCellAddr = CellNameToAddr(sCellName)
If aAddr.StartColumn <= aCellAddr.Column AND aCel...
aAddr.StartRow <= aCellAddr.Row AND aCellAddr....
oCursor.BackColor = RGB(255, 0, 0)
Else
oCursor.BackColor = -1
End If
bInCol = oCursor.goRight(1, False)
WEnd
oDoc.unlockControllers()
End If
End Sub
-- はにゃ? &new{2010-08-20 (金) 13:45:48};
- 回答感謝します。 -- ハリ・セルダン &new{2010-08-23 (月)...
#comment
*** 感想,コメント,メモ [#fba9baaf]
#comment
Page: