
VBA処理追加
こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてください。
前回回答いただいた方追加で申し訳ないのですが
上の画像(元データ)の黄色のセルの文字を下の画像(結果)のように名前に関連させて表示させたいのですがどうすればよろしいでしょうか?
ご教示お願い致します。
Option Explicit
Public Sub ユークリッド距離順()
Const BA1 As Long = 1000 '表縦の倍率
Const BA2 As Long = 100 '表横の倍率
Const BA3 As Long = 10 '表高の倍率
Const BA4 As Long = 1000 '裏縦の倍率
Const BA5 As Long = 100 '裏横の倍率
Const BA6 As Long = 10 '裏高の倍率
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim dicT As Object
Dim maxrow1 As Long
Dim namerow As Long
Dim wrow As Long
Dim row2 As Long
Dim name As String
Dim d1 As Long, d2 As Long, d11 As Long, d12 As Long, d13 As Long, d21 As Long, d22 As Long, d23 As Long
Set dicT = CreateObject("Scripting.Dictionary") ' 連想配列の定義
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
maxrow1 = sh1.Cells(Rows.Count, 1).End(xlUp).Row '
If name = "" Then Exit Sub
sh2.Rows("5:" & Rows.Count).ClearContents '5行目以降クリア
namerow = 0
For wrow = 3 To maxrow1
If name = sh1.Cells(wrow, 1).Value Then
namerow = wrow
End If
Next
If namerow = 0 Then
MsgBox (name & "が存在しません")
Exit Sub
End If
'ユークリッド距離の計算
row2 = 5
For wrow = 3 To maxrow1
If wrow <> namerow Then
sh2.Cells(row2, 1).Value = sh1.Cells(wrow, 1).Value '表名前
sh2.Cells(row2, 4).Value = sh1.Cells(wrow, 1).Value '裏名前
d11 = (sh1.Cells(wrow, 2).Value - sh1.Cells(namerow, 2).Value)
d12 = (sh1.Cells(wrow, 3).Value - sh1.Cells(namerow, 3).Value)
d13 = (sh1.Cells(wrow, 4).Value - sh1.Cells(namerow, 4).Value)
d21 = (sh1.Cells(wrow, 5).Value - sh1.Cells(namerow, 5).Value)
d22 = (sh1.Cells(wrow, 6).Value - sh1.Cells(namerow, 6).Value)
d23 = (sh1.Cells(wrow, 7).Value - sh1.Cells(namerow, 7).Value)
d1 = d11 * d11 * BA1 + d12 * d12 * BA2 + d13 * d13 * BA3
d2 = d21 * d21 * BA4 + d22 * d22 * BA5 + d23 * d23 * BA6
sh2.Cells(row2, 2).Value = d1 '表距離
sh2.Cells(row2, 5).Value = d2 '裏距離
row2 = row2 + 1
End If
Next
'ソート
sh2.Range("A5:B" & row2 - 1).Sort key1:=sh2.Range("B5"), Order1:=xlAscending, Header:=xlNo
sh2.Range("D5:E" & row2 - 1).Sort key1:=sh2.Range("E5"), Order1:=xlAscending, Header:=xlNo
sh2.Rows("10:" & Rows.Count).ClearContents '10行目以降クリア
MsgBox ("完了")
End Sub

No.1ベストアンサー
- 回答日時:
No.2
- 回答日時:
>追加で申し訳ございません。
つぎつぎと、仕様の追加が入ってくると、きりがありません。
もし、ほかにも追加があるのなら、そのついかも含めて、質問を追記してください。
>値が入っている所に"ー"(ハイフン)などの特定の物を削除してから計算させたいときはどうしたらよろしいでしょうか?よろしくお願い致します。
ハイフンを取り除いてから計算ということになります。
どのようにハイフン等が入っているのかが判りません。
ハイフン等の入っている例(すべての例をあげてください。)と
それをとりのぞいた結果を提示してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
VBA チェックボックスの設定について
Visual Basic(VBA)
-
Excel VBAでAA(BBB) → BBB.AA に置換したい
Visual Basic(VBA)
-
初めてマクロを入力しますが、テキストとおりに入力したのに構文エラーです。修正を教えてください。
Visual Basic(VBA)
-
-
4
VBAコードで質問があります
Visual Basic(VBA)
-
5
エクセルVBA コードが同じでもファイルによって処理速度が大きく変わるのはなぜ
Visual Basic(VBA)
-
6
マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」
Visual Basic(VBA)
-
7
vbaの計算 if elseと範囲について
Visual Basic(VBA)
-
8
VBAで重複データを確認したい
Visual Basic(VBA)
-
9
【至急】 当方初心者です。 マクロについて知恵をお貸しください。 ★したい動作 ①リストE列2行目か
Visual Basic(VBA)
-
10
ExcelVBA 日付変更
Visual Basic(VBA)
-
11
VLOOKUP が機能しない、その原因は何 ?
Excel(エクセル)
-
12
VBAチェックボックスで有効無効切り替えできるように
Visual Basic(VBA)
-
13
VBAで質問があります
Visual Basic(VBA)
-
14
順列をランダムに発生するプログラム
Visual Basic(VBA)
-
15
VBAについて教えてください
Visual Basic(VBA)
-
16
Excel VBAのデバッグ
Visual Basic(VBA)
-
17
なぜこんな初歩的なVBAのIf文でエラーか発生して使えないのか、全く理解出来ません。誰か助けてくださ
Visual Basic(VBA)
-
18
初めての質問。
Excel(エクセル)
-
19
VBAで実行時エラー'424' オブジェクトが必要ですと出る
Visual Basic(VBA)
-
20
VBAのことで質問があります
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
DBで検索結果に該当するデータ...
-
5
アラートでyes noを作りたいです。
-
6
SELECT結果から動的にコンボボ...
-
7
MYSQL、PHP. データが入ってい...
-
8
dbに登録したデータをphpのプル...
-
9
php ログインフォーム作成
-
10
MySQLでデータベースにデータin...
-
11
sqlから多次元配列に要素を格納...
-
12
テーブルに入っているデータと...
-
13
VBAをつかってクエリの情報を抽...
-
14
Accessのテーブルへ複数の主キ...
-
15
php データ削除
-
16
ResultSetインターフェイスでの...
-
17
C# で発生したException.Messag...
-
18
テキストボックスに入れた内容...
-
19
zend(phpフレームワーク)でトラ...
-
20
エラー3011
おすすめ情報
公式facebook
公式twitter
追加で申し訳ございません。
値が入っている所に"ー"(ハイフン)などの特定の物を削除してから計算させたいときはどうしたらよろしいでしょうか?よろしくお願い致します。