■1.「範囲を設定し、出力する」という2段階の処理で発行

 PublishObjectオブジェクトは、「ブック内のどの個所をどのようにHTML形式で保存するか」といった情報を記録したものといえます。実際にSheet1のセルA1〜B10をHTML文章として書き出したい場合のコードは、以下のようになります。
 ActiveWorkbook.PublishObjects.Add _
  SourceType := xlSourceRange, _
  Filename := "¥¥BossPC¥報告書¥日報.htm", _
  Sheet := "Sheet1", _
  Source := "A1:B10", _
  HtmlType := xlHtmlStatic, _
     DivID := "Sample"
     Title := "出力のサンプル"
 ' ここまでで「どの範囲をどのように保存するか」の定義
 
 ActiveWorkbook.PublishObjects(1).Publish
 ' 定義した範囲をHTML形式に「発行」する
 HTML形式での書き出しは、まず、PublishObjectsオブジェクトに対し、「どの範囲をどのように保存するか」の設定を定め、次にその設定に応じて「Publishメソッド」で HTML形式で書き出す、いわゆる「発行」を行なうという2ステップを踏みます。さらに、一度設定を行なったPublishObjectオブジェクトはブックに保存されますので、同じ範囲をもう一度発行したい場合は、
 ActiveWorkbook.PublishObjects(1).Publish
と「発行」部分を記述するだけで同じ設定で書き出すことができます。
 また、PublishObjectオブジェクトはひとつのブックに対して複数設定できるので、発行したい範囲をいろいろなシート上の場所に設定しておき、目的に応じてPublishObjectオブジェクトの集まりである「PublishObjectsコレクション」から、発行する組み合わせを変えて、目的に応じたHTML文章を作成することができるのです。ちょうど「PublishObjects」という、料理で言うレシピ集に個々のレシピを作成しておき、「じゃあ、今日は1番目と3番目のレシピでお願い」という組み合わせを選んで料理を作っていく――そんなイメージでとらえていただくと理解しやすいのではないでしょうか。