• ベストアンサー
  • すぐに回答を!

ExcelVBAに詳しい方に質問!

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

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数102
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.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>

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • ExcelVBA

    すいません。簡単なことなのかもしれませんが、困っています。 普段C++を使用して仕事をしているのですが、急遽ExcelVBAを使用してExcelのマクロを作成しなければならなくなりました。 VisualBasicはまったく触ったことないので質問させていただきます。 Excelファイルの保護されていないセルの行数と列数を数えたいのです。 ExcelVBAで記述するとどういったコードになるのでしょうか? ちなみにExcel2007を使用しています。 皆さんの知恵をお貸しください。

  • ExcelVBAの学び方について

    ExcelVBAの学び方について ExcelVBAを独学で勉強中です。かなりの初心者です。 会社から期限を決められてExcelVBAでデータベースを作成しています。まるっきりゼロの知識で始めていますが、どうにも時間が足りなくて基本をろくに学ばずインターネット等で構文を検索して貼り付けながら作成しています。"わからない事があればインターネットで質問をしろ"と、上司から言われますがわからない事がわからない状態です。こんなやり方では作成できるとは思いません。やはり、基本から学ばないとダメでしょうか。学び方のアドバイスを頂けると幸いです。

  • ExcelVBAマクロで数字の入ったセルの削除方法

    ExcelVBAマクロについて確認させてください。 ExcelでA列から行方向にデータが入力されてあり、数字のみ(例:123456、77)で構成されたセルを削除するExcelVBAマクロを作成したいです。正規表現が必要になってくると思いますが、その方法をご教授いただけますでしょうか。 以上よろしくお願いいたします。

その他の回答 (1)

  • 回答No.1

>ExcelVBAでマクロを組んでWeb 化するには具体的にどのようにVBAを組んだらできますか? 単純に”WEBページ保存”ではいけないのでしょうか? ActiveWorkbook.SaveAs Filename:="Book1.htm", FileFormat:=xlHtml

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

質問者からの補足

hana-hana3さん、 早速のご回答ありがとうございます。 〈tr〉タグや〈td〉タグで構成され〈table〉タグで出来た HTMLページを作成したいと考えております。 さらに一部の〈td〉タグ中には、プルダウンやを入れたいと思います。

