[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『共通で無い数列の抜き出し』(かれん)
はじめまして。
お世話になります。
以下の様な数列を抜き出すマクロを使って頂けないのでしょうか?
1⃣「1123」「4155」「2143」「2241」
2⃣「3211」「5144」「2578」「2142」
結果2143.2578
OS Windows10
< 使用 Excel:Excel2016、使用 OS:unknown >
[[20200714072348]] 『共通ではない数字の抜き出し』(ゴン太)
(通りすがり) 2020/07/14(火) 08:43
Sub test2()
Dim i As Long
Dim cw As String
With CreateObject("System.Collections.ArrayList")
For i = 0 To 3
.Add Array("1123", "4155", "2143", "2241")(i)
Next i
For i = 0 To 3
cw = Array("3211", "5144", "2578", "2142")(i)
If .Contains(cw) = True Then
.Remove cw
Else
.Add cw
End If
Next i
MsgBox .Item(2) & vbLf & .Item(6), vbInformation
End With
End Sub
(???) 2020/07/14(火) 09:40
Dim x As String
Dim y As String
Dim dic As Object
Dim ar As Variant
Dim ar1 As Variant
Set dic = CreateObject("Scripting.Dictionary")
x = "「1123」「4155」「2143」「2241」"
y = "「3211」「5144」「2578」「2142」"
For Each ar In Array(x, y)
For Each ar1 In Split(ar, "「")
dic(conv(Val(ar1))) = dic(conv(Val(ar1))) + 1
Next ar1
Next ar
For Each ar In Array(x, y)
For Each ar1 In Split(ar, "「")
If dic(conv(Val(ar1))) = 1 Then MsgBox Val(ar1)
Next ar1
Next ar
End Sub
Function conv(arg)
Dim i As Long
For i = 0 To 9
If InStr(arg, i) > 0 Then conv = conv & i
Next i
End Function
(mm) 2020/07/14(火) 10:57
こんにちは ^^ 回し好きのおじさんコード。。。^^;
Option Explicit
Sub OneInstanceMain()
Dim i&, n(), v, j&, k&, x, vv, f As Boolean
n = Array(1123, 4155, 2143, 2241, 3211, 5144, 2578, 2142)
For Each v In n
For i = 1 To Len(v)
x = Mid(CStr(v), i, 1)
For k = 1 To Len(v)
If x = Mid(CStr(v), k, 1) Then
j = j + 1
End If
Next
If j > 1 Then
f = True
End If
j = 0
Next
If Not f Then
vv = vv & v & Chr(13)
End If
f = False
Next
MsgBox vv
End Sub
(隠居じーさん) 2020/07/14(火) 11:11
Sub test3()
Dim i As Long
Dim cw As String
Dim cw1 As String
Dim cw2 As String
With CreateObject("Scripting.Dictionary")
For i = 0 To 3
cw1 = Array("1123", "4155", "2143", "2241")(i)
cw2 = fSort(cw1)
.Add cw2, cw1
Next i
For i = 0 To 3
cw1 = Array("3211", "5144", "2578", "2142")(i)
cw2 = fSort(cw1)
If .Exists(cw2) = True Then
.Remove cw2
Else
.Add cw2, cw1
End If
Next i
For i = 0 To .Count - 1
cw = cw & " " & .Items()(i)
Next i
MsgBox Replace(Trim(cw), " ", vbLf), vbInformation
End With
End Sub
Function fSort(cOrg As Variant) As String
Dim i As Long
With CreateObject("System.Collections.ArrayList")
For i = 1 To Len(cOrg)
.Add Mid(cOrg, i, 1)
Next i
.Sort
fSort = Join(.toarray, "")
End With
End Function
(???) 2020/07/14(火) 12:02
済? [[20200714072348]] 『共通ではない数字の抜き出し』(ゴン太) [[20200714081508]] 『共通で無い数列の抜き出し』(かれん) [[20200714123210]] 『連続した4桁の数字のペアの違い』(為五郎) [[20200714160300]] 『4桁の抽出』(為五郎)
現行トピック? [[20200714163259]] 『固定した4桁の数字では意味がありません。』(為五郎)
(偽五郎) 2020/07/14(火) 22:36
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.