電子書籍の厳選無料作品が豊富!

以前excel2010でgooglemap表示で助けて頂きました物です。
A列にお客様コード、B列にお客様名、C列に郵便番号、D列に住所というシートです。
現在の使い方はオートフィルを使っていましたが、同僚よりユーザーフォームでの検索が
できると、誰でも使えて便利だよとの指摘があり、色々やってみましたがうまく行きません。

そこで住所からgooglemapのコード、お客様名でメモ帳表示、お客様検索
を別々貼り付けいたしますので、皆様のお知恵をお貸しください。
私は素人です。わかるよう出来たらコードを張り付けていただけたら助かります。

googlemap表示

Option Explicit

' 住所が入力されているセルの範囲を定義します ex) C3 以下に住所がある場合
Private Const ADDRESS_DATA = "D3:D65536"
' Google Map 問い合わせ URL
Private Const GOOGLEMAP_QUERYSTR = "http://maps.google.co.jp/maps?f=q&hl=ja&q="
' Google Map 初期表示倍率(整数で1~)
Private Const GOOGLEMAP_ZOOM = 16

' シート上のダブルクリック操作で発生するイベントプロシージャ
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Me.Range(ADDRESS_DATA)) Is Nothing Then
' ダブルクリックでセル編集モードにしない
Cancel = True
'Google Map をブラウザで表示
Call ShowGoogleMap(Target.Value)
End If
End Sub

' 引数で渡した住所付近の地図を Google Map で表示する
Private Sub ShowGoogleMap(ByVal strAddress As String)

Dim strURL As String
If strAddress = "" Then Exit Sub
strURL = UrlEncode(StrConv(strAddress, vbWide))
strURL = GOOGLEMAP_QUERYSTR & strURL & "&z=" & CStr(GOOGLEMAP_ZOOM)
CreateObject("WScript.Shell").Run strURL

End Sub

' 文字列を URL エンコードして返す(JScript の encodeURI 関数を利用)
Private Function UrlEncode(ByVal strText As String) As String
If strText = "" Then Exit Function
With CreateObject("ScriptControl")
.Language = "JScript"
With .CodeObject
UrlEncode = .encodeURI(strText)
End With
End With
End Function

Private Sub Workbook_Open()

myForm.Show vbModeless


End Sub

「透析患者検索シートを利用したい」
Dim Maxl As Long
Dim Touseki As Object


Private Sub UserForm_Initialize()
Set Touseki = Worksheets("透析患者リスト")
'Touseki.Activate
Maxl = Touseki.UsedRange.Rows.Count
'ListIdx = 0
'ChangeSwitch = False

'Call Member
'透析条件テンプ作成
'OptionButton1.Value = True
End Sub
Private Sub CommandButton1_Click()
Dim Namae As String
Dim MeNamae As Object

Namae = TextBox1.Text
Set MeNamae = KensakuForm
Call 検索(Namae, MeNamae)

End Sub
Private Sub CommandButton2_Click()
End
End Sub
Public Function Kensaku(ByVal Namae As String) As Integer
Dim kensakuSu As Integer

kensakuSu = 0
For l = 1 To Maxl
If Touseki.Cells(l, 3) = Namae Then
kensakuSu = kensakuSu + 1
If kensakuSu > 1 Then
MsgBox ("リストの中に、同名で2件以上のデータがあります。不要なデータを削除して下さい。")
Exit For
End If
Kensaku = l
End If
Next
End Function
Private Sub ListBox1_Click()
'If ChangeSwitch = True Then
' 保存忘れ防止装置
'End If
ListIdx = ListBox1.ListIndex
Namae = ListBox1.List(ListIdx)
l = Kensaku(ByVal Namae)

'Call 個別へ表示(ByVal l)
Touseki.Cells(l, 1).Activate
End Sub

「お客様名でメモ帳を開く」

標準モジュール1に

'選択したお客様専用のファイルをメモ帳で開く

