!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑2行に減ってるけど、同じ内容を3行に増やして貼り付けること
ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
Excel VBA 質問スレ Part75
https://mevius.5ch.net/test/read.cgi/tech/1644384272/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part76
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ブーイモ MMff-XZ6m)
2022/05/01(日) 02:23:41.78ID:2t63WK/jM979デフォルトの名無しさん (ワンミングク MMa3-p0Nn)
2022/07/15(金) 02:36:26.14ID:WFW52ORLM いつものあいつだぞ
980デフォルトの名無しさん (ワッチョイ fdce-TkQT)
2022/07/15(金) 06:01:47.46ID:mFCZ39Ni0 最小限の定義が不明
981デフォルトの名無しさん (スフッ Sd43-TkQT)
2022/07/15(金) 07:03:30.04ID:ymO8mssad Sub Main()
Dim a As String
Dim i As Long, j As Long
Dim last As Long
last = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To last
a = Cells(i, 1)
For j = 1 To last
If i <> j Then a = CutWord(a, Cells(j, 1))
Next j
Cells(i, 2) = a
Next i
End Sub
Function CutWord(a As String, b As String) As String
Dim aa() As String
Dim bb() As String
Dim c As String
Dim i As Long, j As Long
aa = Split(a, " ")
bb = Split(b, " ")
For i = LBound(aa) To UBound(aa)
For j = LBound(bb) To UBound(bb)
If aa(i) = bb(j) Then Exit For
Next j
If j > UBound(bb) Then c = c & aa(i) & " "
Next i
CutWord = Trim(c)
End Function
Dim a As String
Dim i As Long, j As Long
Dim last As Long
last = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To last
a = Cells(i, 1)
For j = 1 To last
If i <> j Then a = CutWord(a, Cells(j, 1))
Next j
Cells(i, 2) = a
Next i
End Sub
Function CutWord(a As String, b As String) As String
Dim aa() As String
Dim bb() As String
Dim c As String
Dim i As Long, j As Long
aa = Split(a, " ")
bb = Split(b, " ")
For i = LBound(aa) To UBound(aa)
For j = LBound(bb) To UBound(bb)
If aa(i) = bb(j) Then Exit For
Next j
If j > UBound(bb) Then c = c & aa(i) & " "
Next i
CutWord = Trim(c)
End Function
982デフォルトの名無しさん (スッププ Sd43-jVDF)
2022/07/15(金) 07:30:27.66ID:KClfAjojd 俺のコードをいじってくれてうれしいが
Valueとったり改行いじったりしてるだけで行数減らしてるだけなんて結局マイルールのこだわりを主張してるだけなんだよな
こんな方法あるぜってのが見たいわ
>>978
6が「DOG」になる最小数という意味が不明
先頭の単語を返すだけならCutWordの最後でaとcが同じ値になったらaa(LBound(aa))を返すようにすればいいのでは
Valueとったり改行いじったりしてるだけで行数減らしてるだけなんて結局マイルールのこだわりを主張してるだけなんだよな
こんな方法あるぜってのが見たいわ
>>978
6が「DOG」になる最小数という意味が不明
先頭の単語を返すだけならCutWordの最後でaとcが同じ値になったらaa(LBound(aa))を返すようにすればいいのでは
983デフォルトの名無しさん (アウアウウー Sa09-/dRU)
2022/07/15(金) 07:47:41.51ID:9RgIX2Zba value取るのは改悪で草
984デフォルトの名無しさん (アウアウウー Sa09-DHlW)
2022/07/15(金) 08:08:12.42ID:DqNyEc18a >>964
複数回現れる単語を削除すればいいのか?
Sub X964()
Dim Sheet As Worksheet: Set Sheet = ...
Dim Dictionary As Object: Set Dictionary = CreateObject("Scripting.Dictionary")
Dim LastRow As Long: LastRow = SheetSheet.Cells(Rows.Count, "A").End(xlUp).Row
Dim Row As Long
For Row = 1 To LastRow
Dim Word As Variant
For Each Word In Split(Sheet.Cells(Row, "A").Value, " ")
If Dictionary.Exists(Word) Then
Dictionary(Word) = Dictionary(Word) + 1
Else
Dictionary.Add Word, 1
End If
Next
Next
For Row = 1 To LastRow
Dim Uniques As String: Uniques = ""
For Each Word In Split(Sheet.Cells(Row, "A").Value, " ")
If 1 < Dictionary(Word) Then
If Uniques = "" Then
Uniques = Word
Else
Uniques = Uniques & " " & Word
End If
End If
Next
Sheet.Cells(Row, "B").Value = Uniques
Next
End Sub
複数回現れる単語を削除すればいいのか?
Sub X964()
Dim Sheet As Worksheet: Set Sheet = ...
Dim Dictionary As Object: Set Dictionary = CreateObject("Scripting.Dictionary")
Dim LastRow As Long: LastRow = SheetSheet.Cells(Rows.Count, "A").End(xlUp).Row
Dim Row As Long
For Row = 1 To LastRow
Dim Word As Variant
For Each Word In Split(Sheet.Cells(Row, "A").Value, " ")
If Dictionary.Exists(Word) Then
Dictionary(Word) = Dictionary(Word) + 1
Else
Dictionary.Add Word, 1
End If
Next
Next
For Row = 1 To LastRow
Dim Uniques As String: Uniques = ""
For Each Word In Split(Sheet.Cells(Row, "A").Value, " ")
If 1 < Dictionary(Word) Then
If Uniques = "" Then
Uniques = Word
Else
Uniques = Uniques & " " & Word
End If
End If
Next
Sheet.Cells(Row, "B").Value = Uniques
Next
End Sub
985デフォルトの名無しさん (アウアウウー Sa09-DHlW)
2022/07/15(金) 08:10:06.84ID:DqNyEc18a >>973
気持ち悪いとは思わないけどちょっと非効率かなとは思う
気持ち悪いとは思わないけどちょっと非効率かなとは思う
986デフォルトの名無しさん (ワッチョイ cbda-VQN5)
2022/07/15(金) 08:49:49.31ID:pxeFAKZo0 そのコードカッケェ!
987デフォルトの名無しさん (スフッ Sd43-TkQT)
2022/07/15(金) 09:42:45.28ID:D6klNH8hd Sub sample3()
Dim r As Long
Dim z As Long '最終行
Dim s As String '全データ
Dim a() As String '単語リスト
Dim i As Long
z = Cells(Rows.Count, 1).End(xlUp).Row
For r = 1 To z
Cells(r, 2) = Cells(r, 1)
s = s & Cells(r, 1) & " "
Next r
a = Split(s, " ")
For i = LBound(a) To UBound(a)
If Len(s) - Len(a(i)) > Len(Replace(s, a(i), "")) Then '2回以上出てくるか
For r = 1 To z
Cells(r, 2) = Trim(Replace(Cells(r, 2), a(i), "")) '各セルから削除
Next r
End If
Next i
End Sub
Dim r As Long
Dim z As Long '最終行
Dim s As String '全データ
Dim a() As String '単語リスト
Dim i As Long
z = Cells(Rows.Count, 1).End(xlUp).Row
For r = 1 To z
Cells(r, 2) = Cells(r, 1)
s = s & Cells(r, 1) & " "
Next r
a = Split(s, " ")
For i = LBound(a) To UBound(a)
If Len(s) - Len(a(i)) > Len(Replace(s, a(i), "")) Then '2回以上出てくるか
For r = 1 To z
Cells(r, 2) = Trim(Replace(Cells(r, 2), a(i), "")) '各セルから削除
Next r
End If
Next i
End Sub
988デフォルトの名無しさん (アウアウウー Sa09-jVDF)
2022/07/15(金) 09:47:20.06ID:kfkt8EAfa 効率どうこう言う前に重複した単語がでるような関数はどうかと思うのw
989デフォルトの名無しさん (スプッッ Sd43-iSZE)
2022/07/15(金) 13:22:47.81ID:kd+ZBNkRd ここでRuby馬鹿がRubyではこうなるとか書くのは見えている
990デフォルトの名無しさん (ワッチョイ 4bda-TkQT)
2022/07/15(金) 19:00:37.71ID:f/pTHFXb0 オレンジ色のオレンジはどうなの?
991デフォルトの名無しさん (ワッチョイ cbda-VQN5)
2022/07/15(金) 19:14:37.65ID:pxeFAKZo0 どんなに良コード書いても難癖付けられるのがこのスレ
992デフォルトの名無しさん (ワッチョイ 05da-k1yI)
2022/07/16(土) 02:37:29.28ID:hVvvoOFI0 userformをshowした直後にunloadするとexcelが落ちるのは何とかならんかのぉ
hideじゃだめなんじゃunloadじゃないと
hideじゃだめなんじゃunloadじゃないと
993デフォルトの名無しさん (ワッチョイ 9d5f-GsVe)
2022/07/16(土) 07:52:34.81ID:1SMMBEmo0 UserForm1.Show vbModeless
Unload UserForm1
って意味なら、別に落ちなかったけど
Unload UserForm1
って意味なら、別に落ちなかったけど
994デフォルトの名無しさん (ワッチョイ 5a42-PUxa)
2022/07/16(土) 08:52:29.38ID:eHBMNsDF0 逆になんでhideじゃダメなの
995デフォルトの名無しさん (ワッチョイ 912f-cIkS)
2022/07/16(土) 13:26:34.40ID:NLVpHfZz0 とりあえずEXCELが落ちるっていうコードと環境出せ
話はそれからだ
話はそれからだ
996デフォルトの名無しさん (ワッチョイ 762c-lpz1)
2022/07/16(土) 18:00:44.38ID:2WLM14wy0 >>978
Ruby で作った
require "csv"
input_str = <<"EOT"
RED,BLUE,APPLE
RED,BLUE,BANANA
RED,BLUE,GREEN,ORANGE
RED,BLUE,YELLOW,WHITE,GRAPE
RED,BLUE,WHITE,CHERRY
DOG,CAT,RABBIT,COW,BEAR
EOT
csv = CSV.new( input_str )
input_ary = csv.read # 2次元配列
# 各単語の出現回数を数える。Hash の初期値は、0
hash = input_ary.each_with_object( Hash.new( 0 ) ) { |row, hash|
row.each { |word| hash[ word ] += 1 }
}
# 出現回数が2以上の単語を削除する
input_ary.map! { |row|
row.delete_if { |word| hash[ word ] >= 2 }
row
}
# 2次元配列を、CSV 文字列に変換する
csv_str = input_ary.map( &:to_csv ).join
puts csv_str
Ruby で作った
require "csv"
input_str = <<"EOT"
RED,BLUE,APPLE
RED,BLUE,BANANA
RED,BLUE,GREEN,ORANGE
RED,BLUE,YELLOW,WHITE,GRAPE
RED,BLUE,WHITE,CHERRY
DOG,CAT,RABBIT,COW,BEAR
EOT
csv = CSV.new( input_str )
input_ary = csv.read # 2次元配列
# 各単語の出現回数を数える。Hash の初期値は、0
hash = input_ary.each_with_object( Hash.new( 0 ) ) { |row, hash|
row.each { |word| hash[ word ] += 1 }
}
# 出現回数が2以上の単語を削除する
input_ary.map! { |row|
row.delete_if { |word| hash[ word ] >= 2 }
row
}
# 2次元配列を、CSV 文字列に変換する
csv_str = input_ary.map( &:to_csv ).join
puts csv_str
997デフォルトの名無しさん (アウアウウー Sa39-eHP4)
2022/07/16(土) 19:45:04.74ID:vYu+PcKIa >>996
廃止決定した言語じゃん
廃止決定した言語じゃん
998デフォルトの名無しさん (ワッチョイ 5ada-XFSu)
2022/07/17(日) 00:22:00.69ID:lEW2LcQY0 あんたら色んな言語を習得していてエリートなんだな?
5ちゃんねるなんかにいてもったいねーわ
5ちゃんねるなんかにいてもったいねーわ
999デフォルトの名無しさん (ワッチョイ 05da-k1yI)
2022/07/17(日) 02:44:22.32ID:rPHWMq+g01000デフォルトの名無しさん (ワッチョイ 5a63-4HbS)
2022/07/17(日) 04:50:23.78ID:fLi6s9i70 こいつの書くコード、rubyとしてもクソコードなのがほんとひどい
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 77日 2時間 26分 42秒
新しいスレッドを立ててください。
life time: 77日 2時間 26分 42秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 「日本はドイツと違い反省せず」…中国外相、独外相に対日批判 台湾問題で理解求める [少考さん★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」 [ぐれ★]
- 【警視庁】走行中の電車で女性に露出した下半身押しつけたか 無職の男(46)逮捕「チャンスがあればいつでもやる」 [nita★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★6 [七波羅探題★]
- 【苺ましまろ】立民衆院議員、人気漫画の水着少女画像を「醜悪」タイ人少女の性搾取事件と関連付け…党内で反発 [少考さん★]
- 「残業キャンセル界隈」若者が増加?「職務放棄」との批判も…“定時退社の権利”どこまで通用するか [七波羅探題★]
- 高市政権「かけてもつながらない。機能していない」防衛当局間のホットライン機能せず [834922174]
- 【高市悲報】中国軍「公海で空母の発着訓練するって事前通告したのになんで自衛隊機は急接近してきたんだ…?」中国軍困惑★2 [931948549]
- あたしゃやだよ
- 【高市悲報】中国軍「公海で空母の発着訓練するって事前通告したのになんで自衛隊機は急接近してきたんだ…?」中国軍困惑 [931948549]
- 30過ぎた大人おじさんが大学生(昔)のままのファッションをする「おじさんキッズコーデ」、炎上して問題視される。 [153490809]
- 【朗報】ケンモジサンが買うふりかけ、二択に絞られる [394133584]
