!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付ける
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part68
https://mevius.5ch.net/test/read.cgi/tech/1598756127/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part69
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん (ワッチョイ 3fad-qZ/b)
2020/12/13(日) 00:22:23.67ID:Fd224klc0866デフォルトの名無しさん (ワッチョイ 9f4f-809O)
2021/03/08(月) 21:12:54.65ID:ub+dBY/l0 >>865
半分正解
半分正解
867デフォルトの名無しさん (ワッチョイ 9f4f-809O)
2021/03/08(月) 21:17:42.97ID:ub+dBY/l0 「VBEで作ったものはマクロ」
これは合ってる
「VBAとマクロは同じことを言っている」
マクロにはVBAtで作られたもの以外に
4.0マクロと言うものが有ってだな・・・
まぁ、あまり気にしなくても良いかもしんないけど
これは合ってる
「VBAとマクロは同じことを言っている」
マクロにはVBAtで作られたもの以外に
4.0マクロと言うものが有ってだな・・・
まぁ、あまり気にしなくても良いかもしんないけど
868デフォルトの名無しさん (ワッチョイ bb61-Ff7g)
2021/03/08(月) 21:34:20.02ID:B96zl28N0 マクロ
スクリプト
関数
これらはプログラムのひとかたまり
厳密に区別しずらいけどそれぞれ
ニュアンスの違いはある
スクリプト
関数
これらはプログラムのひとかたまり
厳密に区別しずらいけどそれぞれ
ニュアンスの違いはある
869デフォルトの名無しさん (アウアウクー MM4f-YFKC)
2021/03/08(月) 21:58:36.85ID:U/cFdqiVM >>865
VBEはエディタ。Excelの場合はVBAとマクロは同じ意味で使われる。ExcelマクロがExcel VBAのコードで表現されるため。
VBEはエディタ。Excelの場合はVBAとマクロは同じ意味で使われる。ExcelマクロがExcel VBAのコードで表現されるため。
870デフォルトの名無しさん (ワッチョイ 3b7c-Ff7g)
2021/03/08(月) 22:10:13.99ID:Awv++sSE0 >>867
なんかいろいろ違うぞ
なんかいろいろ違うぞ
871デフォルトの名無しさん (ワッチョイ 9f7f-kH9i)
2021/03/08(月) 22:16:46.29ID:Dj6nESKZ0 関数は全然違うだろwww
872デフォルトの名無しさん (ワッチョイ ab59-jKHH)
2021/03/08(月) 22:42:26.89ID:53ng3r6C0873デフォルトの名無しさん (ワッチョイ 4fdf-OKNI)
2021/03/08(月) 23:14:12.98ID:u4CRr3CF0 そういえばvbaをjsで書ける世界まだなんだっけ?
gasみたいな感じで書けないかな
gasみたいな感じで書けないかな
874デフォルトの名無しさん (ワッチョイ 9fe6-/obZ)
2021/03/08(月) 23:18:26.32ID:hUWITx/G0 WScriptのJScriptでExcel使えるだろ
875デフォルトの名無しさん (ラクッペペ MM7f-DxZS)
2021/03/09(火) 00:19:47.43ID:fLnH8jKyM876デフォルトの名無しさん (JP 0H8f-/obZ)
2021/03/09(火) 02:53:50.15ID:uNAjD4zcH 微妙に違う気がするなあ
VBAはプログラミング言語の名前(の略称)。単語と文法が書いてあるだけの辞書みたいなもん
その言語で書かれた物がマクロで、むしろ設計図はこっちが近い
VBEはマクロの作成を手助けするツール、紙と鉛筆って考え方はだいたい合ってる
で、マクロの中でも結果を一組だけ呼び出し元に返すように作られてるのが関数
VBAはプログラミング言語の名前(の略称)。単語と文法が書いてあるだけの辞書みたいなもん
その言語で書かれた物がマクロで、むしろ設計図はこっちが近い
VBEはマクロの作成を手助けするツール、紙と鉛筆って考え方はだいたい合ってる
で、マクロの中でも結果を一組だけ呼び出し元に返すように作られてるのが関数
877デフォルトの名無しさん (ワッチョイ 2bda-8+U4)
2021/03/09(火) 05:15:21.29ID:suvlK62N0 機能とワークシート関数とか全くわからん
操作なんてVBAで良いじゃん
周りでもそういった人いるしさ
操作なんてVBAで良いじゃん
周りでもそういった人いるしさ
878デフォルトの名無しさん (ワッチョイ 6bda-DxZS)
2021/03/09(火) 08:22:35.06ID:zXQo4RJq0 本来、Excelの操作の自動化を目的にしたVBAマクロなのに元の機能そのものが全く分からんとか本末転倒にも程がある
879デフォルトの名無しさん (アウアウウー Sa0f-fXuR)
2021/03/09(火) 10:45:46.13ID:pnwu5thka 作成依頼です
一定範囲内において、選択されたセルすべてに、書式設定で取り消し線を付けたいです
たとえば、D5からD20の範囲内で、そこ以外の範囲が選択されていた場合はエラーを返す
範囲内なら、選択されたセル(単一、複数、飛び石あり)すべてに、一括で取り消し線を追加
というような感じです
飛び石状態で複数が選択された場合に、上手く処理できなくて相談させていただきました
よろしくお願い致します
一定範囲内において、選択されたセルすべてに、書式設定で取り消し線を付けたいです
たとえば、D5からD20の範囲内で、そこ以外の範囲が選択されていた場合はエラーを返す
範囲内なら、選択されたセル(単一、複数、飛び石あり)すべてに、一括で取り消し線を追加
というような感じです
飛び石状態で複数が選択された場合に、上手く処理できなくて相談させていただきました
よろしくお願い致します
880デフォルトの名無しさん (ワッチョイ fb5f-R8lj)
2021/03/09(火) 11:04:35.36ID:oV9GYLDS0 >>879
そんな仕様のものを作ってはいけない
そんな仕様のものを作ってはいけない
881デフォルトの名無しさん (ワッチョイ 9f01-HLkV)
2021/03/09(火) 11:21:48.31ID:Nc9tdWjH0 >>879
選択範囲をまとめて見るんじゃなくて、選択されたセル一つ一つについて既定の範囲内にあるか条件判断をし、エラーかそうでないか
エラーでなく全てのセルが範囲内なら一つ一つのセルに取り消し線を追加
とすれば普通にできるでしょ
横着しようとしてるからいけないんじゃないの
選択範囲をまとめて見るんじゃなくて、選択されたセル一つ一つについて既定の範囲内にあるか条件判断をし、エラーかそうでないか
エラーでなく全てのセルが範囲内なら一つ一つのセルに取り消し線を追加
とすれば普通にできるでしょ
横着しようとしてるからいけないんじゃないの
882デフォルトの名無しさん (JP 0H8f-/obZ)
2021/03/09(火) 11:25:30.81ID:uNAjD4zcH VBEは赤ペン先生?全部じゃないけど間違いをすぐ教えてくれる
883デフォルトの名無しさん (ワッチョイ eb5f-87Tj)
2021/03/09(火) 11:58:31.47ID:zYh1VL3E0 >>879
お金ください
お金ください
884デフォルトの名無しさん (JP 0H8f-/obZ)
2021/03/09(火) 12:03:56.11ID:uNAjD4zcH >>879
For Eachでセルを1個ずつ処理するんだよ
For Each、セルアドレスチェック、1つでもD5-D20じゃなかったらエラー
エラーがなかったらもう一度For Each、各セルに取り消し線
みたいな流れ
For Eachでセルを1個ずつ処理するんだよ
For Each、セルアドレスチェック、1つでもD5-D20じゃなかったらエラー
エラーがなかったらもう一度For Each、各セルに取り消し線
みたいな流れ
885デフォルトの名無しさん (アウアウウー Sa0f-hRrZ)
2021/03/09(火) 12:09:52.12ID:4S2gbixUa ピボットグラフのスライサー内の選択を変えた時にマクロが動くようにしたいです
イメージ的にはワークシートイベントです
例︰スライサーの日付を変更時にグラフの色を塗る
選択変更の検知方法を教えてください
よろしくお願いします
イメージ的にはワークシートイベントです
例︰スライサーの日付を変更時にグラフの色を塗る
選択変更の検知方法を教えてください
よろしくお願いします
886デフォルトの名無しさん (ラクッペペ MM7f-gfXM)
2021/03/09(火) 12:25:42.94ID:t7O7P6i9M 外枠なら面倒だけど取り消し線なら簡単だ
887デフォルトの名無しさん (JP 0H8f-/obZ)
2021/03/09(火) 12:38:26.95ID:uNAjD4zcH 外枠でも大差ないと思う
Selectionの上下左右に罫線を引くだけ
Selectionの上下左右に罫線を引くだけ
888デフォルトの名無しさん (アウアウウー Sa0f-fXuR)
2021/03/09(火) 12:43:13.10ID:pnwu5thka889デフォルトの名無しさん (ワッチョイ 9b49-4pgk)
2021/03/09(火) 13:03:57.82ID:C5e26MY+0 いえいえ、自分でもっと勉強してくださいね
890デフォルトの名無しさん (ワッチョイ 9f01-u5b1)
2021/03/09(火) 16:16:21.91ID:1va3W7Si0 >>879
If Intersect(Selection, Range("D5:D20")).Count <> Selection.Count Then
MsgBox "エラー"
Else
Selection.Font.Strikethrough = True
End If
If Intersect(Selection, Range("D5:D20")).Count <> Selection.Count Then
MsgBox "エラー"
Else
Selection.Font.Strikethrough = True
End If
891デフォルトの名無しさん (ワッチョイ 2bda-8+U4)
2021/03/10(水) 00:11:15.88ID:seJ5KfaI0 だってさ、先輩がExcelなんか全部マクロで動かせば良いって言われたからさ。。。
ワークシートの関数とかそんなもん覚えなくて良いと言われたからさ。
だからVBAしか知らない。
今凄く関数とか機能を覚えるために苦労してる。
ワークシートの関数とかそんなもん覚えなくて良いと言われたからさ。
だからVBAしか知らない。
今凄く関数とか機能を覚えるために苦労してる。
892デフォルトの名無しさん (ワッチョイ 0fda-/obZ)
2021/03/10(水) 02:20:07.32ID:Mh5oeh7J0 >>891
無理してやる必要ないのに、何のために覚えるの?
無理してやる必要ないのに、何のために覚えるの?
893デフォルトの名無しさん (ワッチョイ 2bda-8+U4)
2021/03/10(水) 07:58:05.94ID:seJ5KfaI0 >>892
マクロだけでは遠回りだと気づいて
マクロだけでは遠回りだと気づいて
894デフォルトの名無しさん (ワッチョイ 9b63-xiWk)
2021/03/10(水) 08:18:24.93ID:afuwFvM40 vlookupはなんであんな変なインターフェースなんですか
895デフォルトの名無しさん (ブーイモ MM8f-IazI)
2021/03/10(水) 09:29:52.26ID:AjUIRLk9M ポーカーフェイスですよ
896デフォルトの名無しさん (ワッチョイ fb5f-R8lj)
2021/03/10(水) 10:14:53.26ID:B52MA1yl0 >>894
古いから
古いから
897デフォルトの名無しさん (アウアウウー Sa0f-W2tv)
2021/03/10(水) 14:59:19.94ID:hxdj8Ixba screenupdapingを非表示にした状態でcalculationを自動にしたら、ちゃんと計算やってくれますか?
898デフォルトの名無しさん (ワッチョイ 9f4f-809O)
2021/03/10(水) 15:30:04.25ID:PHH+vFRc0 >>897
自分でやってみりゃいいじゃん
自分でやってみりゃいいじゃん
899デフォルトの名無しさん (アウアウウー Sa0f-W2tv)
2021/03/10(水) 15:39:38.02ID:hxdj8Ixba >>898
updatingが表示になったときに計算されるのか、非表示中に計算されてるのかがわからないのです。
updatingが表示になったときに計算されるのか、非表示中に計算されてるのかがわからないのです。
900デフォルトの名無しさん (ワッチョイ dfee-kkZq)
2021/03/10(水) 15:43:34.11ID:TvaGnuXK0 ExcelからVBAが完全になくなるより先にMSが先になくなりそうじゃない?
901デフォルトの名無しさん (ワッチョイ 9fbd-GXTs)
2021/03/10(水) 15:57:24.48ID:kPBSipVT0 MSがなくなるより先にお前がなくなるんじゃない
902デフォルトの名無しさん (スププ Sdbf-1//s)
2021/03/10(水) 17:04:34.10ID:ij0IDF+ed その前にIT途上企業のウチの会社がなくなるな
903デフォルトの名無しさん (ワッチョイ 9f4f-809O)
2021/03/10(水) 17:25:36.32ID:PHH+vFRc0 >>899
対象セルのvalue値を処理中に
debug.printで書き出すなり
どこかのセルに突っ込むなり
トレースして確認するなりすればいいじゃん
まず聞く前にググる癖をつけないと
いつまで経っても誰かに聞かないと
何も出来なくなるよ
対象セルのvalue値を処理中に
debug.printで書き出すなり
どこかのセルに突っ込むなり
トレースして確認するなりすればいいじゃん
まず聞く前にググる癖をつけないと
いつまで経っても誰かに聞かないと
何も出来なくなるよ
904デフォルトの名無しさん (アウアウウー Sa0f-W2tv)
2021/03/10(水) 17:37:30.93ID:hxdj8Ixba >>903
わかりました。てか式の値見ればすぐわかりますね。やってみます
わかりました。てか式の値見ればすぐわかりますね。やってみます
905デフォルトの名無しさん (ワッチョイ dfbd-Ev6s)
2021/03/10(水) 18:13:57.59ID:osSCK/tE0 今日水曜日なのにweekdayName(weekday(Date))で木曜日と出るのは仕様?
Dateは2021/03/10
weekday(Date)は4
と出ることは確認済み
weekdayとweekdayNameで週始めを日曜とするか月曜とするかで差が出てるんだろうからweekdaynameをvbSundayにすることで解決はするけど、何かが原因でここに違いが出てるなら修正したいので仕様かどうか知りたい
Dateは2021/03/10
weekday(Date)は4
と出ることは確認済み
weekdayとweekdayNameで週始めを日曜とするか月曜とするかで差が出てるんだろうからweekdaynameをvbSundayにすることで解決はするけど、何かが原因でここに違いが出てるなら修正したいので仕様かどうか知りたい
906デフォルトの名無しさん (ワッチョイ 3b7c-Ff7g)
2021/03/10(水) 19:31:18.15ID:WhcyA+8r0 仕様ではない
907デフォルトの名無しさん (ワッチョイ 1b49-8r7t)
2021/03/10(水) 19:41:43.99ID:iMortp6N0 Weekdayの規定値がvbSundayで、WeekdayNameの規定値がvbUseSystemDayOfWeek。
どっちかに合わせた方がいいと思う。
どっちかに合わせた方がいいと思う。
908デフォルトの名無しさん (アウアウウー Sa0f-hRrZ)
2021/03/10(水) 20:15:11.47ID:FQxPGFWfa909デフォルトの名無しさん (ワッチョイ dfbd-Ev6s)
2021/03/11(木) 16:08:09.65ID:2F7MZ2cN0910デフォルトの名無しさん (ワッチョイ 3d35-MW8F)
2021/03/12(金) 14:18:56.93ID:cUuyzc0G0 VBA学ぶのにお勧めの本ありますか?
911デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
2021/03/12(金) 14:22:39.95ID:b9Kr93A50 >>910
MOSの本
MOSの本
912デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
2021/03/12(金) 14:25:27.81ID:b9Kr93A50 正確にはVBAエキスパートか。
見過されがちだけど、試験対策本は非常によくまとまっている。
見過されがちだけど、試験対策本は非常によくまとまっている。
913デフォルトの名無しさん (ドコグロ MM4a-GUUA)
2021/03/12(金) 17:44:33.68ID:UcsTGFzQM 買う前に周辺の図書館を回れば、vba本が見つかるかもしれない
914デフォルトの名無しさん (アウアウクー MM51-6Qoe)
2021/03/12(金) 19:23:46.81ID:7Crflr6rM 金額の話なのか?
915デフォルトの名無しさん (ブーイモ MM8d-S3x1)
2021/03/12(金) 19:31:10.39ID:f8Q6HjqoM 650頁を超える「Excel VBA逆引き辞典パーフェクト」を最初から通して読む
916デフォルトの名無しさん (ワッチョイ a1da-ZQaI)
2021/03/12(金) 23:07:31.55ID:NBdc6r9a0 VBの、何かあの電話帳より分厚いの有るじゃん
叩かれると85ポイントくらいダメージを受けそうな感じのアレ
マジレスすると、あれで勉強したわ
叩かれると85ポイントくらいダメージを受けそうな感じのアレ
マジレスすると、あれで勉強したわ
917デフォルトの名無しさん (ワッチョイ 095f-3V6U)
2021/03/12(金) 23:38:50.44ID:sGQx1lBf0 >>894
XLookupを使いなさい
XLookupを使いなさい
918デフォルトの名無しさん (ワッチョイ 2eda-IMun)
2021/03/13(土) 02:37:38.41ID:5xXr3I9d0 まじレスすると他人のおすすめの本は買っただけで満足して読まない可能性が高い
919デフォルトの名無しさん (ワッチョイ b901-/dly)
2021/03/13(土) 07:57:23.36ID:slDJWJ280 >>910
出来るだけ薄い奴がいいよ
少なくとも一週間で読み切れそうな奴
細かい部分は結局ググる事になるから手っ取り早く基礎だけ学べるのがいい
プログラミングの勉強は書き方を学ぶというより、
「ググる方法、ググって出てきた内容を理解できる最低限の知識」を身に着ける方に重きを置いた方がいい
出来るだけ薄い奴がいいよ
少なくとも一週間で読み切れそうな奴
細かい部分は結局ググる事になるから手っ取り早く基礎だけ学べるのがいい
プログラミングの勉強は書き方を学ぶというより、
「ググる方法、ググって出てきた内容を理解できる最低限の知識」を身に着ける方に重きを置いた方がいい
920デフォルトの名無しさん (ワッチョイ 824f-pJvK)
2021/03/13(土) 08:14:07.47ID:csBuBYNL0921デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
2021/03/13(土) 08:17:01.13ID:tBGlpruK0 メルカリなどでたくさん買って、好きなのを使えばいいよ。
922デフォルトの名無しさん (ワッチョイ d2ee-YyH6)
2021/03/13(土) 11:51:20.74ID:9LAtgmD40 >>910
VBAの神様
VBAの神様
923デフォルトの名無しさん (ワイーワ2 FFca-6Qoe)
2021/03/13(土) 14:55:26.89ID:4/YYKqK7F Excel VBAは自己流が多いと思うけど、体系的に学習するならマイクロソフトのVBAエキスパート本だろうな。
924デフォルトの名無しさん (ワッチョイ 6163-drwQ)
2021/03/13(土) 21:38:13.19ID:99ipLDsT0 小手先のテクニックより
複雑怪奇なExcelの挙動の中身がどうなってんのか
詳細に説明してほしいわ
謎挙動がおおすぎる
複雑怪奇なExcelの挙動の中身がどうなってんのか
詳細に説明してほしいわ
謎挙動がおおすぎる
925デフォルトの名無しさん (ワッチョイ 7d5f-48g3)
2021/03/13(土) 21:57:08.91ID:7fDCnZwF0 具体的には?
926デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
2021/03/13(土) 22:05:26.89ID:tBGlpruK0 >>924
あまり使われていないVBAの機能を使うとすぐにバグにはまる。
あまり使われていないVBAの機能を使うとすぐにバグにはまる。
927デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
2021/03/13(土) 22:07:49.91ID:tBGlpruK0 ActiveXのボタンが消えるバグなどは放置状態
928デフォルトの名無しさん (ワッチョイ fedf-scxf)
2021/03/14(日) 01:08:53.96ID:EQ7/9AB00 vbの構文がダサすぎるのが嫌
綺麗に書いても汚らしく見える Dim asとかキモいんだよ
綺麗に書いても汚らしく見える Dim asとかキモいんだよ
929デフォルトの名無しさん (ワッチョイ 2eda-IMun)
2021/03/14(日) 02:39:44.98ID:QAEhurjz0 VBAのコードのフォントを HGP行書体 (日本語) とかにしてみたら?
930デフォルトの名無しさん (ワッチョイ 0605-0ZVL)
2021/03/14(日) 03:51:24.74ID:+mKOZ3nE0 ACCESSのレポートではかけたのですが
VBAで規定の先よりも細い線を書くことはできませんか?
VBAで規定の先よりも細い線を書くことはできませんか?
931デフォルトの名無しさん (ワッチョイ b901-/dly)
2021/03/15(月) 06:39:33.91ID:6QvkQitw0 コントロールのボタンが押す度徐々に小さくなったり消えたり動き回ったり
配列返す関数をUboundに渡すとメモリリークしたり、
フォームをモーダル表示中にシートをアクティブにすると何故かシートを操作できたり、
インターフェースを実装するクラス自体をインターフェースに出来てしまう上に、それをするとバグったり、
いくらでも上げられるだろ
特にフィルタ関連は変なのが多い
specialcells(xlcelltypevisible)とかcopyメソッドとか
配列返す関数をUboundに渡すとメモリリークしたり、
フォームをモーダル表示中にシートをアクティブにすると何故かシートを操作できたり、
インターフェースを実装するクラス自体をインターフェースに出来てしまう上に、それをするとバグったり、
いくらでも上げられるだろ
特にフィルタ関連は変なのが多い
specialcells(xlcelltypevisible)とかcopyメソッドとか
932デフォルトの名無しさん (ワッチョイ a1da-xjD7)
2021/03/16(火) 14:07:15.77ID:yEkj4Jws0 作成依頼なんですがお願いできますでしょうか
A列に数字(No.)
B列に文字列(名前)の3000行ほどの表があります。
A列の数字は重複している箇所があり、
A列が他の行と重複している場合B列の文字を全て繋げてC列に書き出したいのですが可能でしょうか。
サンプル
A列 B列 C列
11111 A子 A子
11112 B子 B子
11113 C子 C子・D子・E子
11113 D子 C子・D子・E子
11113 E子 C子・D子・E子
11114 F子 F子
11114 F子 F子
11115 E子 E子
ただし、サンプルのように
A列が重複してもB列の文字列が同じだった場合は『F子・F子』とならずに『F子』のままで、
重複しないA子、B子もそのままにしたいのです。
Aが列の数字は最大で20ほど重複している場合があります。
ずっと手作業でやってて挫けそうなんでお願いします!!
A列に数字(No.)
B列に文字列(名前)の3000行ほどの表があります。
A列の数字は重複している箇所があり、
A列が他の行と重複している場合B列の文字を全て繋げてC列に書き出したいのですが可能でしょうか。
サンプル
A列 B列 C列
11111 A子 A子
11112 B子 B子
11113 C子 C子・D子・E子
11113 D子 C子・D子・E子
11113 E子 C子・D子・E子
11114 F子 F子
11114 F子 F子
11115 E子 E子
ただし、サンプルのように
A列が重複してもB列の文字列が同じだった場合は『F子・F子』とならずに『F子』のままで、
重複しないA子、B子もそのままにしたいのです。
Aが列の数字は最大で20ほど重複している場合があります。
ずっと手作業でやってて挫けそうなんでお願いします!!
933デフォルトの名無しさん (JP 0H8d-IMun)
2021/03/16(火) 14:24:36.41ID:gGJzxP62H >>932
Sub Macro1()
rr = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To rr
n = Cells(i, 1)
s = Cells(i, 2)
t = s & "・"
For j = 1 To i - 1
If Cells(j, 1) = n Then
w = Cells(j, 2)
If InStr(t, w) = 0 Then
t = t & w & "・"
End If
End If
Next
t = t & s & "・"
For j = i + 1 To rr
If Cells(j, 1) = n Then
w = Cells(j, 2)
If InStr(t, w) = 0 Then
t = t & w & "・"
End If
End If
Next
t = Left(t, Len(t) - 1)
t = Right(t, Len(t) - 1 - Len(s))
Cells(i, 3) = t
Next
End Sub
Sub Macro1()
rr = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To rr
n = Cells(i, 1)
s = Cells(i, 2)
t = s & "・"
For j = 1 To i - 1
If Cells(j, 1) = n Then
w = Cells(j, 2)
If InStr(t, w) = 0 Then
t = t & w & "・"
End If
End If
Next
t = t & s & "・"
For j = i + 1 To rr
If Cells(j, 1) = n Then
w = Cells(j, 2)
If InStr(t, w) = 0 Then
t = t & w & "・"
End If
End If
Next
t = Left(t, Len(t) - 1)
t = Right(t, Len(t) - 1 - Len(s))
Cells(i, 3) = t
Next
End Sub
934デフォルトの名無しさん (ワッチョイ a1da-xjD7)
2021/03/16(火) 15:29:08.70ID:yEkj4Jws0935デフォルトの名無しさん (オイコラミネオ MM96-nALK)
2021/03/16(火) 15:59:46.67ID:cZC9o7Y5M それ、例えば百合さんと百合子さんがいた時にバグらない?
こういうのは辞書に登録してitemsプロパティをjoin関数に渡すのが鉄板だと思う
最近ならvba使わずにfilter関数とunique関数でも同じことできるから、もしかしたらこっちの方が楽かも
こういうのは辞書に登録してitemsプロパティをjoin関数に渡すのが鉄板だと思う
最近ならvba使わずにfilter関数とunique関数でも同じことできるから、もしかしたらこっちの方が楽かも
936デフォルトの名無しさん (オッペケ Sr91-Z1Ji)
2021/03/16(火) 15:59:47.11ID:btbyDUmHr >>933
きったねえソースだなおい
きったねえソースだなおい
937デフォルトの名無しさん (ワッチョイ c602-IMun)
2021/03/16(火) 16:01:05.39ID:YCs8uHit0 お、きれいなソース期待かw
938デフォルトの名無しさん (JP 0H8d-IMun)
2021/03/16(火) 16:15:55.00ID:gGJzxP62H 百合・百合子バグ修正
Sub Macro1()
rr = Cells(Rows.Count, 1).End(xlUp).Row
For r = 1 To rr
n = Cells(r, 1)
s = Cells(r, 2)
t = "・" & s & "・"
For i = 1 To r - 1
If Cells(i, 1) = n Then
w = Cells(i, 2)
If InStr(t, "・" & w & "・") = 0 Then
t = t & w & "・"
End If
End If
Next
t = t & s & "・"
For i = r + 1 To rr
If Cells(i, 1) = n Then
w = Cells(i, 2)
If InStr(t, "・" & w & "・") = 0 Then
t = t & w & "・"
End If
End If
Next
t = Left(t, Len(t) - 1)
t = Right(t, Len(t) - Len(s) - 2)
Cells(r, 3) = t
Next
End Sub
Sub Macro1()
rr = Cells(Rows.Count, 1).End(xlUp).Row
For r = 1 To rr
n = Cells(r, 1)
s = Cells(r, 2)
t = "・" & s & "・"
For i = 1 To r - 1
If Cells(i, 1) = n Then
w = Cells(i, 2)
If InStr(t, "・" & w & "・") = 0 Then
t = t & w & "・"
End If
End If
Next
t = t & s & "・"
For i = r + 1 To rr
If Cells(i, 1) = n Then
w = Cells(i, 2)
If InStr(t, "・" & w & "・") = 0 Then
t = t & w & "・"
End If
End If
Next
t = Left(t, Len(t) - 1)
t = Right(t, Len(t) - Len(s) - 2)
Cells(r, 3) = t
Next
End Sub
939デフォルトの名無しさん (オイコラミネオ MM96-nALK)
2021/03/16(火) 16:53:04.48ID:cZC9o7Y5M 百合さんと百合・D・ルフィさんがいた時にバグる
940デフォルトの名無しさん (JP 0H8d-IMun)
2021/03/16(火) 17:22:11.94ID:gGJzxP62H 百合・D・ルフィバグ修正
Sub Macro2()
Dim d As Object
Set d = CreateObject("Scripting.Dictionary")
rr = Cells(Rows.Count, 1).End(xlUp).Row
For r = 1 To rr
For i = 1 To rr
If Cells(i, 1) = Cells(r, 1) Then
s = Cells(i, 2)
If Not d.exists(s) Then d.Add (s), 0
End If
Next
Cells(r, 3) = Join(d.keys, "・")
d.RemoveAll
Next
End Sub
Sub Macro2()
Dim d As Object
Set d = CreateObject("Scripting.Dictionary")
rr = Cells(Rows.Count, 1).End(xlUp).Row
For r = 1 To rr
For i = 1 To rr
If Cells(i, 1) = Cells(r, 1) Then
s = Cells(i, 2)
If Not d.exists(s) Then d.Add (s), 0
End If
Next
Cells(r, 3) = Join(d.keys, "・")
d.RemoveAll
Next
End Sub
941デフォルトの名無しさん (ワッチョイ 692c-6NWR)
2021/03/16(火) 17:31:00.58ID:tUVUKdZi0 >>932
Ruby で、CSV ファイルでやってみた
require 'csv'
tmp_hash = { }
result_ary = CSV.read( "input.csv" ) # 2次元配列
result_ary.each do | row | # 1行ずつ処理する
if tmp_hash.has_key? row[ 0 ] # 既に、その数字が存在すれば
# 文字列が存在しない時だけ、その文字列を追加する
tmp_hash[ row[ 0 ] ][ row[ 1 ] ] = true unless
tmp_hash[ row[ 0 ] ].has_key? row[ 1 ]
else
tmp_hash[ row[ 0 ] ] = { row[ 1 ] => true }
end
end
# p tmp_hash
# {"11111"=>{"A子"=>true}, "11112"=>{"B子"=>true},
# "11113"=>{"C子"=>true, "D子"=>true, "E子"=>true},
# "11114"=>{"F子"=>true}, "11115"=>{"E子"=>true}}
result_ary.each do | row | # 1行ずつ処理する
# その行の3列目に、キーを結合した文字列を追加する
row.push tmp_hash[ row[ 0 ] ].keys.join( "・" )
end
csv_str = result_ary.map( &:to_csv ).join # 2次元配列を、CSV 文字列に変換する
print csv_str
Ruby で、CSV ファイルでやってみた
require 'csv'
tmp_hash = { }
result_ary = CSV.read( "input.csv" ) # 2次元配列
result_ary.each do | row | # 1行ずつ処理する
if tmp_hash.has_key? row[ 0 ] # 既に、その数字が存在すれば
# 文字列が存在しない時だけ、その文字列を追加する
tmp_hash[ row[ 0 ] ][ row[ 1 ] ] = true unless
tmp_hash[ row[ 0 ] ].has_key? row[ 1 ]
else
tmp_hash[ row[ 0 ] ] = { row[ 1 ] => true }
end
end
# p tmp_hash
# {"11111"=>{"A子"=>true}, "11112"=>{"B子"=>true},
# "11113"=>{"C子"=>true, "D子"=>true, "E子"=>true},
# "11114"=>{"F子"=>true}, "11115"=>{"E子"=>true}}
result_ary.each do | row | # 1行ずつ処理する
# その行の3列目に、キーを結合した文字列を追加する
row.push tmp_hash[ row[ 0 ] ].keys.join( "・" )
end
csv_str = result_ary.map( &:to_csv ).join # 2次元配列を、CSV 文字列に変換する
print csv_str
942デフォルトの名無しさん (ラクッペペ MMe6-uiII)
2021/03/16(火) 17:41:01.13ID:QPeaG/4LM 何故突然にRuby?
943932 (ワッチョイ a1da-xjD7)
2021/03/16(火) 18:32:29.43ID:yEkj4Jws0944デフォルトの名無しさん (ワッチョイ 0242-wkB+)
2021/03/16(火) 19:02:04.81ID:EUyNpk5n0 >>942
rubyスレだと相手にもされないからわざわざ違うスレに来てるかわいそうな人だよ
rubyスレだと相手にもされないからわざわざ違うスレに来てるかわいそうな人だよ
945デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
2021/03/16(火) 21:06:28.11ID:8Gn4pDRu0 名前の例が○子とは、そうとうなジイさんだなw
946デフォルトの名無しさん (JP 0H8d-IMun)
2021/03/16(火) 21:12:32.28ID:gGJzxP62H947デフォルトの名無しさん (ワッチョイ 4d7c-9blg)
2021/03/16(火) 21:15:14.58ID:lullOsMB0 そら「百合(ろーず)」よ
948デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
2021/03/16(火) 21:28:58.74ID:8Gn4pDRu0 >>946
なんで女なのか?
なんで女なのか?
949デフォルトの名無しさん (JP 0H8d-IMun)
2021/03/16(火) 21:42:16.30ID:gGJzxP62H そんなこと言ったら、なぜ日本人なのか、なぜ人類なのか
950デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
2021/03/16(火) 21:51:49.14ID:8Gn4pDRu0 太郎、次郎、三郎、四郎、五郎でいいだろ。
951デフォルトの名無しさん (ワッチョイ c602-IMun)
2021/03/16(火) 21:55:45.14ID:YCs8uHit0 なんで男なのか?
952デフォルトの名無しさん (JP 0H8d-IMun)
2021/03/16(火) 22:05:23.00ID:gGJzxP62H 3000行もあるのに、それじゃ考えるのが大変だ
953デフォルトの名無しさん (ワッチョイ ee10-H4mC)
2021/03/16(火) 23:39:47.76ID:FDp5iKWO0 手作業でAからFカップを調べる作業にVBA使うとか
お前ら男として終わってるわマジで
お前ら男として終わってるわマジで
954デフォルトの名無しさん (ワッチョイ 85a7-Uq3u)
2021/03/17(水) 00:14:55.79ID:8Ujh9QFC0 ろーずって薔薇じゃないの?
955デフォルトの名無しさん (ワッチョイ 4d7c-9blg)
2021/03/17(水) 00:20:54.29ID:lKwA7qQn0 そうだよ
956デフォルトの名無しさん (JP 0H8d-IMun)
2021/03/17(水) 00:54:57.81ID:KXbC8pO1H わざと間違えるっていう2chから続く伝統芸
https://i.imgur.com/h4Fip2L.jpg
https://i.imgur.com/h4Fip2L.jpg
957デフォルトの名無しさん (ワッチョイ 1291-seln)
2021/03/17(水) 02:44:52.10ID:LQZUutD10958デフォルトの名無しさん (JP 0H8d-IMun)
2021/03/17(水) 03:45:50.60ID:KXbC8pO1H >>957 なおした
Option Explicit
Sub VBA69_932()
Dim A_number As Long, B_name As String, C_list As Object
Dim last_row As Long, row_loop As Long, search_loop As Long
Set C_list = CreateObject("Scripting.Dictionary")
With ThisWorkbook.ActiveSheet
last_row = .Range("A" & Rows.Count).End(xlUp).Row
For row_loop = 1 To last_row
C_list.RemoveAll
A_number = .Range("A" & row_loop)
For search_loop = 1 To last_row
If .Range("A" & search_loop) = A_number Then
B_name = .Range("B" & search_loop)
If Not C_list.exists(B_name) Then
C_list.Add (B_name), 0
End If
End If
Next
.Range("C" & row_loop) = Join(C_list.keys, "・")
Next
End With
End Sub
Option Explicit
Sub VBA69_932()
Dim A_number As Long, B_name As String, C_list As Object
Dim last_row As Long, row_loop As Long, search_loop As Long
Set C_list = CreateObject("Scripting.Dictionary")
With ThisWorkbook.ActiveSheet
last_row = .Range("A" & Rows.Count).End(xlUp).Row
For row_loop = 1 To last_row
C_list.RemoveAll
A_number = .Range("A" & row_loop)
For search_loop = 1 To last_row
If .Range("A" & search_loop) = A_number Then
B_name = .Range("B" & search_loop)
If Not C_list.exists(B_name) Then
C_list.Add (B_name), 0
End If
End If
Next
.Range("C" & row_loop) = Join(C_list.keys, "・")
Next
End With
End Sub
959デフォルトの名無しさん (ワッチョイ 2e8f-IMun)
2021/03/17(水) 10:07:11.87ID:wJCP0FMq0960デフォルトの名無しさん (ワッチョイ 02bd-I38D)
2021/03/17(水) 10:20:01.36ID:QeKL1gNm0 配列でやれ
961デフォルトの名無しさん (ワッチョイ 0242-wkB+)
2021/03/17(水) 10:38:31.95ID:CnU6DmD/0 はい
962デフォルトの名無しさん (オッペケ Sr91-Z1Ji)
2021/03/17(水) 10:48:27.37ID:AkcuhhXSr れつ
963デフォルトの名無しさん (ワッチョイ c602-IMun)
2021/03/17(水) 10:49:53.05ID:rwSgtXuJ0 ゴー
964デフォルトの名無しさん (JP 0H8d-IMun)
2021/03/17(水) 10:52:25.95ID:KXbC8pO1H >>960 なおした
Option Explicit
Sub VBA69_932_a()
Dim This As Worksheet
Dim table() As Variant
Dim A_number As Long, B_name As String, C_list As Object
Dim last_row As Long, row_loop As Long, search_loop As Long
Set C_list = CreateObject("Scripting.Dictionary")
Set This = ThisWorkbook.ActiveSheet
last_row = This.Range("A" & Rows.Count).End(xlUp).Row
ReDim table(last_row - 1, 2)
table = This.Range("A1:C" & last_row)
For row_loop = 1 To last_row
A_number = table(row_loop, 1)
C_list.RemoveAll
For search_loop = 1 To last_row
If table(search_loop, 1) = A_number Then
B_name = table(search_loop, 2)
If Not C_list.exists(B_name) Then
C_list.Add (B_name), 0
End If
End If
Next
table(row_loop, 3) = Join(C_list.keys, "・")
Next
This.Range("A1:C" & last_row) = table
End Sub
Option Explicit
Sub VBA69_932_a()
Dim This As Worksheet
Dim table() As Variant
Dim A_number As Long, B_name As String, C_list As Object
Dim last_row As Long, row_loop As Long, search_loop As Long
Set C_list = CreateObject("Scripting.Dictionary")
Set This = ThisWorkbook.ActiveSheet
last_row = This.Range("A" & Rows.Count).End(xlUp).Row
ReDim table(last_row - 1, 2)
table = This.Range("A1:C" & last_row)
For row_loop = 1 To last_row
A_number = table(row_loop, 1)
C_list.RemoveAll
For search_loop = 1 To last_row
If table(search_loop, 1) = A_number Then
B_name = table(search_loop, 2)
If Not C_list.exists(B_name) Then
C_list.Add (B_name), 0
End If
End If
Next
table(row_loop, 3) = Join(C_list.keys, "・")
Next
This.Range("A1:C" & last_row) = table
End Sub
965デフォルトの名無しさん (オッペケ Sr91-Z1Ji)
2021/03/17(水) 10:59:16.82ID:AkcuhhXSr 変数にABCなんてのを使ってる時点でセンスゼロ
後で見て全くわからないバグの温床にしかならない
後で見て全くわからないバグの温床にしかならない
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 【速報中】株価 一時2900円以上急落 過去3番目の下落幅 ★2 [ぐれ★]
- トランプ氏、関税で強硬姿勢維持-「市場のことは少し忘れてほしい」 [おっさん友の会★]
- 元フジ・長野智子、被害女性Aが中居正広の自宅訪問を断れなかった理由を推察「私は嫌だったら行かない」「女性アナでもいろいろいる」 [冬月記者★]
- トランプ大統領「インフレが大きな問題になるとは思わない」との認識 関税による物価上昇の懸念に [Hitzeschleier★]
- 【USJが万博に】「一生の思い出が黒歴史に」修学旅行先が大阪万博に変更で悲鳴… [BFU★]
- 【速報】日経平均先物などの取引、急落で一時中断 「サーキットブレーカー」発動 ★2 [Hitzeschleier★]
- 【ジャップ悲報】東野「報告書でイニシャル出された人に反論の場はないんか😤」記者会見したらええやん🤔 [359965264]
- 【技術力】NEXCO「ETC復旧作業をしたら被害が拡大した」 [458340425]
- トランプ大統領、「国民は市場のことは忘れろ!」「インフレは大きな問題にならない!」 [935793931]
- 【悲報】新大学生「Macのパソコンじゃなきゃ嫌ァアアアアアアア!!!😭」 [518915984]
- トランプ「関税で毎月、数億ドル儲かってるぞ!w」やっぱり関税を勘違いしてた 石破 安倍 統一教会 [205023192]
- 森友学園の闇取引、嫌がる近畿財務局を財務省が無理やりやれぇ!していました。やっぱ財務省解体した方がいいだろ [389326466]