こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBAでブックのデータをテキストファイルに

エクセル「Excel2003」ブックのデータを仕分けしてテキストファイルを作成する。

住所録(全国一覧表:シート1枚に記載)があります。

住所ごとにデータを分けて、個別のテキストファイルを作成する

※テキストファイルのファイル名は地域コード(英数字)にする。
 tokyo.html

※テキストファイルの種類は、HTMLファイル

※住所録の項目は、
 会社名、住所、電話、FAX、担当者、地域コード の6個

※HTMLファイルに表示させるのは地域コードを除いた5項目

※以下は、HTMLファイルの例になります。

<!DOCTYPE html>
<html lang="en">
<body>
<div class="span3" id="sidebar">

<div class="widget">
<h4 class="widgetTitle">会社名1</h4>
<ul><li>住所1</li>
<li>電話番号1</li>
<li>ファックス1</li>
<li>担当者1</li></ul></div>

<div class="widget">
<h4 class="widgetTitle">会社名2</h4>
<ul><li>住所2</li>
<li>電話番号2</li>
<li>ファックス2</li>
<li>担当者2</li></ul></div>

<div class="widget">
<h4 class="widgetTitle">会社名3</h4>
<ul><li>住所3</li>
<li>電話番号3</li>
<li>ファックス3</li>
<li>担当者3</li></ul></div>

<div class="widget">
<h4 class="widgetTitle">会社名4</h4>
<ul><li>住所4</li>
<li>電話番号4</li>
<li>ファックス4</li>
<li>担当者4</li></ul></div>
<div class="widget">

<h4 class="widgetTitle">会社名5</h4>
<ul><li>住所5</li>
<li>電話番号5</li>
<li>ファックス5</li>
<li>担当者5</li></ul></div>

<div class="widget">
<h4 class="widgetTitle">会社名6</h4>
<ul><li>住所6</li>
<li>電話番号6</li>
<li>ファックス6</li>
<li>担当者6</li></ul></div>

</div>
</body>
</html>

大変申し訳ございませんが、この投稿に添付された画像や動画などは、「BIGLOBEなんでも相談室」ではご覧いただくことができません。 OKWAVEよりご覧ください。

マルチメディア機能とは?

投稿日時 - 2014-10-05 17:49:42

QNo.8780003

困ってます

質問者が選んだベストアンサー

DOUGLAS_ です。

> 早速試してみたのですがエラー表示が出て先に進めませんでした。
 ここで躓かれているようでしたら、ちょっと後が心配ですが。。。


myPath = Environ("USERPROFILE") & "\Desktop\Hoge\"
の行で、作成された htmlファイル の保存場所を指定しています。

 上の例ではデスクトップに「Hoge」というフォルダを予め作成しておかなければ、「パスが見つかりません。」となるのは当然です。

 ですから、「Environ("USERPROFILE") & "\Desktop\Hoge\"」の部分を、oshiete100goo さんが、実際に htmlファイル を保存したいと思っていらっしゃるフォルダのフルパスに書き換えてください。
 ただし、一番最後に「\」を付けてくださいね。

例)
myPath = "C:\Users\user\Documents\Hoge\"
myPath = "D:\oshiete100goo\html\"

投稿日時 - 2014-10-07 07:26:20

お礼

できました。完璧です。ありがとうございます。

ご指摘どおりフォルダーを作成してみたところ、
見事に、やりたいことが完全に実行されております。

最初に回答してくださった方には、
「そもそも質問になっていない」とか「外注に頼めばよい」
といった内容でしたので、当初は場違いのことをしてしまったのかと
心配しておりました。

実際に外注業者探しをしている中、望みどおりの結果を得ることができ、
本当に感謝しております。

文句なしに「ベストアンサー」です。有難うございました。

投稿日時 - 2014-10-07 21:31:49

このQ&Aは役に立ちましたか?

8人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

平成生まれで自営業ですか。。。

「献身的なボランティア」ではありませんが、こんな感じでしょうか?

Option Explicit
Sub Macro1()
  Dim myPath As String
  Dim i As Long
  myPath = Environ("USERPROFILE") & "\Desktop\Hoge\"
  Range("A:F").Sort Key1:=Range("F2"), Header:=xlYes, MatchCase:=False, _
    Orientation:=xlTopToBottom
  For i = 2 To Range("F1").End(xlDown).Row
    If Range("F" & i).Text <> Range("F" & i - 1).Text Then
      Open myPath & Range("F" & i).Text & ".html" For Output As #1
      Print #1, "<!DOCTYPE html>" & vbNewLine _
        & "<html lang=""en"">" & vbNewLine _
        & "<body>" & vbNewLine _
        & "<div class=""span3"" id=""sidebar"">" & vbNewLine
    End If
    Print #1, "<div class=""widget"">" & vbNewLine _
      & "<h4 class=""widgetTitle"">" & Range("A" & i).Text & "</h4>" & vbNewLine _
      & "<ul><li>" & Range("B" & i).Text & "</li>" & vbNewLine _
      & "<li>" & Range("C" & i).Text & "</li>" & vbNewLine _
      & "<li>" & Range("D" & i).Text & "</li>" & vbNewLine _
      & "<li>" & Range("E" & i).Text & "</li></ul></div>" & vbNewLine
    If Range("F" & i).Text <> Range("F" & i + 1).Text Then
      Print #1, "</div>" & vbNewLine & "</body>" & vbNewLine & "</html>"
      Close #1
    End If
  Next
  ActiveWorkbook.Close False
End Sub

投稿日時 - 2014-10-06 12:42:35

お礼

ありがとうございました。早速試してみたのですがエラー表示が出て先に進めませんでした。
(その時の画像は当方のブログにあります。)

投稿日時 - 2014-10-06 23:37:54

ANo.2

> 質問の内容が具体的すぎて今回の回答になりましたでしょか。

そうではありません。そもそも質問になっていないのです。
どこで躓いているかわからないので、じゃあその通りに作ればいいじゃないですか、となります。
仮に、VBAの経験がまったくなくて、何から調べて良いのかもわからないのであれば、
No.1の回答がヒントになるかと思います。

投稿日時 - 2014-10-05 21:49:10

お礼

アドバイスありがとうございます。
エクセルVBAの書籍を買いに行ってみます。

投稿日時 - 2014-10-06 22:57:54

ANo.1

他にも方法はありますが、基本的なテキストファイルへの書き出しは
Open
Print
Close
の3つのステートメントを使用します。用法はVBAのヘルプ等で確認してください。
これでセルの内容を順次書き出していくことになります。

望みの機能の完成品が欲しい場合は、どこかに外注するか、献身的なボランティアの登場を待ちましょう。

投稿日時 - 2014-10-05 18:17:25

お礼

早々の回答ありがとうございます。
質問の内容が具体的すぎて今回の回答になりましたでしょか。
ご指摘どおり外注の方法を検討してみます。
引き続き献身的なボランティアの方からの回答も待ってみたいと思います。

投稿日時 - 2014-10-05 20:22:19

あなたにオススメの質問