標準モジュール2に

'選択した日付専用のファイルをメモ帳で開く
Sub Memo()
Dim note
Dim fName

'ファイルはブックと同じフォルダに保存する
'テキストファイルの名前はシート名+選択しているセルの内容
fName = ThisWorkbook.Path & "\" & ActiveSheet.Name & ActiveCell.Value & ".txt"

'メモ帳を起動する
note = Shell("notepad.exe " & fName, vbNormalFocus)
End Sub

以上自分で苦労しないといけないのは解ります。色々本を買ってきては試行錯誤
し、ネットで調べたりしましたが根本的にわからず、お願いしている次第です。
どうか、よろしくおねがいします。

質問者からの補足コメント

  • (透析患者リストを)
    このマクロを利用出来ないか?
    編集が可能で有ればして使いたい。

    マクロを一から作るのとどちらが良いですか?
    ‥‥作れないけど‥‥(*'ω'*)

      補足日時:2017/05/06 20:01
  • 入力フォームとなります。
    検索窓に社名or氏名を入力。うろ覚えでの部分入力でも可のようにあいまい検索が出来るように。
    検索ボタンをクリックで下窓へ表示。数人、数社ある場合下窓から選択クリックすると
    その列が表示される。その住所をwクリックでgooglemap表示される。
    そのようなシステムとしたいのです。

    「エクセルに複数のマクロ」の補足画像2
      補足日時:2017/05/07 07:15
  • なんとか、、自分で解決いたしました。
    お世話になりました。

    Sub 検索()
    Dim result As Range
    Set result = Range("B5:B6666").Find(What:=Range("B2").Value, LookAt:=xlPart)
    If result Is Nothing = False Then
    result.Select
    Else
    MsgBox "該当データがありません!"
    Exit Sub
    End If
    End Sub

    結局はユーザーフォームは使わなく、検索セルを指定して行いました。

    「エクセルに複数のマクロ」の補足画像3
      補足日時:2017/05/08 15:17

A 回答 (1件)

この回答はアドバイスになりますので、見当違いであったり、気に入らなければ無視して頂いて構いません。



内容から職場での出来事と見受けられますが、自身がマクロがいじれないのに、同僚からの要望により、
ご質問者様がこんなところで解決を図ろうとしている状況が、少し問題があるかと存じます。
それに加えて単に「ユーザーフォームでの検索」と言われても、もう少し具体的な要件を示して頂けないと
そもそも設計ができないでしょう。

質問内容から推測するに、以前ココで中途半端にマクロが提示されてうまくできてしまったから、
その同僚は質問者様がエクセルに詳しいと勘違いをし、質問者様に依頼をしているのかもしれませんん。

実際には、このサイトでマクロを組んでくれと頼んでいるように見えますが、いかがでしょうか。

この推測が当たっていれば、あくまで会社の業務ですので、その依頼をしている同僚に任せるか、
上長なりに相談して、外部委託なり派遣、もしくはマクロに詳しい他の職員への依頼をお勧めします。

もし仮に、ココでまたうまく解決できてしまったら、職場における質問者様への要望が増えていく一方です。
できなければ、その依頼を断ったり、前述のような提案をするということも大事です。
    • good
    • 0
この回答へのお礼

早速の返信ありがとうございます。
意味的には理解できます。仕事で使用とは言っても、新人に行き先を
確認するのに使用する程度で、私の趣味の範囲です。

googlemapを開くマクロは自分でネットを探し当て、つくりました。
家のプラウザでは開くのに会社ではIE8の関係上文字化けしたりと
随分作ってはダメの繰り返しでした。その工程が楽しいと感じていましたが
この度の検索ファームにてのマクロには根本的に打ちのめされています。

おっしゃられるよう、素人で何処から勉強すれば良いかもわかりません。
何かのヒントでも良いので与えてもらえませんか。

お礼日時:2017/05/07 06:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!