サイトマップの全URLをExcelで自動的に読み込むマクロ

VBAホームページ作成
スポンサーリンク/Sponsored Link

業務上の必要があって、ウェブサイトの全URLをサイトマップから自動で拾ってくるExcelマクロを作りました。

スポンサーリンク/Sponsored Link

このマクロの使い方

対象サイトのサイトマップURLを特定します。

サイトマップのアドレスまで自動では探せませんので、ご自身で特定してください。

例: https://curio-shiki.com/blog/sitemap.xml

マクロを起動します

上記リンクからダウンロードしたzipを解凍し、出てきたマクロ有効Excelファイル  (sitemapindex-autoloader-v100.xlsm) を開きます。

開いた際、Excelのセキュリティにより次のようなボタンが出た場合は、「コンテンツの有効化」をクリックしてください。

「マクロが無効にされました」 ボタン「コンテンツの有効化」

すると大きなボタンが出ますので、これを押してください。

サイトマップインデックス自動読み込みマクロ 起動画面

クリックすると、サイトマップのURLを入れる窓が開きます。

サイトマップURLを入力する画面

サイトマップのURLを入力し、「取得実行」

ここにサイトマップの実際のURLをフルで入力し、「取得実行」をクリックします。

サイトマップのURLを入力し「取得実行」をクリック

しばらく待つとサイトマップが取得できます。

クリックすると下記の状態となります。エラーが出ない限りしばらくお待ちください。マクロが自動的にサイトマップインデックスをひとつずつたどって、URLをインポートしていきます。

しばらくお待ちください。保存ダイアログが出たらファイル名と場所を指定して保存してください。

保存ダイアログが出たら場所と名前をきめて保存します。

きめた名前.xlsxとして保存されます。マクロは保存されず、変換ツールは実行前の状態で保持されますので、開きなおせばまた変換できます。

名前をつけて保存のダイアログ

実行結果

サイトマップインデックス内の各サイトマップが、シートに展開され、それぞれのURLがシート上に読み込まれます。

サイトマップインデックス読み込み完了の画面
スポンサーリンク/Sponsored Link

取得したサイトマップをさらに処理するには?

実際に当店ではこのあと、URLを一覧に加工したり、各URLの<title></title>タグを自動で取得したり、いろんなことをやっています。

公開できる形になりましたら、本記事を更新し機能追加をいたします。

パソコン教室・キュリオステーション志木店からのお知らせ
レッスンはオンラインで受講できます

パソコン教室・キュリオステーション志木店では、本年よりオンラインでの在宅レッスンを実施しております。
教室の全コースがオンラインで受講可能。実際にインストラクターがご対応いたします。
1時間の無料体験レッスンはいつでも予約できます。詳しくは公式ページをご覧ください。

スポンサーリンク/Sponsored Link
キュリオステーション志木店運営をフォローする

コメント

  1. サンタロウ より:

    早速のお返事ありがとうございます。

    rintOutメソッドは開始・終了しか指定できないのですね。
    知りませんでした。

    Sub Numbering()
    Dim i As Long
    For i = 1 To 10
    Range(“A1”).Value = i

    ‘Worksheets(1).PrintPreview

    Columns(“i:p”).Hidden = True
    ActiveSheet.PrintPreview
    Columns(“i:p”).Hidden = False

    Next i
    End Sub

    とご教授頂いたものを試しましたら
    うまくできました。

    ありがとうございました。

    非表示・再表示とはおもいつきませんでした。

    ありがとうございました。

  2. サンタロウ より:

    いつもお世話になってます。

    マクロについての質問なのですが、
    ご教授お願い致します。

    エクセルの1シートに3ページあり、
    1ページめにナンバリングをしたく

    Sub Numbering()
    For i = 1 To 200
    Range(“A1”).Value = i
    Worksheets(1).PrintOut
    Next i
    End Sub

    としたのですが
    印刷したいものが
    1ページと3ページ目を両面印刷をしたいのですが、
    1ページ目と3ページ目を指定して
    上記のマクロを実行しても1ページから3ページ目まで印刷されてしまいます。

    1ページと3ページだけ両面で印刷したいです。
    印刷範囲設定で1ページと3ページを指定して上記マクロを
    実行してもうまくいきませんでした。

    Sub Test()
    For i = 1 To 200
    Range(“A1”).Value = i
    Worksheets(1).PrintOut
    Next i
    End Sub
    のどこか記述を変更すればいいのか
    お教え願いたいです。

    どうぞ宜しくお願い致します。

    • Excelの印刷ダイアログをご覧いただくと分かるのですが、「ページ範囲の設定」として、開始ページと終了ページは指定できます。ところが、とびとびの「1ページと3ページ」は指定できません。
       これはVBAのPrintOutメソッドでも同様のようで、開始・終了しか指定できないようです。
      そこで、おっしやるような動作をさせるためには、「2ページ目にあたる行を「非表示」にして印刷し、印刷後に再表示する」しかないのかな、と思います。
      Rows(“25:50”).Hidden = True
      ActiveSheet.PrintOut
      Rows(“25:50”).Hidden = False
      といった感じですね。おためしください。

タイトルとURLをコピーしました