|    | 
     こんにちは。かみちゃん です。 
 
>1."あいうえおかきくけこ" 
>2."あいう111おかきくけこ" 
>3."あいう1えおかきくけこ" 
>と3つの文字列があって 
>文字列1=10バイトまで 
>文字列2=10バイトまでとわけたいのですが・・・。 
>=MIDB("文字列",1,10) 
>=MIDB("文字列",11,10) 
>と関数を入れますと 
> 
>1.は 
>文字列1="あいうえお" 
>文字列2="かきくけこ" 
>2.は 
>文字列1="あいう111 " 
>文字列2="おかきくけ" 
>3.は 
>文字列1="あいう1え " 
>文字列2=" かきくけ " 
>と半角スペース的なものがはいってしまいます。 
>バイトで区切っているので原因はわかりますが、 
>スぺースでもないので、トリムもきかずどうしていいかわかりません 
> 
>このように不正の文字がでてしまった場合どうやって判断し 
>どのような除去を入れればいいのでしょうか? 
 
トリムとは、TRIM関数のことでしょうか? 
また、VBAで処理する方法ですか?ワークシート関数で処理する方法ですか? 
いずれにしても、 
=TRIM(MIDB("文字列",1,10)) 
で10バイト目が、全角文字の1バイト目の場合は、除去されるようです。 
 
VBAの場合ですと、以下のようなコードで除去されると思います。 
イミディエイトウィンドウに結果が表示されますので、確認してみてください。 
 
Sub Sample() 
 Dim ss1 As String 
 Dim ss2 As String 
 Dim ss3 As String 
  
 ss1 = "あいうえおかきくけこ" 
 ss2 = "あいう111おかきくけこ" 
 ss3 = "あいう1えおかきくけこ" 
  
 Debug.Print "   1234567890" 
 Debug.Print "1-1-1[" & MidB(ss1, 1, 10) & "]" 
 Debug.Print "1-2-1[" & MidB(ss1, 11, 10) & "]" 
  
 Debug.Print "2-1-1[" & MidB(ss2, 1, 10) & "]" 
 Debug.Print "2-1-2[" & StrConv(MidB(StrConv(ss2, vbFromUnicode), 1, 10), vbUnicode) & "]" 
 Debug.Print "2-1-3[" & Application.Trim(StrConv(MidB(StrConv(ss2, vbFromUnicode), 1, 10), vbUnicode)) & "]←除去されている" 
 Debug.Print "2-2-1[" & MidB(ss2, 11, 10) & "]" 
  
 Debug.Print "3-1-1[" & MidB(ss3, 1, 10) & "]" 
 Debug.Print "3-2-1[" & MidB(ss3, 11, 10) & "]" 
  
End Sub 
 | 
     
    
   |