ネットショップを運営していて商品ページのUPをcsvファイルで一括アップロードをしています。
その際、たとえば001~010という品番の商品を登録するのであれば、それぞれの説明文などをHTMLで作成します。
(001.html,002.html~010.htmlという感じで10個のHTMLファイルを作成)
その後一つ一つ開いてエクセルのセルを選択しコピペしていくのですが、この手間をうまく省けないかと思っております。
1つのエクセルファイル上で対象のセルに外部テキストファイルなどを一気に呼び込む方法などはあるのでしょうか?
初めての質問で説明不足、失礼等あれば申し訳ないです。
ご回答のほど宜しくお願い申し上げます。
だいたい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なのかが必要です。
ExcelVBA(マクロ)を使用すれば実現可能です。
ただ、VBAで組むとなるとある程度の知識が必要になるので、
マクロを組んだ経験がないと、少し大変かもしれません。
■VBAによるテキストデータの読み込み
ご回答ありがとうございます。
マクロを使ったことがないのですぐにできそうにありませんが、少しずつ勉強しながらやってみたいと思います。
だいたい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なのかが必要です。
ご回答ありがとうございます。
マクロを使ったことがないのですぐにできそうにありませんが、少しずつ勉強しながらやってみたいと思います。
ご回答ありがとうございます。
マクロを使ったことがないのですぐにできそうにありませんが、少しずつ勉強しながらやってみたいと思います。