エクセルのマクロでHTMLファイルを出力する方法

このQ&Aのポイント
  • エクセルのマクロを使用してHTMLファイルを出力する方法について解説します。具体的には、任意のテキストが入力されたシートのデータをHTMLファイルとして保存する方法を紹介しています。
  • また、50枚のシートに記載されたテキストをそれぞれのシート名に基づいてファイル名として保存し、フォルダ内に保存します。保存するフォルダは任意のディレクトリ内で作成され、フォルダ名はシート内の指定したセルに基づきます。
  • 保存形式はHTML形式で行われます。この方法を使用することで、エクセルのマクロを活用して簡単に複数のHTMLファイルを出力することが可能です。
回答を見る
  • ベストアンサー

エクセルのマクロでHTMLファイルを出力するには

エクセルのマクロでHTMLファイルを出力するには 下記アドレスのソースをもとに、エクセルでHTMLファイルを複数出力できたらと考えています。 内容は、sheet1のA列にテキストが入っていると、それを任意のファイル名(ダイアログ)でテキストとして保存が可能になるソースです。 ttp://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_040.html 出来ればこれを以下のように変えたいと考えております。 ●シート名「1」~「50」の計50シートのA列のテキストを、 それぞれのシート名+任意の文字列で保存をしたい。 ●ファイル名の任意の文字列については、シート内のセル (例:sheet1のA4)に記載されている内容としたい。 ●ファイル形式は、HTML形式で保存をしたい。 ●保存先のフォルダは任意のディレクトリ内 (例:C:\Documents and Settings\All Users\デスクトップ)の配下に、 シート内のセル(例:sheet1のA3)に記載されている内容を フォルダ名として、新規に作成し、その中に保存したい。 恐れ入りますが、ご回答よろしくお願いいたします。

  • ho-so
  • お礼率72% (26/36)

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

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.2

#1 DOUGLAS_ です。  [戻る] つもりが [回答] してしまいました。 If Dir(FOLDER_NAME) = "" Then MkDir FOLDER_NAME の行を If Dir(FOLDER_NAME, vbDirectory) = vbNullString Then MkDir FOLDER_NAME と差し替えてください。

ho-so
質問者

お礼

下に同じく、有難うございました!

その他の回答 (1)

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.1

 お示しの URL の「FSO(FileSystemObject)でのサンプル」の方を使ってみます。  [Visual Basic Editor](VBE)- [ツール(T)] - [参照設定(R)...] = [参照設定 - VBAProject] - [参照可能なライブラリ ファイル(A):] から「Microsoft Scripting Runtime」に チェック を付けて [OK] しておいてください。 Option Explicit ' 参照設定:Microsoft Scripting Runtime Sub WRITE_TextFile3()  Dim strFILENAME As String     ' 保存ファイル名  Dim FSO As New FileSystemObject  ' FileSystemObject  Dim TS As TextStream       ' TextStream  Dim strREC As String       ' 書き出すレコード内容  Dim GYO As Long          ' 収容するセルの行  Dim GYOMAX As Long        ' データが収容された最終行  Dim strFolder As String      ' 保存先のディレクトリ  Dim SheetCnt As Long       ' シート数  Dim FOLDER_NAME As String     ' 保存先フォルダ  '保存先のフォルダは任意のディレクトリ内  strFolder = "C:\Documents and Settings\All Users\デスクトップ"  For SheetCnt = 1 To Worksheets.Count   Sheets(SheetCnt).Select   'それぞれのシート名+任意の文字列で保存をしたい。   'ファイル名の任意の文字列については、シート内のセル(例:sheet1のA4)に記載されている内容としたい。   'ファイル形式は、HTML形式で保存をしたい。   strFILENAME = "\" & ActiveSheet.Name & "_" & Range("A4").Value & ".html"   'シート内のセル(例:sheet1のA3)に記載されている内容を   'フォルダ名として、新規に作成し、その中に保存したい。   FOLDER_NAME = strFolder & "\" & Range("A3").Value   If Dir(FOLDER_NAME) = "" Then MkDir FOLDER_NAME   ' 最終行の取得   GYOMAX = Range("A65536").End(xlUp).Row   ' 指定ファイルをOPEN(出力モード)   Set TS = FSO.CreateTextFile( _    FILENAME:=FOLDER_NAME & strFILENAME, _    Overwrite:=True)   ' 1行目から開始   GYO = 1   ' 最終行まで繰り返す   Do Until GYO > GYOMAX    ' A列内容をレコードにセット(先頭は2行目)    strREC = Cells(GYO, 1).Value    ' レコードを出力    TS.WriteLine strREC    ' 行を加算    GYO = GYO + 1   Loop   ' 指定ファイルをCLOSE   TS.Close  Next  Set TS = Nothing  Set FSO = Nothing End Sub

ho-so
質問者

お礼

