諸々の記録

その時々 興味にある事について

AI(copilot)を使ってExcelVBAで目次付きのHTMLを生成してみる

アプリケーションなどのヘルプファイル的なものを作るとすると、どんな形にするのが良いか考えてみました。
Windowsだとchmファイルなどヘルプ用の専用形式がありますが他のOSだと使えず、例えばWebベースのアプリなどだと使えないので、はやりHTMLで作っておくのが無難なのではないかと思います。

例えば、はてなブログのヘルプはこんな感じですね。

はてなブログ ヘルプ 目次 - はてなブログ ヘルプ

で、目次のページhtmlとその目次ページからそれぞれの説明のhtmlをいちいち手作業で作るのは大変なので、Excelにヘルプの内容を記載して、Excel VBA で自動的にhtmlファイルを生成するようにしてみようと思いました。

そして、このVBAのコードもAI(copilot)に作成してもらいましょう。

例えば、このように A列に目次ページに表示する内容、B列にその目次リンクをクリックしたら表示される内容を登録したExcelからhtmlを自動的に生成するVBAを作成します。


copilotに下のようなリクエストをしてみました。
(copilotは多分タスクバーか隠れているインジケータにある)


これで提案されたコードそのままでもよいのですが、少々手直しするリクエストをして生成してもらったあと、VBAのコードをExcelのメニュー「開発」→ 「VisualBasic」 でVBエディタを開き、標準モジュールに貼り付けます。

Excelで「開発」のメニューを使えるようにする方法や、VBAの標準モジュールの作成方法などは下記を参照してください。

【初心者向け】VBAとは?Excelマクロとの違い・できること・使い方を分かりやすく解説! – コンピュータマネジメント


ここまで出来たら、Excelを保存しておきます。
保存時の注意としては、マクロ有効ブック(.xlsm) で保存することです。


いったんExcelを閉じて再度保存したファイルを開くと下記のような警告が表示されますので、「コンテンツの有効化」をクリックしてください。


そして、A列に目次、B列にそれぞれの説明を登録します。
各セルに登録したら、alt+F8 でマクロ一覧(VBAプログラムの一覧)を表示し、対象は1つしかないので、そのまま「実行」ボタンをクリックすればVBAが実行されてhtmlが生成されます。


htmlファイルは、作成したExcelファイルを保存したフォルダに生成されます。
生成された index.htm を開くと、一番最初に例として挙げた りんご、ぶどう、かき の例の場合、このような表示になります。

これで目的のものが作れました。
あとは生成されたhtmを少し手直しすれば、あとはこのまま使えますね。
AI (copilot) を使ったので、VBやhtmlのコーディングはまったく行わずにここまでできました。

VBAのコードは下記に公開しておきます。

https://github.com/momoji-san/Excel2html_vba