4 返信 最新の回答 日時: Dec 10, 2015 9:41 PM ユーザー:user13133

    バーコードに必要な文字情報の抜き出し

    user13133

      郵便番号のカスタマーバーコードを生成したいのですが、「バーコードに必要な文字情報の抜き出し」ができません。

      もし、何か解決策などがあれば、ご教授ください。

       

      <環境>

      FileMakerPro12

       

      <やりたいこと>

      A のテキストフィールドから、①②をそれぞれ抜き出したい。

      ①郵便番号

      ②バーコードに必要な文字情報(以下参照)

      http://www.post.japanpost.jp/zipcode/zipmanual/p17.html

       

      A のテキストフィールドには、住所の情報があります。

      しかし、法則性が無く郵便番号から番地以下まで全て入力されているような状態です。

      数字やローマ字も、半角だったり全角だったり、バラバラです。

      改行も自由に入っています。

       

      ①については、郵便番号は住所の最初に体外ついているので、

      GetAsNumber で数字だけ抜き出して、Left で左から7文字までを抜き出す、で対応できました。

       

      しかし、②については、対策が思い浮かびません。

      入力値に法則性があれば、何らかの対応ができそうなのですが…。

      データがこのような状態である以上、やはり、難しいのでしょうか。

      プラグインが販売されていますが、それを購入するしか、方法はないのでしょうか。

       

      ①②が抜き出せたら、無料で、バーコードを生成できるプログラムがあるのですが…。

       

      もし何か、ご存知でしたら、教えていただけますと幸いです。

      宜しくお願いいたします。

        • 1. Re: バーコードに必要な文字情報の抜き出し
          user14047

          Substitute ( RomanHankaku ( 住所フィールド ) ; [ "〒" ; "" ] ;  [ "〠" ; "" ] ; [ "郵便番号" ; "" ] ) のように切り分けるのに邪魔なな文字列を削除して、Left ( 加工した住所 ; 8 ) で郵便番号を、Trim ( Middle ( 加工した住所 ; 9 ; 100 )) で住所を切り分けられるか確認してみてください。

          郵便番号に - が入っている前提です。数千レコードくらいの数であれば、この計算式の値を目視で確認しながら、手動で修正を加えればいいかと思います。今後は意識して新規情報を入力するときにきちんと分けて入力するようにすれば、この仮の計算フィールドもいらなくなるでしょう。

          また、郵便番号バーコードにするためには、109ビルのように、数字で始まる建物名と番地で使われる番号を区別するためにも、建物名が分かれていた方が無難です。(Substitute 関数や、TrimAll 関数でスペースは取り除かない方がいいかと思います。

           

          バーコードに必要な文字情報の抜き出し に従おうとすると

          ・町域名以降の住所のデータから、カスタマバーコードとして必要な文字情報を抜き出す基本方針

          1. データ内にあるアルファベットの小文字は大文字に置き換える。
          2. 「&」 ( アンパサンド ) 、「/」 ( スラッシュ ) 、「・」 ( 中グロ ) 、「.」 ( ピリオド ) は取り除き、後ろのデータを詰める。
          3. 1および2で整理したデータから、算用数字、ハイフン及び連続していないアルファベット1文字を必要な文字情報として抜き出す。(ただし 12F のように階数表示のための F は対象外)
          4. 抜き出された文字の前にある下記の文字等は、ハイフン1文字に置き換える。
            「漢字」、「かな文字」、「カタカナ文字」、「漢数字」、「ブランク」、「2文字以上連続したアルファベット文字」
          5. 4の置き換えで、ハイフンが連続する場合は1つにまとめる。
          6. 最後に、先頭がハイフンの場合は取り除く。

          という手順が必要になりますので、そのあたりは他のプログラムに投げてしまえばいいかと思います。

          • 2. Re: バーコードに必要な文字情報の抜き出し
            user13133

            早速のご返答、ありがとうございます!

             

            ::::::::::::::::::

            バーコードに必要な文字情報の抜き出し に従おうとすると

            ・町域名以降の住所のデータから、カスタマバーコードとして必要な文字情報を抜き出す基本方針

            1. データ内にあるアルファベットの小文字は大文字に置き換える。
            2. 「&」 ( アンパサンド ) 、「/」 ( スラッシュ ) 、「・」 ( 中グロ ) 、「.」 ( ピリオド ) は取り除き、後ろのデータを詰める。
            3. 1および2で整理したデータから、算用数字、ハイフン及び連続していないアルファベット1文字を必要な文字情報として抜き出す。(ただし 12F のように階数表示のための F は対象外)
            4. 抜き出された文字の前にある下記の文字等は、ハイフン1文字に置き換える。
              「漢字」、「かな文字」、「カタカナ文字」、「漢数字」、「ブランク」、「2文字以上連続したアルファベット文字」
            5. 4の置き換えで、ハイフンが連続する場合は1つにまとめる。
            6. 最後に、先頭がハイフンの場合は取り除く。

            という手順が必要になりますので、そのあたりは他のプログラムに投げてしまえばいいかと思います

            :::::::::::::::::

            とのことですが、まさにこの部分をファイルメーカーでできないか、と考えておりました。

            それはやはり、難しいのでしょうか…。

            ファイルメーカー以外の、プログラムを、全く知らないようなものなので…。

            • 3. Re: バーコードに必要な文字情報の抜き出し
              user14047
              ①②が抜き出せたら、無料で、バーコードを生成できるプログラムがあるのですが…。

              と書いていたので、手元にそう言ったプログラムがあるものとばかり思っていました。

               

              郵便番号、住所(番地まで)、建物名がきちんと別れているのが条件ですが、10年以上前に作った郵便番号バーコド生成カスタム関数を貼っておきます。(随分昔に作ったのものなので無駄が多いような...)

               

              /*==============================================================
              
              カスタム関数 ZipBarCode ( 郵便番号 ; 住所 ; 建物名 )
              
              CopyRight©2004,SHAMOTO Syuji
              <http://www.FMPro.jp>
              
              郵便番号と住所を指定することで、郵便事業株式会社(日本郵便)の指定する仕様にそった
              郵便カスタマーバーコードを生成します。
              
              カスタマバーコードの仕様については下記を参照してください。
              郵便番号制マニュアル
              http://www.post.japanpost.jp/zipcode/zipmanual/index.html
              
              バーコードフォントは
              PB Barcode for Macintosh
              郵便カスタマーバーコード専用のTrueTypeフォント
              http://www.vector.co.jp/soft/mac/personal/se068839.html
              を利用する前提で制御コードを算出します。
              
              このカスタム関数を引用するに当たっては、必ずコメントも一緒に引用してください。
              
              
              =============================================================*/
              
              Let (
              
              
                [ // === Let_Start ==================================
              
                // ----------------------------------------------------------------------
                // 郵便番号から-をぬいたもの
                // ----------------------------------------------------------------------
              
                ZIP = TextFormatRemove ( Substitute ( RomanHankaku ( 郵便番号 ) ; "-" ; "" ) ) ;
                ADD = TextFormatRemove ( 住所 & "-" & 建物名 ) ;
              
                // ----------------------------------------------------------------------
                // 基本ルール
                // 町域名以降の住所のデータから、カスタマバーコードとして必要な文字情報を抜き出す
                // 1.データ内にあるアルファベットの小文字は大文字に置き換える。
                // 2.「&」 ( アンパサンド ) 、「/」 ( スラッシュ ) 、「・」 ( 中グロ ) 、「.」 ( ピリオド ) は取り除き、後ろのデータを詰める。
                // 3.1および2で整理したデータから、算用数字、ハイフン及び連続していないアルファベット1文字を
                // 必要な文字情報として抜き出す。
                // 4.抜き出された文字の前にある下記の文字等は、ハイフン1文字に置き換える。
                // 「漢字」、「かな文字」、「カタカナ文字」、「漢数字」、「ブランク」、「2文字以上連続したアルファベット文字」
                // 5.4の置き換えで、ハイフンが連続する場合は1つにまとめる。
                // 6.最後に、先頭がハイフンの場合は取り除く。
                // ----------------------------------------------------------------------
              
                // ----------------------------------------------------------------------
                // 基本ルール1〜2
                // ----------------------------------------------------------------------
              
                TEMP01 =
                Substitute (
                Upper ( RomanHankaku ( ADD ) ) ;
                ["&" ; ""] ;
                ["/" ; ""] ;
                ["." ; ""] ;
                ["・" ; ""] ;
                ["0F" ; "0階"] ; // 抜き出しの補足ルール
                ["1F" ; "1階"] ; // ・連続していないアルファベット1文字は抜き出し対象
                ["2F" ; "2階"] ; // になるが、算用数字に続くアルファベット1文字"F"に
                ["3F" ; "3階"] ; // 限っては抜き出し対象としない。
                ["4F" ; "4階"] ;
                ["5F" ; "5階"] ;
                ["6F" ; "6階"] ;
                ["7F" ; "7階"] ;
                ["8F" ; "8階"] ;
                ["9F" ; "9階"]
                ) ;
              
                //
              
                TEMP02 =
                Substitute (
                TEMP01 ;
                ["B" ; "A"] ; ["C" ; "A"] ; ["D" ; "A"] ; ["E" ; "A"] ; ["F" ; "A"] ;
                ["G" ; "A"] ; ["H" ; "A"] ; ["I" ; "A"] ; ["J" ; "A"] ; ["K" ; "A"] ;
                ["L" ; "A"] ; ["M" ; "A"] ; ["N" ; "A"] ; ["O" ; "A"] ; ["P" ; "A"] ;
                ["Q" ; "A"] ; ["R" ; "A"] ; ["S" ; "A"] ; ["T" ; "A"] ; ["U" ; "A"] ;
                ["V" ; "A"] ; ["W" ; "A"] ; ["X" ; "A"] ; ["Y" ; "A"] ; ["Z" ; "A"] ;
                ["1" ; "0"] ; ["2" ; "0"] ; ["3" ; "0"] ; ["4" ; "0"] ; ["5" ; "0"] ;
                ["6" ; "0"] ; ["7" ; "0"] ; ["8" ; "0"] ; ["9" ; "0"] ;
              
                ["AAAAAAAAAAAAAAA" ; "---------------"] ;
                ["AAAAAAAAAAAAAA" ; "--------------"] ;
                ["AAAAAAAAAAAAA" ; "-------------"] ;
                ["AAAAAAAAAAAA" ; "------------"] ;
                ["AAAAAAAAAAA" ; "-----------"] ;
                ["AAAAAAAAAA" ; "----------"] ;
                ["AAAAAAAAA" ; "---------"] ;
                ["AAAAAAAA" ; "--------"] ;
                ["AAAAAAA" ; "-------"] ;
                ["AAAAAA" ; "------"] ;
                ["AAAAA" ; "-----"] ;
                ["AAAA" ; "----"] ;
                ["AAA" ; "---"] ;
                ["AA" ; "--"]
                ) ;
              
                //
              
                TEMP03 =
                Case (
                Middle ( TEMP02 ; 1 ; 1 ) = "0" or
                Middle ( TEMP02 ; 1 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 1 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 2 ; 1 ) = "0" or
                Middle ( TEMP02 ; 2 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 2 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 3 ; 1 ) = "0" or
                Middle ( TEMP02 ; 3 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 3 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 4 ; 1 ) = "0" or
                Middle ( TEMP02 ; 4 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 4 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 5 ; 1 ) = "0" or
                Middle ( TEMP02 ; 5 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 5 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 6 ; 1 ) = "0" or
                Middle ( TEMP02 ; 6 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 6 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 7 ; 1 ) = "0" or
                Middle ( TEMP02 ; 7 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 7 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 8 ; 1 ) = "0" or
                Middle ( TEMP02 ; 8 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 8 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 9 ; 1 ) = "0" or
                Middle ( TEMP02 ; 9 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 9 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 10 ; 1 ) = "0" or
                Middle ( TEMP02 ; 10 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 10 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 11 ; 1 ) = "0" or
                Middle ( TEMP02 ; 11 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 11 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 12 ; 1 ) = "0" or
                Middle ( TEMP02 ; 12 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 12 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 13 ; 1 ) = "0" or
                Middle ( TEMP02 ; 13 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 13 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 14 ; 1 ) = "0" or
                Middle ( TEMP02 ; 14 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 14 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 15 ; 1 ) = "0" or
                Middle ( TEMP02 ; 15 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 15 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 16 ; 1 ) = "0" or
                Middle ( TEMP02 ; 16 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 16 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 17 ; 1 ) = "0" or
                Middle ( TEMP02 ; 17 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 17 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 18 ; 1 ) = "0" or
                Middle ( TEMP02 ; 18 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 18 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 19 ; 1 ) = "0" or
                Middle ( TEMP02 ; 19 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 19 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 20 ; 1 ) = "0" or
                Middle ( TEMP02 ; 20 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 20 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 21 ; 1 ) = "0" or
                Middle ( TEMP02 ; 21 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 21 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 22 ; 1 ) = "0" or
                Middle ( TEMP02 ; 22 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 22 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 23 ; 1 ) = "0" or
                Middle ( TEMP02 ; 23 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 23 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 24 ; 1 ) = "0" or
                Middle ( TEMP02 ; 24 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 24 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 25 ; 1 ) = "0" or
                Middle ( TEMP02 ; 25 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 25 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 26 ; 1 ) = "0" or
                Middle ( TEMP02 ; 26 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 26 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 27 ; 1 ) = "0" or
                Middle ( TEMP02 ; 27 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 27 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 28 ; 1 ) = "0" or
                Middle ( TEMP02 ; 28 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 28 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 29 ; 1 ) = "0" or
                Middle ( TEMP02 ; 29 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 29 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 30 ; 1 ) = "0" or
                Middle ( TEMP02 ; 30 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 30 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 31 ; 1 ) = "0" or
                Middle ( TEMP02 ; 31 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 31 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 32 ; 1 ) = "0" or
                Middle ( TEMP02 ; 32 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 32 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 33 ; 1 ) = "0" or
                Middle ( TEMP02 ; 33 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 33 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 34 ; 1 ) = "0" or
                Middle ( TEMP02 ; 34 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 34 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 35 ; 1 ) = "0" or
                Middle ( TEMP02 ; 35 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 35 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 36 ; 1 ) = "0" or
                Middle ( TEMP02 ; 36 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 36 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 37 ; 1 ) = "0" or
                Middle ( TEMP02 ; 37 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 37 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 38 ; 1 ) = "0" or
                Middle ( TEMP02 ; 38 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 38 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 39 ; 1 ) = "0" or
                Middle ( TEMP02 ; 39 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 39 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 40 ; 1 ) = "0" or
                Middle ( TEMP02 ; 40 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 40 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 41 ; 1 ) = "0" or
                Middle ( TEMP02 ; 41 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 41 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 42 ; 1 ) = "0" or
                Middle ( TEMP02 ; 42 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 42 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 43 ; 1 ) = "0" or
                Middle ( TEMP02 ; 43 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 43 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 44 ; 1 ) = "0" or
                Middle ( TEMP02 ; 44 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 44 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 45 ; 1 ) = "0" or
                Middle ( TEMP02 ; 45 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 45 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 46 ; 1 ) = "0" or
                Middle ( TEMP02 ; 46 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 46 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 47 ; 1 ) = "0" or
                Middle ( TEMP02 ; 47 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 47 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 48 ; 1 ) = "0" or
                Middle ( TEMP02 ; 48 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 48 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 49 ; 1 ) = "0" or
                Middle ( TEMP02 ; 49 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 49 ; 1 ) ; "-"
                ) &
                Case (
                Middle ( TEMP02 ; 50 ; 1 ) = "0" or
                Middle ( TEMP02 ; 50 ; 1 ) = "A" ;
                Middle ( TEMP01 ; 50 ; 1 ) ; "-"
                ) ;
              
                //
              
                TEMP04 =
                Substitute (
                TEMP03 ;
                ["---" ; "-"] ; ["--" ; "-"] ; ["--" ; "-"] ; ["--" ; "-"] ; ["--" ; "-"] ; ["--" ; "-"] ;
                ["-A" ; "A"] ; ["A-" ; "A"] ; ["-B" ; "B"] ; ["B-" ; "B"] ;
                ["-C" ; "C"] ; ["C-" ; "C"] ; ["-D" ; "D"] ; ["D-" ; "D"] ;
                ["-E" ; "E"] ; ["E-" ; "E"] ; ["-F" ; "F"] ; ["F-" ; "F"] ;
                ["-G" ; "G"] ; ["G-" ; "G"] ; ["-H" ; "H"] ; ["H-" ; "H"] ;
                ["-I" ; "I"] ; ["I-" ; "I"] ; ["-J" ; "J"] ; ["J-" ; "J"] ;
                ["-K" ; "K"] ; ["K-" ; "K"] ; ["-L" ; "L"] ; ["L-" ; "L"] ;
                ["-M" ; "M"] ; ["M-" ; "M"] ; ["-N" ; "N"] ; ["N-" ; "N"] ;
                ["-O" ; "O"] ; ["O-" ; "O"] ; ["-P" ; "P"] ; ["P-" ; "P"] ;
                ["-Q" ; "Q"] ; ["Q-" ; "Q"] ; ["-R" ; "R"] ; ["R-" ; "R"] ;
                ["-S" ; "S"] ; ["S-" ; "S"] ; ["-T" ; "T"] ; ["T-" ; "T"] ;
                ["-U" ; "U"] ; ["U-" ; "U"] ; ["-V" ; "V"] ; ["V-" ; "V"] ;
                ["-W" ; "W"] ; ["W-" ; "W"] ; ["-X" ; "X"] ; ["X-" ; "X"] ;
                ["-Y" ; "Y"] ; ["Y-" ; "Y"] ; ["-Z" ; "Z"] ; ["Z-" ; "Z"]
                ) ;
              
                //
              
                TEMP05 =
                Substitute (
                Case (
                Right ( TEMP04 ; 1 ) = "-" and Left ( TEMP04 ; 1 ) = "-" ;
                Middle ( TEMP04 ; 2 ; Length ( TEMP04 ) - 2 ) ;
                Right ( TEMP04 ; 1 ) = "-" ;
                Left ( TEMP04 ; Length ( TEMP04 ) - 1 ) ;
                Left ( TEMP04 ; 1 ) = "-" ;
                Right ( TEMP04 ; Length ( TEMP04 ) - 1 ) ;
                TEMP04
                ) ;
                ["0" ; "00"] ; ["1" ; "01"] ; ["2" ; "02"] ; ["3" ; "03"] ; ["4" ; "04"] ;
                ["5" ; "05"] ; ["6" ; "06"] ; ["7" ; "07"] ; ["8" ; "08"] ; ["9" ; "09"] ;
                ["-" ; "10"] ;
                ["A" ; "1100"] ; ["B" ; "1101"] ; ["C" ; "1102"] ; ["D" ; "1103"] ; ["E" ; "1104"] ;
                ["F" ; "1105"] ; ["G" ; "1106"] ; ["H" ; "1107"] ; ["I" ; "1108"] ; ["J" ; "1109"] ;
                ["K" ; "1200"] ; ["L" ; "1201"] ; ["M" ; "1202"] ; ["N" ; "1203"] ; ["O" ; "1204"] ;
                ["P" ; "1205"] ; ["Q" ; "1206"] ; ["R" ; "1207"] ; ["S" ; "1208"] ; ["T" ; "1209"] ;
                ["U" ; "1300"] ; ["V" ; "1301"] ; ["W" ; "1302"] ; ["X" ; "1303"] ; ["Y" ; "1304"] ;
                ["Z" ; "1305"]
                ) ;
              
                //
              
                TEMP06 =
                Case (
                Length ( TEMP05 ) ≤ 26 ;
                TEMP05 & Left ( "14141414141414141414141414" ; ( 26 - Length ( TEMP05 ) ) ) ;
                Middle ( TEMP05 ; 1 ; 26 )
                ) ;
              
                //
              
                TEMP07 =
                Middle ( ZIP ; 1 ; 1 ) +
                Middle ( ZIP ; 2 ; 1 ) +
                Middle ( ZIP ; 3 ; 1 ) +
                Middle ( ZIP ; 4 ; 1 ) +
                Middle ( ZIP ; 5 ; 1 ) +
                Middle ( ZIP ; 6 ; 1 ) +
                Middle ( ZIP ; 7 ; 1 ) +
                Middle ( TEMP06 ; 1 ; 2 ) +
                Middle ( TEMP06 ; 3 ; 2 ) +
                Middle ( TEMP06 ; 5 ; 2 ) +
                Middle ( TEMP06 ; 7 ; 2 ) +
                Middle ( TEMP06 ; 9 ; 2 ) +
                Middle ( TEMP06 ; 11 ; 2 ) +
                Middle ( TEMP06 ; 13 ; 2 ) +
                Middle ( TEMP06 ; 15 ; 2 ) +
                Middle ( TEMP06 ; 17 ; 2 ) +
                Middle ( TEMP06 ; 19 ; 2 ) +
                Middle ( TEMP06 ; 21 ; 2 ) +
                Middle ( TEMP06 ; 23 ; 2 ) +
                Middle ( TEMP06 ; 25 ; 2 ) ;
              
                //
              
                TEMP08 =
                Choose (
                19 - Mod ( TEMP07 ; 19 ) ;
                "00" ; "01" ; "02" ; "03" ; "04" ; "05" ; "06" ; "07" ; "08" ; "09" ; "10" ;
                "11" ; "12" ; "13" ; "14" ; "15" ; "16" ; "17" ; "18" ; "00"
                ) ;
              
              
              //郵便番号フォントのコードに対応する文字列に置換
              
                ZipBarCode =
                Case (
                ( not IsEmpty ( ZIP ) ) and ( Right ( ZIP ; 2 ) ≠ "00" ) ;
                TrimAll ( " ( "
                &
                Substitute (
                ZIP ;
                ["0" ; "0"] ; ["1" ; "1"] ; ["2" ; "2"] ; ["3" ; "3"] ; ["4" ; "4"] ; ["5" ; "5"] ;
                ["6" ; "6"] ; ["7" ; "7"] ; ["8" ; "8"] ; ["9" ; "9"]
                )
                &
                Substitute (
                Middle ( TEMP06 ; 1 ; 2 ) & " " &
                Middle ( TEMP06 ; 3 ; 2 ) & " " &
                Middle ( TEMP06 ; 5 ; 2 ) & " " &
                Middle ( TEMP06 ; 7 ; 2 ) & " " &
                Middle ( TEMP06 ; 9 ; 2 ) & " " &
                Middle ( TEMP06 ; 11 ; 2 ) & " " &
                Middle ( TEMP06 ; 13 ; 2 ) & " " &
                Middle ( TEMP06 ; 15 ; 2 ) & " " &
                Middle ( TEMP06 ; 17 ; 2 ) & " " &
                Middle ( TEMP06 ; 19 ; 2 ) & " " &
                Middle ( TEMP06 ; 21 ; 2 ) & " " &
                Middle ( TEMP06 ; 23 ; 2 ) & " " &
                Middle ( TEMP06 ; 25 ; 2 ) & " " &
                TEMP08 ;
                ["00" ; "0"] ; ["01" ; "1"] ; ["02" ; "2"] ; ["03" ; "3"] ; ["04" ; "4"] ;
                ["05" ; "5"] ; ["06" ; "6"] ; ["07" ; "7"] ; ["08" ; "8"] ; ["09" ; "9"] ;
                ["10" ; "-"] ;
                ["11" ; "A"] ; ["12" ; "B"] ; ["13" ; "C"] ; ["14" ; "D"] ; ["15" ; "E"] ;
                ["16" ; "F"] ; ["17" ; "G"] ; ["18" ; "H"]
                )
                &
                " ) " ; 1 ; 3 )
                )
                ] ; // === Let_End ==================================
              
              
              //"PB Barcode" Font
              
              
                TextFont ( ZipBarCode ; "PB Barcode" ; 英語 )
              
              
              )
              
              • 4. Re: バーコードに必要な文字情報の抜き出し
                user13133

                早速ありがとうございます…!

                記載が分かりづらく、申し訳ありませんでした。

                 

                試してみます…!

                ありがとうございます。