[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『地図上に?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.