見出し画像

ブラウザ・ブックマークを極める②

①からのおさらい

・ブラウザに時間をかけているわけなのでブラウザの時短を考えるべし。
・CTRL+Dでお気に入り登録。
・フォルダで管理をしてみよう。
・Tempファイルを作成し、まずはそこに気に入ったブックマークはあまり考えずにどんどん登録していくと楽だよ。

②ブックマークから検索をしてみよう。

ブックマークをどんどん登録していくと、「あれ? どこにデータ置いたっけ?」となることが多い。
そんな時はブックマークの検索機能を使ってみよう。
CTRL+Shift+Oでブックマークメニューを開き、そのまま文字を打ち込むことで検索ができます。

③一気にブックマークを保存してみよう(マクロ作るよ)

例えばSharePointやBOXなどをブラウザベースで使っている場合、(そしてアプリ版の使用を禁じられている場合)、もう少し体系的にブックマークを簡単にできんもんかなあ~ と思う人もいるでしょう。
そんな場合のため、VBAマクロを作成してみました。
まずはエクセルをご用意。
下準備として、A列からD列までの1行目を入力していきます


こんなの

A列から順に、フォルダ,サブフォルダ,表示名,リンク(ハイパーリンクを読み込みます)
と書いておいてください。

次に2行目以降入力してみましょう。
なお、D列はハイパーリンク化されているのが前提です。
(普通にSharePointのリンクのコピーから貼り付けるとハイパーリンク化された状態で貼り付けられるので、そこまで気にする必要もないとは思いますが)

こんな感じで作成

ちまちまこの表を作るのが面倒な方は以下のSharePointの「Excelにエクスポート」をうまく編集すると簡単に使えます。

Excelにエクスポート

これで下準備は完了です。
本エクセルデータを一度デスクトップ上に保存してください。

続いてALT+F11を押して、エクセルのVBEを開きましょう。
以下コードを貼り付け、起動します。

Sub CreateFavoritesHTML_UTF8()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    Dim lastRow As Long
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    Dim htmlPath As String
    htmlPath = ThisWorkbook.Path & "\favorites.html" ' 保存するHTMLファイルのパスを指定してください

    Dim stream As Object
    Set stream = CreateObject("ADODB.Stream")
    stream.Charset = "utf-8"
    stream.Open
    stream.WriteText "<!DOCTYPE NETSCAPE-Bookmark-file-1>" & vbCrLf
    stream.WriteText "<META HTTP-EQUIV=""Content-Type"" CONTENT=""text/html; charset=UTF-8"">" & vbCrLf
    stream.WriteText "<TITLE>Bookmarks</TITLE>" & vbCrLf
    stream.WriteText "<H1>Bookmarks</H1>" & vbCrLf
    stream.WriteText "<DL><p>" & vbCrLf

    Dim currentFolder As String
    Dim currentSubFolder As String
    currentFolder = ""
    currentSubFolder = ""

    Dim i As Long
    For i = 2 To lastRow
        If ws.Cells(i, 1).Value <> currentFolder Then
            If currentFolder <> "" Then
                If currentSubFolder <> "" Then
                    stream.WriteText "</DL><p>" & vbCrLf
                    currentSubFolder = ""
                End If
                stream.WriteText "</DL><p>" & vbCrLf
            End If
            currentFolder = ws.Cells(i, 1).Value
            stream.WriteText "<DT><H3 ADD_DATE=""0"" LAST_MODIFIED=""0"">" & currentFolder & "</H3>" & vbCrLf
            stream.WriteText "<DL><p>" & vbCrLf
        End If

        If ws.Cells(i, 2).Value <> currentSubFolder And ws.Cells(i, 2).Value <> "" Then
            If currentSubFolder <> "" Then
                stream.WriteText "</DL><p>" & vbCrLf
            End If
            currentSubFolder = ws.Cells(i, 2).Value
            stream.WriteText "<DT><H3 ADD_DATE=""0"" LAST_MODIFIED=""0"">" & currentSubFolder & "</H3>" & vbCrLf
            stream.WriteText "<DL><p>" & vbCrLf
        End If

        Dim displayName As String
        Dim hyperlink As String
        displayName = ws.Cells(i, 3).Value
        hyperlink = ws.Cells(i, 4).Hyperlinks(1).Address

        stream.WriteText "<DT><A HREF=""" & hyperlink & """ ADD_DATE=""0"" LAST_VISIT=""0"" LAST_MODIFIED=""0"">" & displayName & "</A>" & vbCrLf
    Next i

    If currentSubFolder <> "" Then
        stream.WriteText "</DL><p>" & vbCrLf
    End If
    If currentFolder <> "" Then
        stream.WriteText "</DL><p>" & vbCrLf
    End If
    stream.WriteText "</DL><p>" & vbCrLf

    stream.SaveToFile htmlPath, 2 ' 2 = adSaveCreateOverWrite
    stream.Close
    MsgBox "UTF-8でエンコードされたHTMLファイルが作成されました。", vbInformation
End Sub

どうでしょう?デスクトップ上に以下のHTMLが生成されたのではないでしょうか?

favorites.html

あとはこのfavorites.htmlをブックマークとしてインポートすればOKです。

ブラウザの設定→プロファイル→お気に入りのインポートからアクセス

インポート後は、「その他のお気に入り」に入っているのでドラッグ・ドロップで移しましょう。

インポート後

以降、エクセルファイルをマクロ付きで保存する場合は、xlsmで保存する必要があります。今後も使う必要がある場合はぜひお手元に置いておいてくださいね。

今週は以上になります。気に入ったらぜひいいねお願いしますね。

この記事が気に入ったらサポートをしてみませんか?