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

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

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

You are not logged in.

Announcement

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


#1 2018-03-06 22:19:45

よしよし
Member

欧文・和文でフォントをかえる

欧文のみ、フォントと、フォントサイズ、文字の高さ(和文フォントと高さが合うように調整したい)を
変更することはできますか?

入力確定後に変更する形でもいいです

Offline

#2 2018-03-07 02:17:42

Hiro
Member

Re: 欧文・和文でフォントをかえる

文字の高さ以外はできないことはないと思いますが、
処理が重すぎてその実用性は甚だ疑問。

一文字づつ取り出して、半角文字判定し、真なら文字書式変換、
この処理を最後の文字まで繰り返します。

・バイト数計算式:Length(検証文字 & Filter(検証文字;RomanZenkaku(KanaZenkaku(検証文字))))
・半角文字判定式:Not(Length(検証文字 & Filter(検証文字;RomanZenkaku(KanaZenkaku(検証文字))))-1)
・書式設定関数 :TextFont(検証文字;フォント名)TextSize(検証文字;フォントサイズ)

Offline

#3 2018-03-07 09:25:43

チポ
Member

Re: 欧文・和文でフォントをかえる

「欧文」
が半角英数とするのなら、
Code ( "z" ) = 122
が最大ですから、これで判定できます。

Offline

#4 2018-03-07 10:15:40

qb_dp
Member

Re: 欧文・和文でフォントをかえる

以下のような式を作っておくとか。
※表計算ソフトを使えば手間なく連番を追加出来ます。

Let(
fn="Courier"
;
Substitute ( フィールド ; 
	[Char(65) ; 	TextFont ( Char (65) ; fn )]
;	[Char(66) ;	TextFont ( Char (66) ; fn )]
;	[Char(67) ;	TextFont ( Char (67) ; fn )]
;	[Char(68) ;	TextFont ( Char (68) ; fn )]
;	[Char(69) ;	TextFont ( Char (69) ; fn )]
;	[Char(70) ;	TextFont ( Char (70) ; fn )]
;	[Char(71) ;	TextFont ( Char (71) ; fn )]
.....
;	[Char(90) ;	TextFont ( Char (90) ; fn )]
;	[Char(97) ;	TextFont ( Char (97) ; fn )]
.....
 )
)

Last edited by qb_dp (2018-03-07 10:21:04)

Offline

#5 2018-03-07 11:53:47

Hiro
Member

Re: 欧文・和文でフォントをかえる

フォント換えだけで、簡略さを優先させるなら、こんな方法も、
・英文フォントをフィールド指定しておけば、
・非英文文字は自動的にデフォルトの和文フォントに切り替わって表示します。

Offline

#6 2018-03-07 13:25:28

チポ
Member

Re: 欧文・和文でフォントをかえる

計算式なら

Let ( [ $t = テキスト ;
          $l = Length ( $t ) ;
          $c = 0 ;
          $tt = "" ;
          $f = "Case ( $c = $l ; $tt ;
                             Let ( [ $c = $c + 1 ;
                                       $m = Middle ( $t ; $c ; 1 ) ;
                                       $tt = Case ( Code ( $m ) ≤ 122 ; $tt & $mの書式設定 ; $tt & $m ) ] ;
                               Evaluate ( $f ) ) )" ] ;
          Evaluate ( $f ) )

文字数の制限がありますが、何文字かは分かりません-_-

文字数が多いのならこの考えをスクリプトで回せばいいでしょうか。

Last edited by チポ (2018-03-07 13:43:37)

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.010 seconds, 11 queries executed - Memory usage: 554.86 KiB (Peak: 565.15 KiB) ]