初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2022-10-18 09:59:55

cybe
Member

リストの文末のワードだけ文字色を変えたい

win10、FM17

商品というフィールドがあり、1レコードにリストとして下記のように改行されて入っています。
ABC,あいうえお,1,000枚,(2)
ABC,かきくけこ,2,000枚,(1)
ABC,かきくけこ,500枚,(1)

それぞれ文末にある最後の(2)や(1)のみ、文字色を赤に変更したいでのですが
どうすればいいでしょうか。
もしくは()内の数字だけでも色を変更したいです。

すみません、エラーで投稿できなかったのかと思い、同じ投稿をもう一つ上げてしまいました。

Last edited by cybe (2022-10-18 10:04:49)

Offline

#2 2022-10-18 10:47:11

cybe
Member

Re: リストの文末のワードだけ文字色を変えたい

自分で解決できました。

Substitute ( GetValue ( 商品名 ; 1 ) ; "(" & RightWords ( GetValue ( 商品名 ; 1 ) ; 1 ) & ")" ;  TextColor ("(" & RightWords ( GetValue ( 商品名 ; 1 ) ; 1 )& ")" ; RGB ( 255 ; 0 ; 0 ) ) )

Offline

#3 2022-10-18 10:56:19

himadanee
Guest

Re: リストの文末のワードだけ文字色を変えたい

解決してますけど、最初の1行だけ取り出してしまってますけどいいんですかね?

#4 2022-10-18 16:43:17

チポ
Member

Re: リストの文末のワードだけ文字色を変えたい

> 文末にある最後の(2)や(1)のみ、文字色を赤に変更
複数行に対応する再起式

Let ( [ $c = 0 ;
          $k = ¶ ;
          $t = 商品 & $k ;
          $vc = ValueCount ( $t ) ;
          $f = "Case ( $c = $vc ; $t ;
                   Let ( [ $c = $c + 1 ;
                             $p = Position ( $t ; $k ; 1 ; $c ) - 3 ;
                             $r = Middle ( $t ; $p ; 3 ) ;
                             $t = Replace ( $t ; $p ; 3 ; TextColor ( $r ; RGB ( 255 ; 0 ; 0 ) ) ) ] ;
                    Evaluate ( $f ) ) )" ] ;
                    Evaluate ( $f ) )


> $k = ¶
¶を直接使うとうまく行かないです。
なぜかは分かりません。。

Offline

#5 2022-10-18 17:05:17

himadanee
Guest

Re: リストの文末のワードだけ文字色を変えたい

$p = Position ( $t ; $k ; 1 ; $c ) - 3 ;
のところですよね。Evaluateするのでエスケープする必要があります。
$p = Position ( $t ; \¶ ; 1 ; $c ) - 3 ;

#6 2022-10-18 17:37:17

チポ
Member

Re: リストの文末のワードだけ文字色を変えたい

エスケープ分かってるんですが、、

“”¶””
“”\¶””
どれもダメでした、、

Offline

#7 2022-10-18 18:04:58

himadanee
Guest

Re: リストの文末のワードだけ文字色を変えたい

ん?
チポさんの式をフィールド計算式にコピペして、#5のように直して動くのを確認したあとに書きましたけど

ちなみに
          $f = "Case ( $c = $vc ; $t ;
                   Let ( [ $c = $c + 1 ;
と書いてるところは、$fの値は2行になってません。""の中で改行すると、それは半角スペースを入れたのと同じです。

""の中に¶を書くと、それが改行なので、エスケープなしで
"$p = Position ( $t ; ¶ ; 1 ; $c ) - 3 ;"
と書いたものをEvaluateすると
$p = Position ( $t ;
; 1 ; $c ) - 3 ;
という式を計算しようとしてエラーになるわけです。

#8 2022-10-18 18:08:30

himadanee
Guest

Re: リストの文末のワードだけ文字色を変えたい

あ、計算式の設定ダイアログを見直したら、エスケープ文字が円でなくバックスラッシュになってました。
それをここにコピペするとまた¥に戻ります。

Macだと、\でなくバックスラッシュを打たないとだめだったかも?

あれ?私Windowsですが、\を入れても確定した時点でバックスラッシュになってました...いつのまに??

#9 2022-10-19 09:02:19

チポ
Member

Re: リストの文末のワードだけ文字色を変えたい

ああ

> Macだと、\でなくバックスラッシュを打たないとだめだったかも
これで出来ました。
ありがとうございます。


ちなみにこの掲示板で
\(半角の¥)

Macではバックスラッシュで表示されますね

Offline

#10 2022-10-19 09:34:23

himadanee
Guest

Re: リストの文末のワードだけ文字色を変えたい

元々同じ文字コードに違う文字を割り当ててしまったせいなので、どっちに見えるかはフォントによるわけなんですが
Windowsではずっと円に見えてたと思ったんですが...
今でも計算式のダイアログではバックスラッシュだけど「データベースの管理」のフィールド一覧の画面では円に見えますね...私の環境がおかしくなってるのかな?
本題とあんまり関係なくてすんません...

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.010 seconds, 9 queries executed - Memory usage: 516.48 KiB (Peak: 521.02 KiB) ]