• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JIS codeでの文字数・桁数制限)

JISコードでの文字数・桁数制限の困りごと

このQ&Aのポイント
  • Access97を使用しており、JISコードでの文字数・桁数制限について困っています。
  • JISコードでの条件は、20文字で改行し、最大25桁までの入力が可能です。
  • 文字数の取得は行数の改行数を数えることで行っていますが、両方の制限を満たす方法がわかりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。再びmaruru01です。 ちょっと気になったので書きます。 If文のElseの部分は、改行が文末になかった場合に、一番後ろの改行より後ろに残った文を格納するための記述です。 pooh_200xさんのコードだと、この部分の文字数チェックが出来ません。(もちろん、必ず文末に改行があるなら問題はないわけですが。) 従って、とりあえず、各行ごとに配列に格納してしまって、その後であらためてループを回して、文字数を確認していった方がいいような気がします。 蛇足になってしまったらすみません。 では。

pooh_200x
質問者

お礼

・・・その通りでした。(恥; ポイント発行する前に気づいて頂いて助かりました。 >その後、問題も解決し順調に動作しております。 >本当にありがとうございます。

その他の回答 (2)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 一応Windows改行(Chr(13) & Chr(10))として回答します。 まず、1行ずつ配列に格納します。 Dim RowData() As String Dim Str As String Dim p As Long Dim i As Long Str = Me!内容.Text i = 0 Do While Len(Str) <> 0   p = InStr(1, Str, Chr(13))   If p <> 0 Then     ReDim Preserve RowData(i)     RowData(i) = Left(Str, p - 1)     Str = Mid(Str, p + 2)     i = i + 1   Else     ReDim Preserve RowData(i)     RowData(i) = Str     i = i + 1     Exit Do   End If Loop これで、RowData(0)~RowData(i-1)に各行のデータが格納されます。 行数はiです。なお、改行は除いて格納されます。 あとは、ループをまわして、各行について文字数を調べればOKです。 参考になれば幸いです。 では。

pooh_200x
質問者

お礼

できました! ありがとうございます。 Dim RowData() As String Dim Str As String Dim p As Long Dim i As Long Dim strChck As String Dim strMoj As String Str = Me.募集内容 i = 0 Do While Len(Str) <> 0 p = InStr(1, Str, Chr(13)) If p <> 0 Then ReDim Preserve RowData(i) RowData(i) = Left(Str, p - 1) '文字数チェック strMoj = RowData(i) strChck = LenB(StrConv(strMoj, vbFromUnicode)) Me.txtMsg = "" If strChck >= 33 Then i = i + 1 Me.txtMsg = " " & i & "行目の文字数がOverしてます。" Exit Sub End If Str = Mid(Str, p + 2) i = i + 1 Else ReDim Preserve RowData(i) RowData(i) = Str i = i + 1 Exit Do End If Loop

noname#9414
noname#9414
回答No.1

Windowsだと改行がASCIIコード13と10で1文字だからです。 Macの場合は13だけ、UNIXだと10だけになりますね。 #基本的にですが・・・ それ以上のことは文字コードについて調べてください。 ではでは☆

pooh_200x
質問者

お礼

回答ありがとうございます。 質問の仕方が悪くてスミマセン。 1つのテキストボックス内で「横が(ASCII)20文字以内・縦が25行以内」 と言う条件で、文字Over(1行>20文字)の取得方法が知りたいです。 >>よろしくお願い致します。(ヒントだけでも・・・(汗;)

関連するQ&A