[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『 CSV形式テキストの1レコードのセルへの転記処理』(muku)
お世話になります
下記の件お教えください
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_035.html
Private Sub GP_EDIT_FixLngRec(strREC As String, GYO As Long)
' A列(コード)は5バイトの文字列処理 Cells(GYO, 1).Value = FP_GET_REC_To_String(strREC, 1, 5) ' B列(メーカー)は10バイトの文字列処理 Cells(GYO, 2).Value = FP_GET_REC_To_String(strREC, 6, 10) ' C列(品名)は15バイトの文字列処理 Cells(GYO, 3).Value = FP_GET_REC_To_String(strREC, 16, 15) ' D列(数量)は4バイトの数値処理 Cells(GYO, 4).Value = FP_GET_REC_To_Numeric(strREC, 31, 4) ' E列(単価)は6バイトの数値処理 Cells(GYO, 5).Value = FP_GET_REC_To_Numeric(strREC, 35, 6) ' F列(金額)は8バイトの数値処理 Cells(GYO, 6).Value = FP_GET_REC_To_Numeric(strREC, 41, 8) End Sub
(strREC, 1, 5)
strREC, 6, 10これらの1や6や16は何を表しているのでしょうか
理解できませんのでお教えください
< 使用 Excel:Excel2013、使用 OS:Windows8.1 >
>Private Function FP_GET_REC_To_String(strREC As String, _
> lngStrPos As Long, _
> lngLngs As Long) As String
> Dim strREC2 As String
> strREC2 = Trim(StrConv(MidB(strREC, lngStrPos, lngLngs), vbUnicode))
> FP_GET_REC_To_String = strREC2
>End Function
で、関数を中を見ると、strREC は変換元の文字列。第2引数は何byte目から抜き出すか、
第3引数は何byte抜き出すか、になっていますね。
通常のMid関数だと何文字目から何文字、なので、これをバイト指定するための自作関数でしょうか。
(???) 2014/12/11(木) 11:26
VBAの内部コードはUnicodeなので、1文字は必ず2バイト。半角でも2バイト。これを変換して、
半角は1バイトになるようにしてからバイト指定で切り出して、その後にUnicodeに戻しているのですよ。
(???) 2014/12/11(木) 11:35
(muku) 2014/12/11(木) 12:46
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.