dポイントプレゼントキャンペーン実施中!

ExcelVBAに詳しい方に質問!

私は仕事でアンケート集計をしている者です。顧客から調査を依頼される
のですが、いただくデータはExcel形式のファイルです。なので、
そこからモニターの方向けにWeb化する必要があります。
今回目指しているのは、例えばExcelデータの中でマクロが入った
ボタンをたった一回押すだけでHTML形式のWebページに変換
するツールを作りたいと思います。
Excel外のマクロでも良いのですが、ExcelVBAでマクロを組んでWeb
化するには具体的にどのようにVBAを組んだらできますか?
また、ExcelVBAでなくExcelファイルをWeb化する違う
方法はありますか?
ExcelVBAに詳しい方、是非ご教授の程、よろしくお願いいたします。

A 回答 (2件)

>タグで出来た HTMLページを作成したいと考えております。



最低限の機能でテーブルのコードをシートに書き出すマクロです。
どのように拡張するかは自由ですが、1個のセルの書き出しのために必要なオプションは多数あります。
それを組み合わせて一つのテーブルにするには、多大な解析が必要になりますしそれを組み合わせる手法も様々です。


Sub HtmlTest()
Dim WorkCell As Range
Dim i As Integer, j As Integer, wid As Integer, c As Integer
Dim hed As String
Dim tbl As String
Dim ehed As String

Sheets("table").Select
Set WorkCell = Range("A1:E8") '表範囲
wid = WorkCell.Columns.Count * 100 '横幅

'テーブルの定義
hed = "<table border width=" & wid & " bgcolor=""#dddddd"" bordercolor=""#666666"" cellpadding=2 cellspacing=2 style=""color:#000000;"">"
ehed = "</table>"

'シートへの書き出し
c = 1
Sheets("HTML").Select
Cells(c, 1) = hed
c = c + 1

'テーブルの書き出し
For i = 1 To WorkCell.Rows.Count
tbl = "<tr>"
For j = 1 To WorkCell.Columns.Count
tbl = tbl & "<td bgcolor=""#ffffff"" align=center > " & WorkCell(i, j) & "</td>"
Next
tbl = tbl & "</tr>"
Cells(c, 1) = tbl
c = c + 1
Next

Cells(c, 1) = ehed
End Sub

----------------------------------------------
実行結果
----------------------------------------------
<table border width=500 bgcolor="#dddddd" bordercolor="#666666" cellpadding=2 cellspacing=2 style="color:#000000;">
<tr><td bgcolor="#ffffff" align=center > 1段目の1</td><td bgcolor="#ffffff" align=center > 1段目の2</td><td bgcolor="#ffffff" align=center > 1段目の3</td><td bgcolor="#ffffff" align=center > 1段目の4</td><td bgcolor="#ffffff" align=center > 1段目の5</td></tr>
<tr><td bgcolor="#ffffff" align=center > 2段目の1</td><td bgcolor="#ffffff" align=center > 2段目の2</td><td bgcolor="#ffffff" align=center > 2段目の3</td><td bgcolor="#ffffff" align=center > 2段目の4</td><td bgcolor="#ffffff" align=center > 2段目の5</td></tr>
<tr><td bgcolor="#ffffff" align=center > 3段目の1</td><td bgcolor="#ffffff" align=center > 3段目の2</td><td bgcolor="#ffffff" align=center > 3段目の3</td><td bgcolor="#ffffff" align=center > 3段目の4</td><td bgcolor="#ffffff" align=center > 3段目の5</td></tr>
<tr><td bgcolor="#ffffff" align=center > 4段目の1</td><td bgcolor="#ffffff" align=center > 4段目の2</td><td bgcolor="#ffffff" align=center > 4段目の3</td><td bgcolor="#ffffff" align=center > 4段目の4</td><td bgcolor="#ffffff" align=center > 4段目の5</td></tr>
<tr><td bgcolor="#ffffff" align=center > 5段目の1</td><td bgcolor="#ffffff" align=center > 5段目の2</td><td bgcolor="#ffffff" align=center > 5段目の3</td><td bgcolor="#ffffff" align=center > 5段目の4</td><td bgcolor="#ffffff" align=center > 5段目の5</td></tr>
<tr><td bgcolor="#ffffff" align=center > 6段目の1</td><td bgcolor="#ffffff" align=center > 6段目の2</td><td bgcolor="#ffffff" align=center > 6段目の3</td><td bgcolor="#ffffff" align=center > 6段目の4</td><td bgcolor="#ffffff" align=center > 6段目の5</td></tr>
<tr><td bgcolor="#ffffff" align=center > 7段目の1</td><td bgcolor="#ffffff" align=center > 7段目の2</td><td bgcolor="#ffffff" align=center > 7段目の3</td><td bgcolor="#ffffff" align=center > 7段目の4</td><td bgcolor="#ffffff" align=center > 7段目の5</td></tr>
<tr><td bgcolor="#ffffff" align=center > 8段目の1</td><td bgcolor="#ffffff" align=center > 8段目の2</td><td bgcolor="#ffffff" align=center > 8段目の3</td><td bgcolor="#ffffff" align=center > 8段目の4</td><td bgcolor="#ffffff" align=center > 8段目の5</td></tr>
</table>
    • good
    • 0
この回答へのお礼

すごいですね!ゆっくりコードを読み返したいと思います。とてもためになりました。ありがとございます!

お礼日時:2010/02/21 18:27

>ExcelVBAでマクロを組んでWeb 化するには具体的にどのようにVBAを組んだらできますか?



単純に”WEBページ保存”ではいけないのでしょうか?

ActiveWorkbook.SaveAs Filename:="Book1.htm", FileFormat:=xlHtml

この回答への補足

hana-hana3さん、
早速のご回答ありがとうございます。

〈tr〉タグや〈td〉タグで構成され〈table〉タグで出来た
HTMLページを作成したいと考えております。
さらに一部の〈td〉タグ中には、プルダウンやを入れたいと思います。

補足日時:2010/02/21 14:14
    • good
    • 0
この回答へのお礼

hana-hana3さん、この前はありがとうございました。
あのあと、コードを実行したのですが、結果としてエラーになってしまいます。
テーブルの書き出しのコードに原因があるようです。
自分でも考えましたが、結局分かりませんでした。
どのように直せば直ると思いますか?

お礼日時:2010/02/24 07:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!