[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『地図上に?b?付けたい』(YASUMATU)
いつもお世話になってます。
またよろしくお願いします。
同市内の複数の工事現場の位置が地図上で分かるようにして欲しいとの要望がありました。
ソフトがあるとは思うのですが、一応EXCELで作ってみようと思ったのですが、つまずいてしまったので教えて下さい。
Sheet1にデータ
A B C D E 1 NO. 担当者 工事NO. 工事名 工事場所 2 1 田中 A1234 ○○工事 世田谷区大蔵 3 2 山本 C1224 ◎◎工事 世田谷区粕谷 4 3 山田 A3444 ○◎工事 大田区
Sheet2にYahoo!地図から900mの世田谷区の地図を貼り付け、Sheet3に大田区の地図を貼り付けました。
A2のNO.の1をカメラ機能で地図に貼り付け、E2の住所をハイパーリンクに設定してSheet2に行くようにしました。
1と2がSheet2の世田谷区のそれぞれの場所での確認が出来、そこまでは良かったのですが、Sheet1のデータを工事NO.順に並び替えてしまうと地図上のNO.が変わってしまいます。
NO.とデータとの関係がうまくいっていないと思うのですが、リンク貼付やコピー貼付でやってみましたが駄目でした。
データを入れ替えても地図上でのNO.は変わらず、行削除したらそのNO.が消えるような事は出来ないでしょうか?
説明不足な点があるかとも思いますが、よろしくお願いします。
ちなみにマクロは出来ません。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
Sub test()
Dim S As Shape
Dim i As Long
Dim iMax As Long
Dim cw As String
iMax = Cells(Rows.Count, "C").End(xlUp).Row
With Sheets("Sheet2")
.Activate
For Each S In .Shapes
S.Select
cw = Selection.Formula
If cw <> "" Then
Range(cw).Offset(, 6) = S.Name 'G列に名前を待避
End If
Next
End With
Me.Activate
Sort.SortFields.Clear
Sort.SortFields.Add Key:=Range("C1:C" & iMax), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With Me.Sort
.SetRange Range("A1:G" & iMax)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Sheets("Sheet2").Activate
For i = 2 To iMax
If Me.Cells(i, "G").Value <> "" Then
Sheets("Sheet2").Shapes(Me.Cells(i, "G").Value).Select
Selection.Formula = "=" & Me.Name & "!A" & i
End If
Next i
Me.Activate
Me.Columns("G").ClearContents
End Sub
(???) 2015/02/26(木) 16:52
ソートは理解できた、削除も多数行うのでいちいちリンク切れを目視確認できない、というならば、別途#REF!画像削除を作ってみますが。
(???) 2015/02/26(木) 17:00
If cw <> "" Then
If 0 < InStr(cw, "#REF!") Then
S.Delete
Else
Range(cw).Offset(, 6) = S.Name 'G列に名前を待避
End If
End If
(???) 2015/02/26(木) 17:11
Sub test()
Dim S As Shape
Dim i As Long
Dim iMax As Long
Dim cw As String
Application.ScreenUpdating = False
iMax = Cells(Rows.Count, "C").End(xlUp).Row
For i = 1 To Sheets.Count
If Me.Name <> Sheets(i).Name Then
With Sheets(i)
.Activate
For Each S In .Shapes
S.Select
cw = Selection.Formula
If cw <> "" Then
If 0 < InStr(cw, "#REF!") Then
S.Delete
Else
Range(cw).Offset(, 6) = S.Name 'G列に名前を待避
Range(cw).Offset(, 7) = .Name
End If
End If
Next
End With
End If
Next i
Me.Activate
Sort.SortFields.Clear
Sort.SortFields.Add Key:=Range("C1:C" & iMax), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With Me.Sort
.SetRange Range("A1:H" & iMax)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
For i = 2 To iMax
If Me.Cells(i, "G").Value <> "" Then
Sheets(Me.Cells(i, "H").Value).Activate
Sheets(Me.Cells(i, "H").Value).Shapes(Me.Cells(i, "G").Value).Select
Selection.Formula = "=" & Me.Name & "!A" & i
End If
Next i
Me.Activate
Me.Columns("G:H").ClearContents
Application.ScreenUpdating = True
End Sub
(???) 2015/02/26(木) 17:43
>A2のNO.の1をカメラ機能で地図に貼り付け この時、直接A列の値を見るのではなく、どこかあいた場所(G1とか)に =IF(COUNTIF($A:$A,COLUMN(A1)),COLUMN(A1),"") こんな式を入れて 列方向にフィルドラッグ。
G列を先頭(「1」)にして、A列に値がある場合はそのNOが表示されます。
これらのセルを、カメラ機能で地図に貼りつけてはどうでしょう。
データを消した場合、地図上の表示は消えますが 図形は残りますので 必要であれば手作業で削除してもらうことになりますが。 (HANA) 2015/02/27(金) 08:22
色々試してみてました。
結局、ハイパーリンクとカメラ機能を使うことで要望に応えられる物がどうにか出来ました。
マクロはやっぱり無理です〜〜
ありがとうございました。
(YASUMATU) 2015/03/19(木) 14:06
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.