アプリ版:「スタンプのみでお礼する」機能のリリースについて

複数シートのEXCELファイルを保存するときにHTML化することができると思いますが、
それをVBAマクロで行いたいです。
可能であれば指定したシートのみでHTML化したいです。
どうかよろしくお願いいたします。

質問者からの補足コメント

  • PublishObjectsを使って1シートを出力することはできました。
    このMSDNも見ましたが理解できませんで困っております。

      補足日時:2021/03/11 16:22

A 回答 (3件)

こんにちは、


どの様にシートを指定しますか?

アクティブシートをデスクトップに保存する場合はこんな感じ
Sub sheet_html()
Dim Path As String
Path = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\"
With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, Path & ActiveSheet.Name & ".html", ActiveSheet.Name)
.Publish True
End With
End Sub

ファイル名、シート名などを分けておいたのでお判りになるかと思います。
    • good
    • 0

#1です


追記しておきます
>指定の複数シート 
これ、選択しているで良いかな?それとも指定の名前(定数)?
選択しているなら
Dim sh As Worksheet
Dim Path As String
Path = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\"
For Each sh In ActiveWindow.SelectedSheets
With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, Path & sh.Name & ".html", sh.Name)
.Publish True
End With
Next

後者なら
For Each sh In Sheets(Array("Sheet1", "Sheet2")) 
みたいな感じでは、、
作成するファイル名を変える場合は先の sh.Nameをstring型で
指定します。これもやり方は色々、なさりたい事がつかめないので
此の辺で
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございます。
情報不足で申し訳ございません。
やりたいと思っておりますのは、例えば、シート「A」「B」「C」「D」がある状態で、
シート「B」「C」「D」をHTMLファイルに出力することです。
(A、B、C、Dは名前固定です)
HTMLには、EXCELのようなタブ「B」「C」「D」ができるイメージです。
(****.filesフォルダにtabstrip.htmファイルができます)

お礼日時:2021/03/11 18:02

#2です。


>HTMLには、EXCELのようなタブ「B」「C」「D」ができるイメージです。
私自身、詳しくないのですが、(かなり昔に何度か試した程度)対話的なワークシート コンポーネントを使う方法を指すのでしょうか。
PublishObjects. Add メソッドを調べ XlHtmlTypeを確認しましたが
2017/06/08掲示の情報で 現在は廃止されています。との事ですね。
https://docs.microsoft.com/ja-jp/office/vba/api/ …

デフォルトのxlHtmlStatic 表示のみの機能しか残っていないようです。
深く確認した訳でないので、確証はありませんが、PublishObjects. Add メソッドだと実現できないのかな。

必要シートで新規ブックを作りWebに上げるのは、、リスク高いですよね
色々サービスがあるようですが、そのあたりは、さらにスキルが追いつきません。
Excel使わなくなったなぁと思わず振り返ってしまいました。ごめんなさい。
    • good
    • 0
この回答へのお礼

お調べいただきありがとうございました。

お礼日時:2021/03/11 19:12

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