• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのマクロでHTMLファイルを出力するには)

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

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

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

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

専門家に質問してみよう