特定の文字の色を変更できますか? †
ページ | OpenOffice.org FAQの登録ページ |
---|---|
投稿者 | みっち |
分類 | |
優先順位 | |
状態 | |
カテゴリー | |
投稿日 | 2010-01-04 10:25:04 (月) |
OS | Vista |
依存するページ | faq/4/151 |
バージョン |
メッセージ †
回答ページでは行末に「~」を付加する必要はありません |
過去履歴なども調べましたがCalcを使い始めたばかりなので用語なども解らず、疑問箇所を調べる方法もままならない状態で問題を解決することが出来ませんでしたので宜しくお願いします
A1のセルに「天気」と入力します C1のセルに「今日の天気は晴れです」と入力したとします A1で入力された文字だけを抽出してC1で入力された文字の色を変更できればと思っています C1の列の「天気」の部分の文字だけの色を変更することは可能でしょうか?
マクロでも難しいようです †
M.Kamataki (2010-01-04 11:21:07 (月))
話を簡単にすると、「セルに入力された文字列の一部を検索機能を使って、選択状態にし書式を設定したい」ということですよね。内容の似た質問が、faq/4/151「検索後の文字列に書式を設定するには」です。CalcのGUIだけでは難しいです。
また、マクロでも以下のページを読むと難しそうです。
正規表現でセル内の文字列にアクセスしたい
http://hermione.s41.xrea.com/pukiwiki/index.php?OOobbs2%2F78
Re.マクロでも難しいようです †
みっち (2010-01-04 18:33:10 (月))
M.Kamataki様、回答頂きありがとうございました
マクロはちょっと無理なので、地道に変更をするようにします
重複にします †
M.Kamataki (2010-01-04 21:10:51 (月))
コメントありがとうございます。
faq/4/151にもありますが、Excelでも標準機能では実現できません。Googleの検索結果を見ても、ExcelではVBAで実現するという方法が多いようでした。
マクロだと †
はにゃ? (2010-01-04 22:34:50 (月))
アクティブシートでの選択中の範囲の左端の列のセルの文字列で右隣のセル内を検索して文字色を設定します。
Sub Coloring nRGB = RGB(255, 0, 0) ' 文字色 oDoc = ThisComponent oRange = oDoc.getCurrentSelection() ' 選択範囲をセル範囲のみ処理 If NOT oRange.supportsService("com.sun.star.sheet.SheetCellRange") Then Exit sub aRangeAddr = oRange.getRangeAddress() ' 選択列数 2 以上を確認 If (aRangeAddr.EndColumn - aRangeAddr.StartColumn) <= 0 Then Exit Sub For i = 0 To (aRangeAddr.EndRow - aRangeAddr.StartRow) step 1 sSearchText = oRange.getCellByPosition(0, i).getString() If sSearchText <> "" Then ' セルの内容がテキストのときのみ処理 oCell = oRange.getCellByPosition(1, i) If NOT oCell.getType() = com.sun.star.table.CellContentType.TEXT Then Next sTxt = oCell.getString() n = InStr(sTxt, sSearchText) If n > 0 Then nLen = Len(sSearchText) nCurrent = 0 oCursor = oCell.createTextCursor() oCursor.gotoStart(False) While n > 0 oCursor.goRight(n - nCurrent - 1, False) oCursor.goRight(nLen, True) oCursor.CharColor = nRGB nCurrent = n + nLen -1 n = InStr(nCurrent +1, sTxt, sSearchText) WEnd End If End If Next End Sub
Re.マクロだと †
みっち (2010-01-05 08:30:36 (火))
はにゃ?様、回答頂きありがとうございました
マクロの使い方が解らず、いろいろなサイトを調べやってみたのですが上手く実行する事ができませんでした
せっかく作って頂いたマクロを使う事ができず申し訳有りませんでした。
サンプルです †
M.Kamataki (2010-01-05 10:40:58 (火))
はにゃ? さん、ありがとうございます。はにゃ? さんのマクロを使ったサンプルを以下に添付しました。
faq5_212_OOoBasic01.ods
利用する前にマクロのセキュリティを変更しておく必要があります。[ツール]−[オプション]で[オプション]ダイアログを表示し、[OpenOffice.org]−[セキュリティ]を選択。[マクロセキュリティ]ボタンをクリックして、セキュリティレベルを「中」に変更します。変更済みであれば不要です。
添付した faq5_212_OOoBasic01.ods ファイルを読み込みます。[セキュリティ警告]ダイアログで[マクロの有効化]ボタンをクリックします。A1〜B3セルをマウスでドラッグし、[ツール]−[マクロ]−[Coloring]を選んでください。B1〜B3セルの文字列のうち左隣の文字列の部分だけ、色が変わります。
マクロの学習ですが、PDF形式の無料のガイドブックが以下で公開されています。OpenOffice.org 2.xが対象ですが、今でも役に立ちます。こちらを参考にしてください。
オープンガイドブック OpenOffice.org 2.0
http://ooosupport.good-day.net/ja/documents/manual/#openguidebook-OOo2.0