1256199663 複数のテキストファイル(html,txt)を一つのエクセルもしくはCSVのファイルに統合したいと思っています。


ネットショップを運営していて商品ページのUPをcsvファイルで一括アップロードをしています。

その際、たとえば001~010という品番の商品を登録するのであれば、それぞれの説明文などをHTMLで作成します。
(001.html,002.html~010.htmlという感じで10個のHTMLファイルを作成)
その後一つ一つ開いてエクセルのセルを選択しコピペしていくのですが、この手間をうまく省けないかと思っております。

1つのエクセルファイル上で対象のセルに外部テキストファイルなどを一気に呼び込む方法などはあるのでしょうか?


初めての質問で説明不足、失礼等あれば申し訳ないです。
ご回答のほど宜しくお願い申し上げます。

回答の条件
  • 1人2回まで
  • 登録:2009/10/22 17:21:05
  • 終了:2009/10/26 10:33:29

ベストアンサー

id:SALINGER No.2

SALINGER回答回数3430ベストアンサー獲得回数9692009/10/22 18:18:19

ポイント35pt

だいたいVBAでやる方法としては、こんな感じになると思います。

Sub test()
    '実際のテキストデータのあるフォルダに変更
    Const DataPath = "C:\Documents and Settings\hogehoge\デスクトップ\data"
    Dim FSO
    Dim myFile
    Dim TS
    Dim lastRow As Long
    Dim i As Long
    Dim fulPath As String
    
    Set FSO = CreateObject("Scripting.FileSystemObject")

    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    For i = 2 To lastRow
        '最後の拡張子はテキストの場合は.txtに変更
        fulPath = DataPath & "\" & Cells(i, 1).Value & ".html"
        If FSO.FileExists(fulPath) Then
            Set TS = FSO.opentextfile(fulPath)
            Cells(i, 2).Value = TS.readall
            Set TS = Nothing
        End If
    Next i
    
    Set FSO = Nothing

End Sub

ただし、これはHTMLファイルをテキストデータとしてそのまま読み込みますので

HTML内の商品の説明の部分をだけを抜き出す場合は、どのようなHTMLなのかが必要です。

id:lovecoon

ご回答ありがとうございます。

マクロを使ったことがないのですぐにできそうにありませんが、少しずつ勉強しながらやってみたいと思います。

2009/10/23 10:28:13

その他の回答(1件)

id:emu2929 No.1

emu2929回答回数19ベストアンサー獲得回数22009/10/22 17:28:54

ポイント35pt

ExcelVBA(マクロ)を使用すれば実現可能です。

ただ、VBAで組むとなるとある程度の知識が必要になるので、

マクロを組んだ経験がないと、少し大変かもしれません。

■VBAによるテキストデータの読み込み

http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110.html

id:lovecoon

ご回答ありがとうございます。

マクロを使ったことがないのですぐにできそうにありませんが、少しずつ勉強しながらやってみたいと思います。

2009/10/23 10:26:18
id:SALINGER No.2

SALINGER回答回数3430ベストアンサー獲得回数9692009/10/22 18:18:19ここでベストアンサー

ポイント35pt

だいたいVBAでやる方法としては、こんな感じになると思います。

Sub test()
    '実際のテキストデータのあるフォルダに変更
    Const DataPath = "C:\Documents and Settings\hogehoge\デスクトップ\data"
    Dim FSO
    Dim myFile
    Dim TS
    Dim lastRow As Long
    Dim i As Long
    Dim fulPath As String
    
    Set FSO = CreateObject("Scripting.FileSystemObject")

    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    For i = 2 To lastRow
        '最後の拡張子はテキストの場合は.txtに変更
        fulPath = DataPath & "\" & Cells(i, 1).Value & ".html"
        If FSO.FileExists(fulPath) Then
            Set TS = FSO.opentextfile(fulPath)
            Cells(i, 2).Value = TS.readall
            Set TS = Nothing
        End If
    Next i
    
    Set FSO = Nothing

End Sub

ただし、これはHTMLファイルをテキストデータとしてそのまま読み込みますので

HTML内の商品の説明の部分をだけを抜き出す場合は、どのようなHTMLなのかが必要です。

id:lovecoon

ご回答ありがとうございます。

マクロを使ったことがないのですぐにできそうにありませんが、少しずつ勉強しながらやってみたいと思います。

2009/10/23 10:28:13

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません