編集部イチオシ

お題:魚の数を数えろ!

お題:魚の数を数えろ!の答え合わせ。みんなはどんなコードを書いた???
13
ペンギン屋@技術とVBA好き。 @penguincomcom

プログラミングで解決してね!!❤️ お題:魚の数を数えろ! / 鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵 \ さあ何が何匹いるでしょう?? ヒント:鯵(あじ)、鯖(さば)しかいません。 #VBA #つながりたい #VBA仲間募集 #今日の積み上げ #プログラミング初心者 #駆け出しエンジニアと繋がりたい

2020-01-28 07:44:00
としじ @toshi81350036

うーん、dictionary 使うのがスマートかなあ? 色んな書き方ありそう! twitter.com/penguincomcom/…

2020-01-28 21:48:22
はけた@できるExcel2021 @excelspeedup

決め打ち系。 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
空腹おやじ @Z1000R_LR

@excelspeedup 全く同じ方法を投稿しようとしていましたw あまりに同じで、目を疑いました。 s$ = "鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵" Debug.Print "鯵 :" & Len(s$) - Len(Replace(s$, "鯵", "")) Debug.Print "鯖:" & Len(s$) - Len(Replace(s$, "鯖", ""))

2020-01-28 22:23:17
はけた@できるExcel2021 @excelspeedup

決め打ちじゃない系。再帰型。 一気にソースが長くなりました。 pic.twitter.com/g9ymrtiwGK

2020-01-28 22:28:25
拡大
はけた@できるExcel2021 @excelspeedup

@Z1000R_LR エクセル関数なら、よくやる形ですからね。 まあ、本気で書くなら、一番きれいなのは、やっぱりDictionaryですかね?

2020-01-28 22:30:28
はけた@できるExcel2021 @excelspeedup

@penguincomcom いえいえ。 こちらこそ、ありがとうございます!

2020-01-28 22:54:23
reime @_reime

Dictionary以外で解答したい……。 twitter.com/penguincomcom/…

2020-01-28 23:13:52
xb @xbtomoki

ForNextでmid使って、 1セル1文字に分けて、 配列数式で鯵と鯖を数える twitter.com/penguincomcom/…

2020-01-28 23:14:06
ほえほえ@スプシマン @hoehoe1234

@_reime だね。Dictつかったらこの問題、負けな気がするわw。

2020-01-28 23:16:58
reime @_reime

@hoehoe1234 かといって、エレガントな解答も思いつかないです……

2020-01-28 23:20:45
reime @_reime

長いし、決め打ちだし、全然エレガントじゃないな……。 pic.twitter.com/IwE6tAzx6d

2020-01-28 23:27:22
拡大
はけた@できるExcel2021 @excelspeedup

@Z1000R_LR @_reime @hoehoe1234 文字列を1文字ずつの配列に変形できたら。 Filter+UBoundで行けるっぽいんですけど。 手軽に配列化する手段が思い浮かびません。

2020-01-28 23:38:10
空腹おやじ @Z1000R_LR

@excelspeedup @_reime @hoehoe1234 Byte配列なら、簡単に入りますけど 1文字2要素になってしまいます。 Dim b() As Byte b = "鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵鯖鯵"

2020-01-28 23:45:22
はけた@できるExcel2021 @excelspeedup

@penguincomcom そうですね。 長いといえば長いですが。 ムダもないですし平易なので、当然アリだと思います。

2020-01-28 23:49:36
としじ @toshi81350036

こういうカウント系は決め打ちなら 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
ペンギン屋@技術とVBA好き。 @penguincomcom

@excelspeedup ちなみに用意してた解答例がこちらです 長いんですよねー(笑) pic.twitter.com/k7zaqXZbUc

2020-01-28 23:03:57
reime @_reime

一部はけたさんのパクりだけど←、これなんかどう? pic.twitter.com/9GpjXQeVqQ

2020-01-29 00:27:18
拡大
ちゅん🐤 @KotorinChunChun

@yuuboku >dic.Keys()(i) & ":" & dic(dic.Keys()(i)) って途轍もない書き方ですね💦初めて見ました。 遅延バインディングだとカッコカッコになるのか。 Forカウンタで回すために&データ量が小さいからこう書いたのだと思いますが、めっちゃロスが大きいのはご存知・・・ですよね?一応。

2020-01-29 00:30:04
ちゅん🐤 @KotorinChunChun

@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
拡大
遊牧家族/yuuboku @yuuboku

@KotorinChunChun なんかパフォーマンスよりもコードの短さで競っている雰囲気だったので、そちらを優先しました。

2020-01-29 07:08:52
ペンギン屋@技術とVBA好き。 @penguincomcom

お題:魚の数を数えろ! の答えの例はたぶん月曜日につぶやきます。 よかった見てください!! 私よりキレイなコードもたくさんあります(笑)👍

2020-01-29 18:25:59