柳井市のYK社から、近郊市町村の介護施設の一覧を作ってほしい‥‥ との依頼があった。

奮闘すること3時間半。Excel-VBA で完成させた。
- サイト:my介護の広場 4 在宅介護サービスを探す
- エリア:近郊の 4市 5町、サービス種類:デイサービス
≪方法≫
- 検索結果を Wordに貼り付ける。(テキストのみ)‥‥ 130件
- 名前を付けてテキスト形式で保存 → デイサービス.txt
後から考えたら、- 最初からメモ帳に貼り付ければよかった。
- Wordに貼り付けたならば、置換で空行を取ってやると VBA が楽だった‥‥ と。
- Excel-VBA で txtファイルを 1件ずつ読んで、CSV 形式に変換。
- 空行および“.”行(右図の11行目)は読み捨てる。
- “デイサービス”まで読み捨てる。
- 上3文字が
- “住所:”ならば、郵便番号と住所を切り分ける。
- “電話:”ならば、そのまま電話番号とする。
- “運営事”ならば書き出す。
- そうでなければ、デイサービス名とする。
≪完成したCSVファイル≫

≪コード≫
gosub を使っているので格好良くないが...
- Sub デイサービスCSV変換()
- Dim mbTitle As String
- Dim isEOF As Boolean
- Dim dsn As Long, ds2 As Long
- Dim outCounter As Long
- Dim txtFile As String, csvFile As String
- Dim txtData As String, str3 As String
- Dim strName As String, strYubin As String, strJusho As String, strTel As String
- mbTitle = "デイサービスCSV変換/" & ThisWorkbook.Name
- txtFile = ThisWorkbook.Path & "\デイサービス.txt"
- csvFile = ThisWorkbook.Path & "\デーサービス.csv"
- dsn = FreeFile
- Open txtFile For Input As #dsn
- ds2 = FreeFile
- Open csvFile For Output As #ds2
- Write #ds2, "名前", "郵便番号", "住所", "電話番号"
- outCounter = 0
- Do
- GoSub ReadTextFile
- If isEOF Then Exit Do
- str3 = Left(txtData, 3)
- Select Case str3
- Case "デイサ"
- strName = ""
- Case "住所:"
- txtData = Trim(Mid(txtData, 4))
- strYubin = Trim(Left(txtData, 8))
- strJusho = Trim(Mid(txtData, 9))
- Case "電話:"
- strTel = Trim(Mid(txtData, 4))
- Case "運営事"
- If strName <> "" Then
- Write #ds2, strName, strYubin, strJusho, strTel
- outCounter = outCounter + 1
- strName = ""
- End If
- Case Else
- strName = strName & txtData
- End Select
- Loop
- Close dsn, ds2
- MsgBox outCounter & " 件の CSVファイル を作成しました。" _
- , vbInformation, mbTitle
- Application.Quit
- ThisWorkbook.Close
- Exit_デイサービス変換:
- Exit Sub
- ReadTextFile:
- isEOF = False
- Do
- If EOF(dsn) Then isEOF = True: Return
- Line Input #dsn, txtData
- If Not (txtData = "" Or txtData = ".") Then Return
- Loop
- End Sub
編集後記
- 現役の頃、プログラム開発費用は、最低(利益無視の場合) \3,500/hr と言われていた。
- これで計算すると今回は、3,500円/hr×3.5hr=12,250円 となる。
- 今回は 130件だったので、12,250/130=94.2円/件 となる。
- 例えば、ヨドバシのサポート料金 と比べても高くはないと思うが、どうだろう...
- 海馬の機能低下を実感した。単価も下げねば...