エクセルの住所録をスマートフォンに移植

エクセルの住所録をスマートフォンに移植する方法を紹介します。
今回紹介する方法ではグーグルマップと電話に対応しています。

都道府県庁の住所録を例にして説明します。

上図のようなエクセルの住所録をリンク先の住所リストのようにして使えるようにします。

リストをスマートフォンで見るためのQRコード

スポンサーリンク

①エクセルファイルの準備
元となるエクセルファイルでは、A列に名称、B列に住所、C列に電話番号という構成にしてD列以降は空欄にしてください。

「Alt」を押しながら「F11」を押してVBE画面を開きます。
左の小窓の今開いたファイルの上で右クリック→挿入→標準モジュールを選択します
ファイル名が出ている小窓が無い場合は「Ctrl」+「r」を押してください

挿入した標準モジュールに下記のコードをコピペしてください

Function urlEncode(str As String) As String '住所をエンコードする関数
Set sc = CreateObject("ScriptControl")
sc.Language = "Jscript"
Set js = sc.CodeObject
urlEncode = js.encodeURIComponent(str)
End Function
Function mytel(ByVal target As Range) As String '電話番号を数字だけにする関数
Dim mystr As String
Dim mychar
Dim i As Integer
mystr = ""
For i = 1 To Len(target)
mychar = StrConv(Mid(target, i, 1), vbNarrow)
If IsNumeric(mychar) Then
mystr = mystr & mychar
End If
Next
mytel = mystr
End Function
Sub MYADDRESS()
'A列に名称、B列に住所、C列に電話番号
Dim strFNAME As String
Dim strTITLE As String
Dim i As Integer
Dim s As Integer
s = Range("B32767").End(xlUp).Row
strTITLE = InputBox("ページのタイトルを入力してください")
strFNAME = ThisWorkbook.Path & "\myaddress.html"
Open strFNAME For Output As #1
'データ書き込み、
Print #1, "<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"">"
Print #1, "<html xmlns=""http://www.w3.org/1999/xhtml"" xml:lang=""ja"">"
Print #1, "<head>"
Print #1, "<meta http-equiv=""content-type"" content=""text/html;charset=Shift_jis"" />"
Print #1, "<meta name=""robots"" content=""noindex,nofollow"">"
Print #1, "<title>住所録</title>"
Print #1, "<link rel=""stylesheet"" href=""http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css"" />"
Print #1, "<script type=""text/javascript"" src=""http://code.jquery.com/jquery-1.6.4.min.js""></script>"
Print #1, "<script type=""text/javascript"" src=""http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js""></script>"
Print #1, "</head>"
Print #1, "<body>"
Print #1, "<div id=""home"" data-role=""page"" data-fullscreen=""true"">"
Print #1, "<div data-role=""header"" data-position=""fixed"">"
Print #1, "<h1>" & strTITLE & "</h1>"
Print #1, "</div>"
Print #1, "<div data-role=""content"">"
Print #1, "<p>住所録</p>"
Print #1, "<ul data-role=""listview"" data-filter=""true"" data-inset=""true"">"
For i = 2 To s
Cells(i, 4).FormulaLocal = "=mytel(" & Cells(i, 3).Address & ")"
Cells(i, 5).FormulaLocal = "=urlEncode(asc(" & Cells(i, 2).Address & "))"
Print #1, "<li>" & Cells(i, 1).Value
Print #1, "<ul data-role=""listview"">"
Print #1, "<li><a href=""tel:" & Cells(i, 4).Value & """>" & Cells(i, 3).Value & "</a></li>"
Print #1, "<li><a href=""http://maps.google.co.jp/maps?q=" & Cells(i, 5).Value & """>" & Cells(i, 2).Value & "</a></li>"
Print #1, "</ul>"
Print #1, "</li>"
Next
Print #1, "</ul>"
Print #1, "</div>"
Print #1, "</div>"
Print #1, "</body>"
Print #1, "</html>"
Close #1
Columns(4).ClearContents
Columns(5).ClearContents
End Sub

②HTMLファイルの作成
開発タブ→マクロ→「MYADDRESS」を選択→実行
開発タブが表示されて無い場合は開発タブを表示する方法を参考にしてください。

ページのタイトルを決めるよう要求されるので好きなように設定してください

③作成したHTMLファイルをスマートフォンで表示
ここまでの手順を進めますと、「myaddress.html」というファイルがエクセルの住所録と同じフォルダに作成されます
このファイルをメールに添付してスマートフォンに送ったり、直接配線でスマートフォンに移す等してご利用ください

③までの手順で問題無く使えるという方はこれ以降読む必要がありません
と、ここで1つ問題が発生
私のスマートフォン(Android 2.3.5)では、スマートフォンに「myaddress.html」ファイルを移し「HTMLViewer」で開くとレイアウトが崩れたり、せっかくの検索機能が使えなかったりします
「Local HTML Viewer」等の他のアプリを使って試してみましたが、表示は良いが電話が掛けられない等、一長一短で思ったようにいきませんし、「Chrome For Andoid」にもバージョンが対応していないので使えません
iphoneではどう表示されるか、アンドロイドの他のバージョンや機種によってどう表示されるかも全く分かりません

ということで番外編
④住所録をWeb上に置きお気に入りに登録
番外編といっても特に説明するほどの手順はありません
無料のホームページスペースなどを借りて「myaddress.html」ファイルをアップロードし、そのURLをブラウザなどでお気に入り登録しておくだけです。

ただ注意していただきたいことが有ります
一応グーグル先生に無視してもらうように<meta name="robots" content="noindex,nofollow">とは書いておきました(グーグル先生に「検索結果に入れないでください」とお願いする記述です)が、Web上に公開するということには変わりありません
個人のアドレス帳や企業の住所録(自社、取引先に関わらず)には不向きであり、責任を伴うということは重々ご承知ください
どうしてもという場合は企業の公式サイトなどに行き、そこで公開されている情報(支店や店舗など)だけを元に住所録を作った方が良いでしょう。

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です