TITLE: [42] Re: 固定長での出力 DATE : 2000-12-14 00:54:00 -------------------------------------------------- > buff=Text1.text & Space(10-LenB(StrConv(Text1.text,vbFromUnicode))) > > このコードでエラーが出ます。 > どうすれば、いいのでしょうか? StrConvという関数がサポートされていないようですね。 Help検索してもありませんし。 で、Text1.textの文字数をUNICODEではなくて、S-JISで数える方式を模索 してみました。 標準のLenBは、UNICODEで数えるため、半角も全角もすべて1文字が2byte で帰ってきますよね。なので、この関数はこの場合使えません。 そうなると、自前で数える関数を作ることになるわけですが、Asc関数で 半角か全角かを判断して、カウントしていけば良いでしょう。 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 'S-JISコードで文字列をカウントする関数 Function LenAsc(Str) Dim StrLen Dim Count Dim i Dim Code ’変数初期化 Count = 0 StrLen = Len(Str) '文字数をカウントするループ For i = 1 To StrLen Code= AscW( Mid(Str,i,1) ) 'Asc()関数で良いかと思ったら、全角文字も256以下の '数字が返ってしまうのでだめで、AscW()を使いました 'これで何とかできているみたいです。 If 0<=Code And Code<256 Then Count = Count + 1 Else Count = Count + 2 End If Next '戻り値の設定 LenAsc = Count End Function −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− それで、ROCKさんのコードを書き換えると、 buff=Text1.text & Space(10-LenAsc(Text1.text)) でいかがでしょうか?