以前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
以上自分で苦労しないといけないのは解ります。色々本を買ってきては試行錯誤
し、ネットで調べたりしましたが根本的にわからず、お願いしている次第です。
どうか、よろしくおねがいします。
No.1ベストアンサー
- 回答日時:
この回答はアドバイスになりますので、見当違いであったり、気に入らなければ無視して頂いて構いません。
内容から職場での出来事と見受けられますが、自身がマクロがいじれないのに、同僚からの要望により、
ご質問者様がこんなところで解決を図ろうとしている状況が、少し問題があるかと存じます。
それに加えて単に「ユーザーフォームでの検索」と言われても、もう少し具体的な要件を示して頂けないと
そもそも設計ができないでしょう。
質問内容から推測するに、以前ココで中途半端にマクロが提示されてうまくできてしまったから、
その同僚は質問者様がエクセルに詳しいと勘違いをし、質問者様に依頼をしているのかもしれませんん。
実際には、このサイトでマクロを組んでくれと頼んでいるように見えますが、いかがでしょうか。
この推測が当たっていれば、あくまで会社の業務ですので、その依頼をしている同僚に任せるか、
上長なりに相談して、外部委託なり派遣、もしくはマクロに詳しい他の職員への依頼をお勧めします。
もし仮に、ココでまたうまく解決できてしまったら、職場における質問者様への要望が増えていく一方です。
できなければ、その依頼を断ったり、前述のような提案をするということも大事です。
早速の返信ありがとうございます。
意味的には理解できます。仕事で使用とは言っても、新人に行き先を
確認するのに使用する程度で、私の趣味の範囲です。
googlemapを開くマクロは自分でネットを探し当て、つくりました。
家のプラウザでは開くのに会社ではIE8の関係上文字化けしたりと
随分作ってはダメの繰り返しでした。その工程が楽しいと感じていましたが
この度の検索ファームにてのマクロには根本的に打ちのめされています。
おっしゃられるよう、素人で何処から勉強すれば良いかもわかりません。
何かのヒントでも良いので与えてもらえませんか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルに複数のマクロ
-
エクセルにて表に入力→一覧に自...
-
従事期間の重複チェック、表示
-
「ドゥ」の簡単なローマ字入力方法
-
googleカレンダーの予定を入力...
-
手作り文字の作り方について
-
Google form グーグルフォーム...
-
1MBでドレくらいの文章を書くこ...
-
PDF 入力途中で改行したい
-
Notionが、テーブルビューを一...
-
JUST PDF 3 傾き補正
-
「ディ」はどう入力すればいい...
-
Office Word [ここに入力] が...
-
一太郎で作った文書をWord変換
-
ワードにて スペースを全て改行...
-
A4のレポート用紙1枚で2000文字...
-
一太郎で作成した文書をコピペ...
-
一太郎をワードに変換
-
作ったマクロを複数のシートで...
-
エクセル2000で、漢数字から算...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数セル範囲をコピ...
-
エクセル 細かい条件での切り...
-
従事期間の重複チェック、表示
-
エクセルでのセルへ入力日の記...
-
エクセル マクロ 値のある行...
-
エクセルでのデータ蓄積
-
エクセルでの計量分析のやり方...
-
【エクセルとメモ帳を照合したい】
-
オートフィルターで抽出された...
-
エクセルで苦労してます
-
エクセルで空白の項目セルを削...
-
テキストファイルのデータをエ...
-
エクセルにて表に入力→一覧に自...
-
エクセルの行列方向での並び替え
-
画像のCSVデータをガントチャー...
-
マクロ初心者です。 日がすぎた...
-
マクロの自動実行について
-
エクセル関数について
-
Excel 2007 マクロ AdvancedFi...
-
Google form グーグルフォーム...
おすすめ情報
(透析患者リストを)
このマクロを利用出来ないか?
編集が可能で有ればして使いたい。
マクロを一から作るのとどちらが良いですか?
‥‥作れないけど‥‥(*'ω'*)
入力フォームとなります。
検索窓に社名or氏名を入力。うろ覚えでの部分入力でも可のようにあいまい検索が出来るように。
検索ボタンをクリックで下窓へ表示。数人、数社ある場合下窓から選択クリックすると
その列が表示される。その住所をwクリックでgooglemap表示される。
そのようなシステムとしたいのです。
なんとか、、自分で解決いたしました。
お世話になりました。
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
結局はユーザーフォームは使わなく、検索セルを指定して行いました。