早速試させて頂きました。 思った通りの物が出来て感動しております。 ご回答有難うございました!

関連するQ&A

  • エクセルをHTMLで出力する方法

    エクセルの内容をHTMLファイルで出力する方法について教えて頂きたくご質問させて頂きます。 単純にエクセルの中身をそのまま、デスクトップに 例)「サンプル.html」 として保存したいだけです。 例)エクセルに下記のように入力してあり ------------------------------ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> 省略 </div> </div> </body> </html> ----------------------------- この内容をそのままデスクトップにhtmlファイルで出力。 テキストファイルとして保存するマクロは http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_040.html こちらで分かったのですが・・・ テキストファイルで出力して、htmlに変換すればいいのですが 一発で出来る方法があるのであればご教授願います。

  • エクセルVBAでテキストを出力したい

    エクセルVBAでテキストを出力したいのですが、 やり方がわからないので教えてください。 仮にSheet2のA列に文章があるとして、 シート全体を1つのテキストファイルとして出力し、 ファイル名をSheet1のA1セルにしたいです。 同じような質問もあるのですが、ファイル名に関しては、 ちょっと見当たらなかったので質問しています。

  • エクセルのセルをテキストファイル出力する方法教えてくれませんか。

    初心者ですが、 どなたか、エクセルのセル1つを、 テキストファイル出力できる方法をご存知ですか? 詳細には、 エクセルファイルの列Aの内容がテキストファイル名で、 列Bの内容が本文であるテキストファイル出力を 約3000個、順次したいと考えています。 例えば、エクセルファイルに以下のようなデータを保持しているとします。 列A  列B 001  あいうえお 002  かきくけこ 003  さしすせそ この場合、001.txtは本文が「あいうえお」、 002.txtは本文が「かきくけこ」、 003.txtは本文が「さしすせそ」というように、 エクセル1行についてテキストファイルを1つ作成したいと考えています。 このような処理を短時間で実施するのに適した方法をご存知の方がいらっしゃいましたらご教示いただければと思います。 どうぞよろしくお願いいたします。

  • VBAでエクセルからのファイル名とテキスト化を自動で実行する方法

    マクロを実行して、エクセルのセルからファイル名とテキストファイルを自動で出力したいのですが、VBA初心者なのでプログラムの書き方がわかりません。 どうかVBAのプログラムの書き方を教えて下さい。 【マクロ実行前のエクセル状態】 1.エクセルのA列にファイル名1を入力 2.エクセルのB列にファイル名2を入力 3.エクセルのC列にテキスト出力させたい文字列を入力 【期待のマクロ動作】 ファイル名1+ファイル名2のファイル名でC列の文字列をテキストファイルで出力。 《例》 A B C 1 2 あ ⇒マクロ実行⇒ファイル名『12』テキスト内容『あ』 3 4 い ⇒マクロ実行⇒ファイル名『34』テキスト内容『い』 5 6 う ⇒マクロ実行⇒ファイル名『56』テキスト内容『う』 7 8 え ⇒マクロ実行⇒ファイル名『78』テキスト内容『え』 ・ ・ ・ ・ 上記の様に、一回のマクロ実行で入力されている列のセル全て がファイル名付きのテキストファイルとして出力をさせたいです。 申し訳ありませんが、よろしくお願いいたします。

  • HTMLファイルをエクセルなどで一覧にする方法

    HTMLファイルが、約3000個あり、その<body> から <body/>の間のソースのみを抽出し、エクセルで一覧にしたいと考えています。エクセル以外に、アクセスやテキストエディタでも構いません。 一覧というのは、1つのHTMLファイルのソースを1行に表示。 できれば、ファイル名も別の列で表示できれば理想です。 ファイル名  ソース A100000   <CENTER><TABLE ~~ A100001   <CENTER><TABLE ~~ A100002   <CENTER><TABLE ~~ A100003   <CENTER><TABLE ~~  ↓ いろいろ考えましたが、断念してしまいました。 <body> から <body/>内だけの抽出はできました。 そのHTMLファイルをどうにかして、まとめられればと考えています。 最悪、ファイル名部分は表示できなくてもかまいません。中身のソースが一覧でまとめられればOKです。 そのような方法、ソフトもあるのでしょうか? 続けての質問ですみませんが、よろしくお願いします。

  • Excelマクロでエクセルファイルのファイル名を変更して保存、他

    Excel97のマクロを使用して以下の作業を実施したいのですが どなたかご教示お願い致します。 1.フォルダ内の複数ファイルから任意の一つのファイルAを開き、そのファイルA内の任意のセル(1A)の文字列をファイル名にして保存する。 2.あるファイルBを開き、ファイルB内のあるセル(1A)の"文字列が含まれるフォルダ"を検索してそのフォルダ内に保存する。 3.あるフォルダ(\1)内のあるファイルCを開き所要の作業を実施し閉じたあと、そのファイルCを別のフォルダ(\2)へ移動する。 4.あるフォルダ(\3)内のファイルDを開き、ファイルDのファイル名と同じ文字列を含むフォルダ(\4)を検索し、そのフォルダ(\4)内から、 ファイルD内のあるセル(1A)の文字列と同じファイル名のファイルEを検索して開く。 いくつも質問して真に厚かましいですが 解る物だけでも結構ですので 何卒、宜しくお願い致します。

  • エクセルVBA テキストに出力、名前を付けて保存

    エクセルVBA テキストに出力、名前を付けて保存    A  B   C   D 1  aa  bb  cc  =A1&B1&C1 2  dd  ee  ff  =A2&B2&C2 3  gg  hh  ii  =A3&B3&C3 上記エクセルのD列の内容(セルA1~C3が連続したもの)を1行毎にテキストに出力し、 B列の内容をファイル名にしてテキストファイルを多量に自動生成したいのです。 上記エクセルのように3行なら下記の3つのファイルが生成されるといったVBAがほしいのです。 ファイル名がbb.txtで、テキストの内容はaabbcc。 ファイル名がee.txtで、テキストの内容はddeeff。 ファイル名がhh.txtで、テキストの内容はgghhii。 実際は数千行あるので、数千ファイルを一気に生成させたいのです。 どうぞよろしくお願いいたします。

  • エクセルマクロで任意のファイル名をつけて保存したい

     エクセルVBAについての質問です。  エクセルのマクロで、Aというファイルを開いて、そのうち必要なワークシートだけを抽出し、新しいブックに移動し、その新しいブックを新しいブックのsheet1のセルC2の文字列をファイル名として保存するようなマクロをくみたいと思っています。  ファイルを開いて必要なワークシートだけを抽出し、新しいブックに移動するところまではできましたが、新しいブックのセルC2の文字列をファイル名として保存することができません。FNを変数として宣言して、C2の文字列を代入し、FNをファイル名として保存しようとすると、ファイルにFNという名前が付いてしまいます。どうすれば、C2の文字列をファイル名として保存できるのでしょうか。なお、保存するフォルダはc:\変換ファイル\6月です。どなたか教えてください。よろしくお願いします。

  • マクロが作れません。

    31歳の会社勤めの男です。 仕事でマクロの作成を依頼されましたが、ド素人の為にとりかかることが出来ません。 お知恵を拝借できないでしょうか? 説明が下手ですが、何卒お願い致します。 「概要」 ・UNIXのコマンド調査 ・任意のUNIXコマンドをどこで、何の目的で打つかによって、  運用に影響がないか、実際の環境で打てるのか等の判断結果が出るマクロを作成する。   (シート1について)  セルD4→任意のコマンドの名前を入力する(例 df) セルD5→任意のコマンド(df)をどのサーバで打つかプルダウンから選択する(例 バックアップサーバ) セルD6→任意のコマンド(df)を何の目的で打つかプルダウンから選択する(例 障害調査) 以上が条件指定 以下が判断結果 セルD9→任意のコマンド(df)の得られる情報(例 ドライブの使用状況) セルD10→監視装置にコマンド(df)を打ったことによりエラーメッセージが出力するか(例 出力しない) セルD11→任意のコマンド(df)が運用に影響があるか(例 なし) セルD12→任意のコマンド(df)が実際の環境で打てるか(例 ○) (シート2について) ・シート1のプルダウンするセルD5からセルD12までの情報が記述されている ・コマンド単位で列ごとに整理されています。    A列1~50行目→コマンドの一覧が記載(シート1のセルD4に該当)→50種類   B列1~50行目→サーバ名が記載(シート1のセルD5に該当)→約30種類   C列1~50行目→目的が記載(シート1のセルD6に該当)→約5種類   D列1~50行目→任意のコマンド(df)の得られる情報が記載(シート1のセルD9に該当)→50種類   E列1~50行目→監視装置にコマンド(df)を打ったことによりエラーメッセージが出力するか記載(シート1のセルD10に該当)→出力or出力しないの2種類   F列1~50行目→任意のコマンド(df)が運用に影響があるか記載(シート1のセルD11に該当)→ありorなしの2種類   G列1~50行目→任意のコマンド(df)が実際の環境で打てるか(シート1のセルD12に該当)→○×の2種類

  • VBAマクロでCSV出力

    はじめまして、よろしくお願いします。 ExcelのVBAマクロで 特定のセルの範囲を「シート名.csv」で出力するようなプログラムを書きたいです。 例)シート名「TEST」内にあるマクロボタンを押すと  A1:A10のセルの内容が「TEST.csv」(アスキー形式ならなんでも)  に出力される。 どういうやり方があるか、お勧めのサイト等、 ご教授いただけないでしょうか? 以上、よろしくお願いいたします。

専門家に質問してみよう