Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6180 / 76734 ←次へ | 前へ→

【76156】Re:ExcelのVBAでテキストファイルの編集の書き換えをする方法
発言  kanabun  - 14/10/6(月) 11:40 -

引用なし
パスワード
   流れとしてはこんな感じになるのでは、と思います。

’-----------------------------------------------------------
Option Explicit

'StreamTypeEnum
Const adTypeBinary = 1
Const adTypeText = 2

'LineSeparatorsEnum
Const adCR = 13
Const adCRLF = -1
Const adLF = 10

'StreamWriteEnum
Const adWriteChar = 0
Const adWriteLine = 1

'SaveOptionsEnum
Const adSaveCreateNotExist = 1
Const adSaveCreateOverWrite = 2


Sub Try2()
  Dim f As String
  Dim DeskTop As String
  
  'Desktop\HTML\ の UTF-8形式の*.htmlファイルを読む(改行コード:CrLf)
  DeskTop = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\"
  DeskTop = DeskTop & "html\" '◆テスト用
  
  f = Dir$(DeskTop & "*.html")
  Do While Len(f) > 0
    '処理
    ReplaceUTF8 DeskTop & f  '●UTF8テキストファイル読み込み
    
    '次のファイル
    f = Dir$()
  Loop
  MsgBox DeskTop & " ---- All File Replaced"
End Sub

Private Sub ReplaceUTF8(Filename As String)
  Dim ss As String
  Dim newFilename As String 'テストのため別名で保存
 
  '----ファイルを開いてテキストを読み込む
  With New ADODB.Stream
    .Type = adTypeText     'adTypeText:2
    .Charset = "UTF-8"
    .LineSeparator = adCRLF   '改行コードの指定
    .Open            'StreamObjectのOpen
    .LoadFromFile Filename   'Utf-8ファイルを Stream に読み込む
    .Position = 0        'ポインタを先頭へ(不要か?)
    ss = .ReadText()      'ReadAll As Unicode
    .Close
  End With
  
  '-------テキスト置換作業
  ss = myReplace(ss)    '● simpleさんのRegExp置換処理ルーティンへ
  
  
  '---- 変換後のテキストをUTF-8形式で保存(◆未完成)
  Dim j&
  j = InStrRev(Filename, "\")
  newFilename = "D:\HTML" & Mid$(Filename, j)
  With New ADODB.Stream
    .Type = adTypeText
    .Charset = "UTF-8"
    .LineSeparator = adLF    '改行コードは LFとする
    .Open            'StreamObjectのOpen
    .WriteText ss, adWriteChar
    .SaveToFile newFilename, adSaveCreateOverWrite
    .Close
  End With
End Sub

Private Function myReplace(ss As String) As String
(以下略)

'-----------------------------------------------------------
以上ですが、まだ不具合があります。
(1) UTF-8形式で(改行コードはわざと元とちがう LF にして)別の場所に
  保存しようとしているのですが、LFだけになっていないようです。
  (秀丸エディタで確認)
(2) 保存ファイルの先頭に(もとのUTF-8ファイルにはなかった) BOMがつきます。
  これも不要なので BOMなしで保存したいのですが、まだコード化してありません。
  これについては

ht tp://amano41.hateblo.jp/entry/2014/04/25/145637

あたりを参考に挑戦してみてください。
1 hits

【76135】ExcelのVBAでテキストファイルの編集の書き換えをする方法 みその 14/10/3(金) 21:31 質問
【76136】Re:ExcelのVBAでテキストファイルの編集の... kanabun 14/10/3(金) 22:43 発言
【76137】Re:ExcelのVBAでテキストファイルの編集の... kanabun 14/10/3(金) 23:10 発言
【76138】Re:ExcelのVBAでテキストファイルの編集の... kanabun 14/10/3(金) 23:13 発言
【76139】Re:ExcelのVBAでテキストファイルの編集の... kanabun 14/10/4(土) 0:05 質問
【76140】Re:ExcelのVBAでテキストファイルの編集の... みその 14/10/4(土) 6:31 質問
【76141】Re:ExcelのVBAでテキストファイルの編集の... みその 14/10/4(土) 6:38 質問
【76142】Re:ExcelのVBAでテキストファイルの編集の... kanabun 14/10/4(土) 7:52 発言
【76153】Re:ExcelのVBAでテキストファイルの編集の... みその 14/10/5(日) 18:09 質問
【76154】Re:ExcelのVBAでテキストファイルの編集の... kanabun 14/10/5(日) 20:16 発言
【76156】Re:ExcelのVBAでテキストファイルの編集の... kanabun 14/10/6(月) 11:40 発言
【76157】Re:ExcelのVBAでテキストファイルの編集の... kanabun 14/10/6(月) 11:46 発言
【76158】Re:ExcelのVBAでテキストファイルの編集の... kanabun 14/10/6(月) 11:52 発言
【76159】Re:ExcelのVBAでテキストファイルの編集の... kanabun 14/10/6(月) 11:54 発言
【76174】Re:ExcelのVBAでテキストファイルの編集の... γ 14/10/8(水) 19:50 発言
【76177】Re:ExcelのVBAでテキストファイルの編集の... kanabun 14/10/8(水) 22:40 発言
【76179】Re:ExcelのVBAでテキストファイルの編集の... γ 14/10/9(木) 6:12 発言
【76181】Re:ExcelのVBAでテキストファイルの編集の... γ 14/10/9(木) 6:21 発言
【76182】Re:ExcelのVBAでテキストファイルの編集の... kanabun 14/10/9(木) 9:04 発言
【76183】Re:ExcelのVBAでテキストファイルの編集の... kanabun 14/10/9(木) 11:17 発言
【76185】Re:ExcelのVBAでテキストファイルの編集の... γ 14/10/9(木) 21:40 発言
【76160】Re:ExcelのVBAでテキストファイルの編集の... みその 14/10/6(月) 16:16 お礼
【76162】Re:ExcelのVBAでテキストファイルの編集の... マルチーズ 14/10/6(月) 17:19 発言
【76186】Re:ExcelのVBAでテキストファイルの編集の... kanabun 14/10/10(金) 9:05 発言

6180 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free