はてなブログの記事のエクスポートファイルをExcelシートに書き出すマクロを作成しました。
今回追加したコードは、以下の4行。
SHIFT-JISに変換したテキストファイル(tmpText) を Split関数を使用して、改行コードvbLF(ASCIIコード10)で、区切って、配列化しています。
配列化するのは高速化のためで、配列化せずに1行ずつシートに入力していくと、とんでもなく時間がかかってしまうためです。
全てのデータを一度配列に代入して、それを一度にセルに書き込みます。速いです。
Dim txtArr As Variant
txtArr = Split(tmpText, vbLf)
Range(stCell, stCell.Offset(UBound(txtArr), 0)) = _
WorksheetFunction.Transpose(txtArr)
以下のマクロを実行すると、UTF-8形式のファイル(はてなブログの記事のエクスポートファイル)を指定して、それを新規に追加したExcelシート上に全記事分のデータが貼り付きます。
Sub UTF8形式のテキストファイルのシートへの書き出し()
Dim filePas As String
filePas = ファイルパスを取得
If filePas = "False" Then End
Dim stCell As Range
Set stCell = 出力開始セルを指定
Dim tmpText As String
tmpText = UTF8をSHIFTJIS化(filePas)
Dim txtArr As Variant
txtArr = Split(tmpText, vbLf)
Range(stCell, stCell.Offset(UBound(txtArr), 0)) = _
WorksheetFunction.Transpose(txtArr)
End Sub
Function ファイルパスを取得() As String
ファイルパスを取得 = Application.GetOpenFilename( _
FileFilter:="Text(*.txt),*.txt,CSV,*.csv,全部(*.*),*.*", _
TITLE:="ファイルを選択")
Debug.Print ファイルパスを取得
End Function
Function 出力開始セルを指定() As Range
Worksheets.Add after:=Sheets(Sheets.Count)
Set 出力開始セルを指定 = ActiveSheet.Range("A1")
End Function
Function UTF8をSHIFTJIS化(filePas) As String
Dim ADODBobj As Object
Set ADODBobj = CreateObject("ADODB.Stream")
With ADODBobj
.Charset = "UTF-8"
.Open
.LoadFromFile filePas
End With
UTF8をSHIFTJIS化 = ADODBobj.ReadText
ADODBobj.Close
Set ADODBobj = Nothing
End Function
次の工程は、書き出した記事内容を加工して、見やすい記事一覧にすることです。
もう、Excelシートに取り込んだのですから、いかようにもできると思います。