FileMakerが使える・楽しく・学べるサンプルを紹介

ファイルメーカーで作成したサンプルを無料公開しています。ダウンロードして自由にカスタマイズしてご利用ください。

*

カスタム関数Leftbを使って指定のバイト数だけ文字を取り出す方法

      2015/05/02

FileMakerは、ウェブサイトや楽天やYahoo!ショップなどのネットショップのデータ管理にも向いています。サイトからCSVでダウンロードしたデータをFileMakerで加工してアップロードするといった手順で使われている方も多いと思います。

特にECサイトでは、商品名の長さが決まっている場合が多く、例えば「楽天」では商品名の長さは、「127文字(半角255文字)以内」となっています。

「Length関数」では、文字数はカウント出来ますが、半角全角ともに1文字でカウントされ、半角全角が混ざるとバイト数で区切る計算とは異なるためそのままでは使えません。

計算フィールドに長い計算式を書いても可能なのですが、FMPro.jpに公開されているカスタム関数を使うと簡単に指定のバイト数で区切ることが出来ます。

カスタム関数とは何でしょうか?

カスタム関数とは、FileMakerで用意されている関数以外に自分で新しい関数に追加することが出来ます。今回のように、よく使うものをカスタム関数化しておくと、設定するたびに長い計算式を書く必要がなくなります。

私も今回はじめてカスタム関数を使ってみて、なんとまあ便利なものでしょう!と今まで試さなかったことを後悔しました_| ̄|○

カスタム関数ってどうやって設定するの?

簡単すぎるからなのか設定方法を説明しているサイトが、少なくてアタフタとしてしまいました。
カスタム関数は、ファイル自体に設定します。
「ファイル」メニューから「管理」>「カスタム関数…」
カスタム関数設定1

カスタム関数の管理画面が表示されますので、新しく追加する場合は「新規…」ボタンを押します。インポート機能もありますので、作成したカスタム関数管理用のファイルを1つ作っておくと、いつでも呼び出してインポート出来るので便利です。
カスタム関数設定2

新規作成する場合は、「カスタム関数を編集」画面で内容を書いて最後に「OK」をクリックすると保存されてこのファイル内呼び出して使えるようになります。

関数名:呼び出す関数名を半角アルファベットで記入します。
関数の引数:設定する引数を記入します。日本語OKです。名前を入れて「+」ボタンを押して追加します。
一番のスペース:計算式を記入します。

カスタム関数設定3

では、実際にLeftb関数をカスタム関数に設定していきます。

Leftb関数とLengthb関数をダウンロード

FMPro.jpで公開されているカスタム関数をダウンロードします。
ダウンロードする関数は2つです。

Leftb関数
Lengthb関数

ダウンロードしたファイルをテキストエディタで開いておきます。

カスタム関数Lengthbの設定方法

「ファイル」>「管理」>「カスタム関数…」>「新規…」でカスタム関数を編集画面を表示させます。

関数名:Lengthb
関数の引数:テキスト
一番のスペース:ダウンロードした内容をコピペで貼り付けます。

カスタム関数設定5
カスタム関数設定4

最後に「OK」ボタンを押して完了です。

カスタム関数Leftbの設定方法

再度「新規…」ボタン押してもう1つ追加します。

関数名:Leftb
関数の引数:テキスト、バイト数、カウンターの3つを追加します。
一番のスペース:ダウンロードした内容をコピペで貼り付けます。

カスタム関数設定6

最後に「OK」ボタンを押して完了です。

カスタム関数を呼び出し方

今回作成したデモファイルは、元のタイトルをいくつかのバイト数で文字を区切ってみました。フィールドの形式を設定するときに、右側の窓に作成した「Leftb」関数が表示されています。選択して計算式に挿入し、引数を任意の値に変更します。
カスタム関数設定8

Leftb ( テキスト ; バイト数 ; カウンター )
テキスト:フィールドを指定
バイト数:バイト数を指定
カウンター:必ず「0」を指定

バイト数で文字の長さを指定したデモデータ作成しました

バイト数で文字の長さを制限
フィールド設定

もとのタイトル:テキスト
タイトル_5byte:計算フィールド、計算結果「テキスト」、非保存、計算式「Leftb ( 元のタイトル ; 5 ; 0 )」
タイトル_20byte:計算フィールド、計算結果「テキスト」、非保存、計算式「Leftb ( 元のタイトル ; 20 ; 0 )」
タイトル_40byte:計算フィールド、計算結果「テキスト」、非保存、計算式「Leftb ( 元のタイトル ; 40 ; 0 )」
タイトル_255byte:計算フィールド、計算結果「テキスト」、非保存、計算式「Leftb ( 元のタイトル ; 255 ; 0 )」

長めの文章を入れていみると、指定のバイト数で表示されるようになっています。5バイトの場合は、全角最初の2文字で区切られて表示されています。

カスタム関数用のファイルを作成しておくと便利

今回作成したカスタム関数を、カスタム関数呼び出し専用のファイルを作成しておきました。今後別のファイルで既存のカスタム関数を使いたいときに、インポートして簡単に使用することができます。

下記サイトには、多くのカスタム関数が公開されていますので、一度見て少し記憶しておくと参考になります。
特にFMPro.jpでは、年齢を計算してくれる関数、メールアドレスが妥当性のチェック、電話番号のハイフンの位置の統一など便利なものが公開されています。

FMPro.jp
briandunning.com(英語のみ)

無料サンプルファイルがダウンロード出来ます

 - 役立つ備忘録, 無料で使えるサンプル ,

  • このエントリーをはてなブックマークに追加
  • Pocket
  • 14 follow us in feedly

  関連記事

文字数を数える方法
文字数をリアルタイムに数える方法

ブログやサイトの記事を管理出来る システムを作ってみました。 その際に必要だった …

iPhone・iPadのデバイス判定
接続する端末をOSによって判定するスクリプトのまとめ

FileMakerのファイルを開いたとき、接続する端末によってレイアウトを切り替 …

複数のポータル移動
同じレコード内に複数のポータルがあるときの行移動

同じレイアウト内にポータルを複数貼り付けることがあります。 スクリプトを作成して …

結構良いサンプルが出来ました
リスト形式でアクティブな行にだけボタンやゴミ箱を表示する方法

前回は、ポータル内のアクティブな行にだけ、 ゴミ箱や詳細ボタンを表示する方法を紹 …

関連レコード総数
ポータル内の行数、関連レコード数を簡単に数える方法

ポータルの行数を取得したい場合に使う関数と計算式を紹介します。 「ポータルの行数 …

ソースの色付けイメージ
スクリプトに色付けや全文コピー出来る無料プラグインの紹介

htmlやCSS、プログラムで使うエディタでは、 色がついて見やすくなっています …

パスワード自動生成
Filemaker内でパスワードを生成する方法!桁数や使用する文字も制限可能

ファイルメーカーの中でパスワードを生成する方法を紹介します。 ユーザーを管理シス …

アクティブなポータル行完成イメージ
ポータル内のアクティブ行だけにボタンを表示する方法

ファイルメーカーで、ポータルの選択した行にだけに ボタンを表示する方法を紹介しま …

iphone_barcode
FileMaker Go iPhoneのカメラでバーコードを読み取る2つの方法

FileMaker Goでは iPhoneやiPadのカメラでバーコードを読み取 …