「Web出版サイト」ベータ公開

Q&A集[?]

当サイトでのご質問の受付は終了しました

すべてのコンテンツを読み込み専用としたため、回答欄からも投稿できません

Apache OpenOffice/LibreOfficeのご質問はそれぞれのフォーラムへご投稿ください

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:1
昨日:0
総数:1536
現在:3


特定の文字の色を変更できますか?

ページOpenOffice.org FAQの登録ページ
投稿者みっち
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2010-01-04 10:25:04 (月)
OSVista
依存するページfaq/4/151
バージョン
edit/refer

メッセージ

回答ページでは行末に「~」を付加する必要はありません

過去履歴なども調べましたが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 (火))

はにゃ? さん、ありがとうございます。はにゃ? さんのマクロを使ったサンプルを以下に添付しました。
filefaq5_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

お名前:
題名:


添付ファイル: filefaq5_212_OOoBasic01.ods 965件 [詳細]