人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

名前、URL、都道府県を入力したエクセルファイルがあります。

これをリンク集の形にしたいのですが、データが1000件以上あって、都道府県別にページを分けて、一件一件リンクを張っていくのかと思うと目がくらみます。

カンタンにリンク集を作る方法ってないでしょうか?

当方、DreamWeaverMX2004を使っています。

●質問者: takllin
●カテゴリ:インターネット ウェブ制作
✍キーワード:URL エクセル カンタン データ ファイル
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● hoeizon
●35ポイント

<a href="URL">名前</a>という形になれば形にですよね?


エクセルで


<a href=" URL "> 名前 </a>


という行データを作って、必要な部分をまとめてコピーすれば行ごとのデータでリストに出来ます。

◎質問者からの返答

ありがとうございます。

できればもっと簡単に、HTMLで吐き出して、それをDreamWeaverで体裁を整えるだけ、という幹事にできればベストなのですが。


2 ● chiyobit
●35ポイント ベストアンサー

お望みのできあがりイメージがよくわからないのですが、もしかするとお役に立つかも知れないツールがあります。


bpTranというツールです。このツールは、CSVファイルのデータを元に、用意したHTMLのテンプレートで出力してくれるものです。


知り合いがこれを使って、むっちゃ助かった!と褒めていました^^

※私は使ったこと無いのですが。

※ご存知でいらっしゃると思いますが、エクセルファイルをCSV形式で出力できます。

bpTran

http://webseeder.net/



以上ご参考になれば幸いです。

◎質問者からの返答

ありがとうございます。

これです!

こういうのを探していたんです!!


3 ●
●35ポイント

ちょっと長くなりますが、VBAのマクロを作成してみました。

標準モジュールとして追加し、実行してみてください。

A列にサイト名、B列にURL、C列に都道府県名が入力されている状態で下記のマクロを実行し、適宜入力を行うことでHTMLファイルを生成します。

A B C
a http://aaa.com 北海道
b http://bbb.com 北海道
c http://ccc.com 青森
d http://ddd.com 青森
e http://eee.com 秋田
f http://fff.com 秋田
g http://ggg.com 秋田
h http://hhh.com 秋田
i http://iii.com 宮城
j http://jjj.com 宮城
k http://kkk.com 宮城

のような状態になっていると正しく動きます。

余分な情報がない状態にしていただき、都道府県名でソートした状態で実行してください。

A列が空であるかどうか、を終了の判定条件としていますので、空行は含めないようにしてください。

Option Explicit
Sub linkPageGenerate()
 Dim currentPath As String
 Dim i As Long, eachLink As String, currentPrefName
 Dim htmlHeader As String, htmlTrailer As String, linkForEachFile As String
 Dim FSO As Object, indexFile As Object

 ' マクロのパスを取得 (HTMLファイルの保存も同じディレクトリに行う)
 currentPath = ActiveWorkbook.Path
 
 ' FileSystemObjectの生成
 Set FSO = CreateObject("Scripting.FileSystemObject")
 
 ' indexページの生成
 Set indexFile = FSO.CreateTextFile(currentPath &amp; "\index.html")
 ' HTML用のヘッダを準備
 htmlHeader = "<html>" &amp; vbCrLf
 htmlHeader = htmlHeader &amp; "<head>" &amp; vbCrLf
 htmlHeader = htmlHeader &amp; "<title>" &amp; "リンクページ (見出し)</title>" &amp; vbCrLf
 htmlHeader = htmlHeader &amp; "</head>" &amp; vbCrLf
 htmlHeader = htmlHeader &amp; "<body>" &amp; vbCrLf
 htmlHeader = htmlHeader &amp; "<h2>" &amp; "リンクページ (見出し)</h2>"
 htmlHeader = htmlHeader &amp; "<ul>"
 ' HTMLヘッダをファイルに書き込む
 indexFile.WriteLine htmlHeader
 
 i = 1
 ' 1行目のセルが空でない間、処理を実行
 While Cells(i, 1).Value <> ""
 currentPrefName = Cells(i, 3).Value
 Dim prefFileName As String
 prefFileName = InputBox(currentPrefName &amp; "のリンクページ用のファイル名を入力してください。")
 ' ファイル名用の文字列が入力されなかった場合、県名をそのまま使う
 If prefFileName = "" Then
 prefFileName = currentPrefName
 End If
 ' 県名 + .html でHTMLファイルを生成
 With FSO.CreateTextFile(currentPath &amp; "\" &amp; prefFileName &amp; ".html")
 ' indexページにこの各ページへのリンクを張る
 linkForEachFile = "<li><a href=""./" &amp; prefFileName &amp; ".html"">" &amp; currentPrefName &amp; "</a></li>"
 indexFile.WriteLine linkForEachFile
 ' HTML用のヘッダを準備
 htmlHeader = "<html>" &amp; vbCrLf
 htmlHeader = htmlHeader &amp; "<head>" &amp; vbCrLf
 htmlHeader = htmlHeader &amp; "<title>" &amp; "リンクページ" &amp; " (" &amp; currentPrefName &amp; ")" &amp; "</title>" &amp; vbCrLf
 htmlHeader = htmlHeader &amp; "</head>" &amp; vbCrLf
 htmlHeader = htmlHeader &amp; "<body>" &amp; vbCrLf
 htmlHeader = htmlHeader &amp; "<h2>" &amp; "リンクページ" &amp; " (" &amp; currentPrefName &amp; ")" &amp; "</h2>"
 htmlHeader = htmlHeader &amp; "<ul>"
 ' HTMLヘッダをファイルに書き込む
 .WriteLine htmlHeader
 ' 県名が同じ間、処理を実行 (同じファイルに書き込む)
 While Cells(i, 3).Value = currentPrefName
 ' リンク用の文字列の生成
 eachLink = "<li><a href=""" &amp; Cells(i, 2).Value &amp; """>" &amp; Cells(i, 1).Value &amp; "</a></li>"
 ' 別ウィンドウで開くように明示的に指定したい場合
 ' 上の1行をコメントアウトし、下の行を使う
 ' eachLink = "<li><a href=""" &amp; Cells(i, 2).Value &amp; """ target=""_blank"">" &amp; Cells(i, 1).Value &amp; "</a></li>"
 ' リンク用文字列をファイルに書き込む
 .WriteLine eachLink
 i = i + 1
 Wend
 htmlTrailer = "</ul>"
 htmlTrailer = htmlTrailer &amp; "<div><a href=""./index.html"">見出しページに戻る</a></div>"
 htmlTrailer = htmlTrailer &amp; "</body>" &amp; vbCrLf
 htmlTrailer = htmlTrailer &amp; "</html>"
 .WriteLine htmlTrailer
 .Close
 End With
 Wend
 
 htmlTrailer = "</ul>" &amp; vbCrLf
 htmlTrailer = htmlTrailer &amp; "</body>" &amp; vbCrLf
 htmlTrailer = htmlTrailer &amp; "</html>"
 indexFile.WriteLine htmlTrailer

 indexFile.Close
End Sub

& amp ; と表示されている部分は全て&です。

参考になれば幸いです。

◎質問者からの返答

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