関連するQ&A

  • ExcelVBAでExcelの検索画面を表示する

    ExcelVBAでExcelの検索画面を表示するにはどのようにしたらいいでしょうか。 マクロの自動記録では解りませんでした。 Excelバージョンは2000以降です。

  • ExcelVBAで既に開いてるwordを閉じる

    ExcelVBAで困っております。 現在Excelで住所録を作り、1度送付してから1ヶ月したら自動でwordを起動し 送付の印刷をするマクロを作ってます。 普通に開いて閉じることはできましたが、 既にwordが開いていた場合に読み込み専用になり、少し困っております。 理想としては、既に開いていた場合、1度保存して終了し、 再度開くようにしたいです。 分かる方がいらっしゃいましたら教えてください。 よろしくお願い致します。

  • ExcelVBAでの標準偏差の求め方

    ExcelVBAでの標準偏差の求め方 使用ソフト:Excel2003 ExcelVBAで標準偏差を求めたいのですが、 求めたいデータが複数ファイル(最大31ファイル)に渡り、 また全ての行を一つのファイルにまとめようとすると9万行以上になります。 一ファイルあたりは3000行前後です。 一つのファイルに全てのデータがあれば 下記のようにStDev関数を使うのですが、 今回は複数ファイルに渡るので使えません。 Application.WorksheetFunction.StDev(.Range(.Cells(1, 1), .Cells(Y, 1))) また、1つのファイルにまとめるにもExcel2003なので、 65536行までしか行がなくまとめられません。 このような場合、どのように標準偏差を求めればいいのでしょうか? 出来るだけ速度は犠牲にしたくはありませんが、 速度以前に実装すら出来ません…。 どうか先達の皆様、お知恵をお貸しください。 (同じデータに対して平均、最大値も求めていますが、  それは元ファイルから一つ一つのデータファイルを開いて、  WorksheetFunctionのSum関数、Max関数を使用して最後に集計、計算をしています)

  • ExcelVBAのマクロを使ってテキストファイルの文字を読み込む

    お世話になります 表題のとおりなのですが、ExcelVBAのマクロを使ってテキストファイルの文字を読み込むマクロの書き方を探しています。 具体的には、ExcelVBAで作ったボタンを押すと、あるテキストファイル(TEST.txt)に書かれている文字列をExcelVBAで取得して、それをセルに表示させるものです。 VBA関連のサイトがあまり無く困っています、宜しくお願いします。

  • ExcelVBAに代わるツールをお教えください。

    ExcelVBAで、フォームを作ってGUI入力で帳票を作成しています。しかし、ExcelVBAだとExcelモバイルでは使えません。出来ればモバイル端末で出先でも入力できるようにしたいと思っています。Excel操作に慣れていない人も多いためGUIでのラジオボタンとか、プルダウンとか、ユーザーインターフェースを簡単にして手打ち入力はタブレット(スマホ)的な入力で簡単なものができれば良いと考えています。お金を出せばFileMakerなどもありますが、それなりの投資も必要です。また、ExcelだとONEDRIVEで共有できると言うメリットもありますし、外出先でも使えます。ただVBAは使えません。そこがネックになっています。簡単にExcelへの出力ができるようなツールは無いでしょうか? 一つ気になるのはGoogleのスプレッドシートです。スクリプトが組めるので良いのですが、GUIでの入力ができて、尚且つExcelと完全に互換性が有れば良いのですが、以前は確かアンケート用のフォームが有った程度だったのと、Excelにするとレイアウトが崩れたと言う気がするのですが。改善されていれば、Googleと言う選択肢も有るのかと思っております。他にも何かあればお教えください。

  • ExcelVBAでExcelのメッセージボックスを立ち上がらせない方法

     ExcelVBAでマクロを組んでいるのですが、Excelのメッセージボックスを立ち上がらせない方法はあるのでしょうか。    同じ名前の古いファイルが開いているとき、同じ名前のファイルを新しく作るマクロを作ると、同じ名前のファイルが既に開いています。置き換えますか?とメッセージボックスが開くのですが、プログラムの目的では常にOKなので、自動で置き換えたいのですが。出来ますか?。 

  • ExcelVBAで

    ExcelVBAで、Excelファイルを保存するダイアログを表示し、指定パスにファイル名を指定して保存したいのですが、 保存ダイアログが開いた際に、デフォルトでパスを指定しておくことは可能なんでしょうか?(プログラム上で)

  • ExcelVBAで・・・

    お世話になります。 この度、ExcelVBAでデータベースシステムを作ることになりました。 そこで、ファイルにパスワードを設定するVBAを作成したいのですがどうやっていいのかわかりません。 手順として、 (1)初期パスワードを設定する(TextBoxに入力してもらう) (2)そのパスワードがないとファイルを見れないようにする。 なのですが、そのTextBoxに入力したパスワードをどこに保存?したら良いのかが良くわかりません。 セル内に入れておいても見られそうな気がして…。

  • ExcelVBAの繰り返し処理でwebクエリの取込みできますか。

    こんにちは。VBA初心者の駆け出しです。 よろしくお願いします。 「外部データの取込み」→「新しいwebクエリ」からデータを取り込んで、集計するマクロに取り組んでいますが、 webクエリの部分はマクロの記録で自動記述されたものを使っています。 URLが指定されるので、変数をおいてみたけどダメでした。 そもそも外部デ-タの取り込みは、変数使えないのでしょうか? すみません、データベースがサイトにしかなくて、webクエリしか方法がないのですが。。 サイトが(データが)膨大で、取り込む回数が100を超えるんで、URLだけ変更して、同じ記述を繰り返して使ってるのですが、 それだけでモジュール2つにしないとエラーになってしまいます。なんとかURLの部分を変数にできないか、とお助けをお願いします。もくはwebクエリを保存して、そのファイルを利用できないでしょうか? 各webページは同形式です。 未熟ながらloopが使えれば、と考えたのですが、脳が足らなくて、こちらに始めて投稿した次第です。説明分かりづらい所があったらご指摘お願いします。 環境: win2000 XP Officce ver.2002 2003 混合した環境です。 マクロを保存先のExcelは2003です。

  • ExcelVBAマクロ『並べ替え』⇒『重複の削除』

    ExcelVBAマクロにについて確認させて下さい。 いくつかの値をエクセルの一つの行に並べてあり、 これをExcelの機能である『並べ替え』⇒『重複の削除』をExcelVBAマクロで同様に実行したいのですがどのようにすれば良いでしょうか。 以上よろしくお願いいたします。