- penguincomcom
- 2601
- 13
- 0
- 0
プログラミングで解決してね!!❤️ お題:魚の数を数えろ! / 鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵 \ さあ何が何匹いるでしょう?? ヒント:鯵(あじ)、鯖(さば)しかいません。 #VBA #つながりたい #VBA仲間募集 #今日の積み上げ #プログラミング初心者 #駆け出しエンジニアと繋がりたい
2020-01-28 07:44:00うーん、dictionary 使うのがスマートかなあ? 色んな書き方ありそう! twitter.com/penguincomcom/…
2020-01-28 21:48:22決め打ち系。 Sub test() Dim Fish Fish = "鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵" Debug.Print "鯖:" & Len(Fish) - Len(Replace(Fish, "鯖", "")) Debug.Print "鯵:" & Len(Fish) - Len(Replace(Fish, "鯵", "")) End Sub twitter.com/penguincomcom/…
2020-01-28 22:18:28@excelspeedup 全く同じ方法を投稿しようとしていましたw あまりに同じで、目を疑いました。 s$ = "鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵" Debug.Print "鯵 :" & Len(s$) - Len(Replace(s$, "鯵", "")) Debug.Print "鯖:" & Len(s$) - Len(Replace(s$, "鯖", ""))
2020-01-28 22:23:17決め打ちじゃない系。再帰型。 一気にソースが長くなりました。 pic.twitter.com/g9ymrtiwGK
2020-01-28 22:28:25@Z1000R_LR エクセル関数なら、よくやる形ですからね。 まあ、本気で書くなら、一番きれいなのは、やっぱりDictionaryですかね?
2020-01-28 22:30:28ForNextでmid使って、 1セル1文字に分けて、 配列数式で鯵と鯖を数える twitter.com/penguincomcom/…
2020-01-28 23:14:06文字の種類がわからなくても出せるやつ twitter.com/penguincomcom/… pic.twitter.com/9g5HgNKNCQ
2020-01-28 23:24:29@Z1000R_LR @_reime @hoehoe1234 文字列を1文字ずつの配列に変形できたら。 Filter+UBoundで行けるっぽいんですけど。 手軽に配列化する手段が思い浮かびません。
2020-01-28 23:38:10@excelspeedup @_reime @hoehoe1234 Byte配列なら、簡単に入りますけど 1文字2要素になってしまいます。 Dim b() As Byte b = "鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵"
2020-01-28 23:45:22@penguincomcom そうですね。 長いといえば長いですが。 ムダもないですし平易なので、当然アリだと思います。
2020-01-28 23:49:36こういうカウント系は決め打ちなら type 使うのも良さげかなー。セルの色とか数えたい時にこうする時ある。 type tCount 鯵 as long 鯖 ad long end type sub main() dim cnt as tCount cnt.鯵 = cnt.鯵 + 1 end sub みたいな。まあ type 使う局面あんまないけども。 twitter.com/penguincomcom/…
2020-01-29 00:09:12@excelspeedup ちなみに用意してた解答例がこちらです 長いんですよねー(笑) pic.twitter.com/k7zaqXZbUc
2020-01-28 23:03:57@yuuboku >dic.Keys()(i) & ":" & dic(dic.Keys()(i)) って途轍もない書き方ですね💦初めて見ました。 遅延バインディングだとカッコカッコになるのか。 Forカウンタで回すために&データ量が小さいからこう書いたのだと思いますが、めっちゃロスが大きいのはご存知・・・ですよね?一応。
2020-01-29 00:30:04@Z1000R_LR @excelspeedup @_reime @hoehoe1234 遅ればせながら私も参戦。 そして呼ばれた気がする。 Sub test() Dim arr arr = Evaluate("TRANSPOSE(MID(""" & Fish & """,ROW(A1:A" & Len(Fish) & "),1))") Debug.Print "鯵:" & UBound(Filter(arr, "鯵")) + 1 Debug.Print "鯖:" & UBound(Filter(arr, "鯖")) + 1 End Sub pic.twitter.com/ghiIFY4p2e
2020-01-29 00:46:58@KotorinChunChun なんかパフォーマンスよりもコードの短さで競っている雰囲気だったので、そちらを優先しました。
2020-01-29 07:08:52お題:魚の数を数えろ! の答えの例はたぶん月曜日につぶやきます。 よかった見てください!! 私よりキレイなコードもたくさんあります(笑)👍
2020-01-29 18:25:59