calc 空白のセルだけの選択 †
ページ | OpenOffice.org FAQの登録ページ |
---|---|
投稿者 | CAN |
分類 | |
優先順位 | |
状態 | |
カテゴリー | |
投稿日 | 2010-05-20 00:33:24 (木) |
OS | XP |
依存するページ | |
バージョン |
メッセージ †
回答ページでは行末に「~」を付加する必要はありません |
タイトルの通りの質問です。
エクセルではctr+Gで空白のセルだけを選択することが できましたが、calcで同様の処理をすることができますでしょうか?
よろしくお願い致します。
過去の関連質問 †
M.Kamataki (2010-05-20 01:00:41 (木))
空白セルを選択し、どのような処理をされたいのか不明ですので、外しているかもしれませんが、faq/4/154「空白セルを検索する」は参考になるでしょうか。
過去のサンプルから応用しました †
ike@九州 (2010-05-21 09:39:55 (金))
Excel ではシート内の表を自動判別して表内の空白セルを選択するようです
(罫線のみセルもサポートされてました)'シート上の表内空白セルを調べる Sub EmptyCellDemo oCtrl = ThisComponent.getCurrentController() oSheet = oCtrl.getActiveSheet() '空白セルを探す表範囲を調べる '数値、文字、数式、日付、書式、罫線、コメント oCursor = oSheet.createCursor() oCursor.gotoStartOfUsedArea(false) aAddress = oCursor.getRangeAddress() nsCol = aAddress.StartColumn nsRow = aAddress.StartRow oCursor.gotoEndOfUsedArea(false) aAddress = oCursor.getRangeAddress() neCol = aAddress.EndColumn neRow = aAddress.EndRow '罫線のみのセルは除外する場合、上9行をコメントして以下を使用 '数値、文字、数式、日付 ' oRanges = oSheet.queryContentCells(23) ' If oRanges.getCount = 0 Then Exit sub ' nsCol = 255 ' nsRow = 65535 ' oEnum = oRanges.createEnumeration ' While oEnum.hasMoreElements() ' oRange = oEnum.nextElement() ' aAddress = oRange.getRangeAddress() ' if nsCol > aAddress.StartColumn then nsCol = aAddress.StartColumn ' if nsRow > aAddress.StartRow then nsRow = aAddress.StartRow ' if neCol < aAddress.EndColumn then neCol = aAddress.EndColumn ' if neRow < aAddress.EndRow then neRow = aAddress.EndRow ' Wend oTarget = oSheet.getCellRangeByPosition(nsCol,nsRow,neCol,neRow) '表範囲内の空白セルの範囲コンテナを取得 oEmptyRanges = oTarget.queryEmptyCells If oEmptyRanges.getCount = 0 Then Exit Sub '空白セルを選択する oCtrl.Frame.getContainerWindow().toFront() oCtrl.Select(oEmptyRanges) '空白セル背景色を灰色にする場合コメント解除 ' oEmptyRanges.CellBackColor = &HCCCCCC '各空白セルへ文字を入れる場合コメント解除 ' oEnum = oEmptyRanges.createEnumeration ' While oEnum.hasMoreElements() ' oRange = oEnum.nextElement() ' If oRange.ImplementationName ="ScCellRangeObj" then ' aAddress = oRange.getRangeAddress() ' neCol = aAddress.EndColumn - aAddress.StartColumn ' neRow = aAddress.EndRow - aAddress.StartRow ' For i = 0 To neRow Step 1 ' For j = 0 To neCol Step 1 ' oRange.getCellByPosition(j,i).String ="―" ' Next ' Next ' Else ' oRange.string ="―" ' End if ' Wend End Sub上記マクロを割り当てて実行すると以下のように選択します