ファイルの先頭にデータを追加する
'ファイルの指定バイト位置に文字列を挿入する Sub InsertData(sFileName As String, sNewData As String, lInsPos As Long) Dim iFileNum As Integer 'ファイル番号 Dim bData() As Byte 'データ格納用 Dim lPos As Long ReDim bData(FileLen(sFileName) - 1) iFileNum = FreeFile Open sFileName For Binary As #iFileNum Get #iFileNum, , bData 'データ読み込み lInsPos = ValidPos(bData, lInsPos) 'SJIS全角文字ぶった切り回避のため Put #iFileNum, 1, CStr(StrConv(LeftB$(bData, lInsPos), vbUnicode)) '既存データを挿入位置前まで lPos = Seek(iFileNum) Debug.Print lPos Put #iFileNum, lPos, sNewData '挿入データ lPos = Seek(iFileNum) Debug.Print lPos Put #iFileNum, lPos, CStr(StrConv(MidB$(bData, lInsPos + 1), vbUnicode)) '残りの既存データをその後ろに付加 Close #iFileNum End Sub Private Function ValidPos(sWK() As Byte, lPos As Long) As String 'SJIS全角文字ぶった切り回避用チェック Dim i As Long, lMax As Long, flgAvoidPos As Boolean lMax = lPos ValidPos = lPos flgAvoidPos = False If UBound(sWK) < lPos Then lMax = UBound(sWK) For i = 1 To lMax If sWK(i) > &H80 And flgAvoidPos = False Then flgAvoidPos = True Else flgAvoidPos = False End If Next i If flgAvoidPos = True Then ValidPos = lMax - 1 Else ValidPos = lMax End If End Function