X

Excel VBA 質問スレ Part69

レス数が950を超えています。1000を超えると書き込みができなくなります。
2020/12/13(日) 00:22:23.67ID:Fd224klc0
!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
2021/03/08(月) 21:12:54.65ID:ub+dBY/l0
>>865
半分正解
2021/03/08(月) 21:17:42.97ID:ub+dBY/l0
「VBEで作ったものはマクロ」
これは合ってる
「VBAとマクロは同じことを言っている」
マクロにはVBAtで作られたもの以外に
4.0マクロと言うものが有ってだな・・・
まぁ、あまり気にしなくても良いかもしんないけど
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のコードで表現されるため。
2021/03/08(月) 22:10:13.99ID:Awv++sSE0
>>867
なんかいろいろ違うぞ
2021/03/08(月) 22:16:46.29ID:Dj6nESKZ0
関数は全然違うだろwww
2021/03/08(月) 22:42:26.89ID:53ng3r6C0
>>866
まだ表紙なのに理解半分かw

>>867
4.0マクロネットで見て使ったこと1回だけあるけど関数みたいなやつだった記憶。

>>868
スクリプトも便利そうですよね。
デスクトップかっこ良くするフリーソフトに自由にスクリプト使えますって書いてあって挫折した。。

>>869
出来たもんがマクロでVBAが設計図でVBEが紙と鉛筆か。

みんなありがと、ネットにも解説サイトあるけど違うとこ見ちゃうから本買ってくるわ。ノシ
2021/03/08(月) 23:14:12.98ID:u4CRr3CF0
そういえばvbaをjsで書ける世界まだなんだっけ?
gasみたいな感じで書けないかな
2021/03/08(月) 23:18:26.32ID:hUWITx/G0
WScriptのJScriptでExcel使えるだろ
2021/03/09(火) 00:19:47.43ID:fLnH8jKyM
>>873
>>834
2021/03/09(火) 02:53:50.15ID:uNAjD4zcH
微妙に違う気がするなあ
VBAはプログラミング言語の名前(の略称)。単語と文法が書いてあるだけの辞書みたいなもん
その言語で書かれた物がマクロで、むしろ設計図はこっちが近い
VBEはマクロの作成を手助けするツール、紙と鉛筆って考え方はだいたい合ってる
で、マクロの中でも結果を一組だけ呼び出し元に返すように作られてるのが関数
2021/03/09(火) 05:15:21.29ID:suvlK62N0
機能とワークシート関数とか全くわからん
操作なんてVBAで良いじゃん
周りでもそういった人いるしさ
2021/03/09(火) 08:22:35.06ID:zXQo4RJq0
本来、Excelの操作の自動化を目的にしたVBAマクロなのに元の機能そのものが全く分からんとか本末転倒にも程がある
879デフォルトの名無しさん (アウアウウー Sa0f-fXuR)
垢版 |
2021/03/09(火) 10:45:46.13ID:pnwu5thka
作成依頼です

一定範囲内において、選択されたセルすべてに、書式設定で取り消し線を付けたいです

たとえば、D5からD20の範囲内で、そこ以外の範囲が選択されていた場合はエラーを返す
範囲内なら、選択されたセル(単一、複数、飛び石あり)すべてに、一括で取り消し線を追加
というような感じです

飛び石状態で複数が選択された場合に、上手く処理できなくて相談させていただきました
よろしくお願い致します
880デフォルトの名無しさん (ワッチョイ fb5f-R8lj)
垢版 |
2021/03/09(火) 11:04:35.36ID:oV9GYLDS0
>>879
そんな仕様のものを作ってはいけない
2021/03/09(火) 11:21:48.31ID:Nc9tdWjH0
>>879
選択範囲をまとめて見るんじゃなくて、選択されたセル一つ一つについて既定の範囲内にあるか条件判断をし、エラーかそうでないか
エラーでなく全てのセルが範囲内なら一つ一つのセルに取り消し線を追加
とすれば普通にできるでしょ
横着しようとしてるからいけないんじゃないの
2021/03/09(火) 11:25:30.81ID:uNAjD4zcH
VBEは赤ペン先生?全部じゃないけど間違いをすぐ教えてくれる
2021/03/09(火) 11:58:31.47ID:zYh1VL3E0
>>879
お金ください
2021/03/09(火) 12:03:56.11ID:uNAjD4zcH
>>879
For Eachでセルを1個ずつ処理するんだよ

For Each、セルアドレスチェック、1つでもD5-D20じゃなかったらエラー
エラーがなかったらもう一度For Each、各セルに取り消し線

みたいな流れ
2021/03/09(火) 12:09:52.12ID:4S2gbixUa
ピボットグラフのスライサー内の選択を変えた時にマクロが動くようにしたいです
イメージ的にはワークシートイベントです
例︰スライサーの日付を変更時にグラフの色を塗る

選択変更の検知方法を教えてください
よろしくお願いします
886デフォルトの名無しさん (ラクッペペ MM7f-gfXM)
垢版 |
2021/03/09(火) 12:25:42.94ID:t7O7P6i9M
外枠なら面倒だけど取り消し線なら簡単だ
2021/03/09(火) 12:38:26.95ID:uNAjD4zcH
外枠でも大差ないと思う
Selectionの上下左右に罫線を引くだけ
888デフォルトの名無しさん (アウアウウー Sa0f-fXuR)
垢版 |
2021/03/09(火) 12:43:13.10ID:pnwu5thka
>>881
>>884
なるほど、これなら自分でできそうです
ありがとうございました
2021/03/09(火) 13:03:57.82ID:C5e26MY+0
いえいえ、自分でもっと勉強してくださいね
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
2021/03/10(水) 00:11:15.88ID:seJ5KfaI0
だってさ、先輩がExcelなんか全部マクロで動かせば良いって言われたからさ。。。
ワークシートの関数とかそんなもん覚えなくて良いと言われたからさ。
だからVBAしか知らない。
今凄く関数とか機能を覚えるために苦労してる。
2021/03/10(水) 02:20:07.32ID:Mh5oeh7J0
>>891
無理してやる必要ないのに、何のために覚えるの?
2021/03/10(水) 07:58:05.94ID:seJ5KfaI0
>>892
マクロだけでは遠回りだと気づいて
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を自動にしたら、ちゃんと計算やってくれますか?
2021/03/10(水) 15:30:04.25ID:PHH+vFRc0
>>897
自分でやってみりゃいいじゃん
899デフォルトの名無しさん (アウアウウー Sa0f-W2tv)
垢版 |
2021/03/10(水) 15:39:38.02ID:hxdj8Ixba
>>898
updatingが表示になったときに計算されるのか、非表示中に計算されてるのかがわからないのです。
2021/03/10(水) 15:43:34.11ID:TvaGnuXK0
ExcelからVBAが完全になくなるより先にMSが先になくなりそうじゃない?
2021/03/10(水) 15:57:24.48ID:kPBSipVT0
MSがなくなるより先にお前がなくなるんじゃない
2021/03/10(水) 17:04:34.10ID:ij0IDF+ed
その前にIT途上企業のウチの会社がなくなるな
2021/03/10(水) 17:25:36.32ID:PHH+vFRc0
>>899
対象セルのvalue値を処理中に
debug.printで書き出すなり
どこかのセルに突っ込むなり
トレースして確認するなりすればいいじゃん
まず聞く前にググる癖をつけないと
いつまで経っても誰かに聞かないと
何も出来なくなるよ
904デフォルトの名無しさん (アウアウウー Sa0f-W2tv)
垢版 |
2021/03/10(水) 17:37:30.93ID:hxdj8Ixba
>>903
わかりました。てか式の値見ればすぐわかりますね。やってみます
2021/03/10(水) 18:13:57.59ID:osSCK/tE0
今日水曜日なのにweekdayName(weekday(Date))で木曜日と出るのは仕様?

Dateは2021/03/10
weekday(Date)は4
と出ることは確認済み
weekdayとweekdayNameで週始めを日曜とするか月曜とするかで差が出てるんだろうからweekdaynameをvbSundayにすることで解決はするけど、何かが原因でここに違いが出てるなら修正したいので仕様かどうか知りたい
2021/03/10(水) 19:31:18.15ID:WhcyA+8r0
仕様ではない
2021/03/10(水) 19:41:43.99ID:iMortp6N0
Weekdayの規定値がvbSundayで、WeekdayNameの規定値がvbUseSystemDayOfWeek。
どっちかに合わせた方がいいと思う。
2021/03/10(水) 20:15:11.47ID:FQxPGFWfa
やっぱり>>885の方法はないですかね
諦めてマクロボタンで更新します
ありがとうございました
2021/03/11(木) 16:08:09.65ID:2F7MZ2cN0
>>907
なるほど、自分のwindowsカレンダーの開始日が月曜になってるからなのか
なんで既定値が違うんだろうという疑問は残りつつも納得、ありがとうございました
2021/03/12(金) 14:18:56.93ID:cUuyzc0G0
VBA学ぶのにお勧めの本ありますか?
911デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
垢版 |
2021/03/12(金) 14:22:39.95ID:b9Kr93A50
>>910
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
金額の話なのか?
2021/03/12(金) 19:31:10.39ID:f8Q6HjqoM
650頁を超える「Excel VBA逆引き辞典パーフェクト」を最初から通して読む
2021/03/12(金) 23:07:31.55ID:NBdc6r9a0
VBの、何かあの電話帳より分厚いの有るじゃん
叩かれると85ポイントくらいダメージを受けそうな感じのアレ
マジレスすると、あれで勉強したわ
2021/03/12(金) 23:38:50.44ID:sGQx1lBf0
>>894
XLookupを使いなさい
2021/03/13(土) 02:37:38.41ID:5xXr3I9d0
まじレスすると他人のおすすめの本は買っただけで満足して読まない可能性が高い
2021/03/13(土) 07:57:23.36ID:slDJWJ280
>>910
出来るだけ薄い奴がいいよ
少なくとも一週間で読み切れそうな奴
細かい部分は結局ググる事になるから手っ取り早く基礎だけ学べるのがいい

プログラミングの勉強は書き方を学ぶというより、
「ググる方法、ググって出てきた内容を理解できる最低限の知識」を身に着ける方に重きを置いた方がいい
2021/03/13(土) 08:14:07.47ID:csBuBYNL0
>>910
現在の知識レベルによって薦める本は変わってくるけどなーんも知らないと言うのならVBAの絵本でいいんじゃなかろか

>>919の人も言ってるけど基本、ネットで調べることになるんでどちらかというと
自分が知りたいことを調べられる単語をすぐに思い浮かべる力と
それを理解する力の方が自分的には重要な気がする
後、理解出来なければ取り敢えず書いてみてこねくり回すことも大事

本当に基本的なことさえ分かっていれば、
その内クラスやAPI、コールバックとかにぶつかることがあってもネットで調べることが出来れば
自分が然るべき理解力をつけた際に理解出来るようになる。
921デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
垢版 |
2021/03/13(土) 08:17:01.13ID:tBGlpruK0
メルカリなどでたくさん買って、好きなのを使えばいいよ。
2021/03/13(土) 11:51:20.74ID:9LAtgmD40
>>910
VBAの神様
923デフォルトの名無しさん (ワイーワ2 FFca-6Qoe)
垢版 |
2021/03/13(土) 14:55:26.89ID:4/YYKqK7F
Excel VBAは自己流が多いと思うけど、体系的に学習するならマイクロソフトのVBAエキスパート本だろうな。
2021/03/13(土) 21:38:13.19ID:99ipLDsT0
小手先のテクニックより
複雑怪奇なExcelの挙動の中身がどうなってんのか
詳細に説明してほしいわ

謎挙動がおおすぎる
2021/03/13(土) 21:57:08.91ID:7fDCnZwF0
具体的には?
926デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
垢版 |
2021/03/13(土) 22:05:26.89ID:tBGlpruK0
>>924
あまり使われていないVBAの機能を使うとすぐにバグにはまる。
927デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
垢版 |
2021/03/13(土) 22:07:49.91ID:tBGlpruK0
ActiveXのボタンが消えるバグなどは放置状態
2021/03/14(日) 01:08:53.96ID:EQ7/9AB00
vbの構文がダサすぎるのが嫌
綺麗に書いても汚らしく見える Dim asとかキモいんだよ
2021/03/14(日) 02:39:44.98ID:QAEhurjz0
VBAのコードのフォントを HGP行書体 (日本語) とかにしてみたら?
2021/03/14(日) 03:51:24.74ID:+mKOZ3nE0
ACCESSのレポートではかけたのですが
VBAで規定の先よりも細い線を書くことはできませんか?
2021/03/15(月) 06:39:33.91ID:6QvkQitw0
コントロールのボタンが押す度徐々に小さくなったり消えたり動き回ったり
配列返す関数を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ほど重複している場合があります。

ずっと手作業でやってて挫けそうなんでお願いします!!
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
2021/03/16(火) 15:29:08.70ID:yEkj4Jws0
>>933
どひゃ〜!!!!
しゅ、しゅごいぃいいい!
ありがとうございます!ありがとうございます!本当にありがとう!
2021/03/16(火) 15:59:46.67ID:cZC9o7Y5M
それ、例えば百合さんと百合子さんがいた時にバグらない?
こういうのは辞書に登録してitemsプロパティをjoin関数に渡すのが鉄板だと思う

最近ならvba使わずにfilter関数とunique関数でも同じことできるから、もしかしたらこっちの方が楽かも
2021/03/16(火) 15:59:47.11ID:btbyDUmHr
>>933
きったねえソースだなおい
2021/03/16(火) 16:01:05.39ID:YCs8uHit0
お、きれいなソース期待かw
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
2021/03/16(火) 16:53:04.48ID:cZC9o7Y5M
百合さんと百合・D・ルフィさんがいた時にバグる
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
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
2021/03/16(火) 17:41:01.13ID:QPeaG/4LM
何故突然にRuby?
2021/03/16(火) 18:32:29.43ID:yEkj4Jws0
>>940
度々ありがとうございます!
最初ヤツでも今の所大丈夫そうでしたが、今後はこちらを使わせていただきます!

他の方もありがとうございます!
2021/03/16(火) 19:02:04.81ID:EUyNpk5n0
>>942
rubyスレだと相手にもされないからわざわざ違うスレに来てるかわいそうな人だよ
945デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
垢版 |
2021/03/16(火) 21:06:28.11ID:8Gn4pDRu0
名前の例が○子とは、そうとうなジイさんだなw
2021/03/16(火) 21:12:32.28ID:gGJzxP62H
>>945
現代だとどう書くの?
ランキングによると結が人気あるらしいから結A、結B、結Cか
2021/03/16(火) 21:15:14.58ID:lullOsMB0
そら「百合(ろーず)」よ
948デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
垢版 |
2021/03/16(火) 21:28:58.74ID:8Gn4pDRu0
>>946
なんで女なのか?
2021/03/16(火) 21:42:16.30ID:gGJzxP62H
そんなこと言ったら、なぜ日本人なのか、なぜ人類なのか
950デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
垢版 |
2021/03/16(火) 21:51:49.14ID:8Gn4pDRu0
太郎、次郎、三郎、四郎、五郎でいいだろ。
2021/03/16(火) 21:55:45.14ID:YCs8uHit0
なんで男なのか?
2021/03/16(火) 22:05:23.00ID:gGJzxP62H
3000行もあるのに、それじゃ考えるのが大変だ
2021/03/16(火) 23:39:47.76ID:FDp5iKWO0
手作業でAからFカップを調べる作業にVBA使うとか
お前ら男として終わってるわマジで
2021/03/17(水) 00:14:55.79ID:8Ujh9QFC0
ろーずって薔薇じゃないの?
2021/03/17(水) 00:20:54.29ID:lKwA7qQn0
そうだよ
2021/03/17(水) 00:54:57.81ID:KXbC8pO1H
わざと間違えるっていう2chから続く伝統芸
https://i.imgur.com/h4Fip2L.jpg
2021/03/17(水) 02:44:52.10ID:LQZUutD10
>>933
いきなりCellsで始まるのはいただけないなw
できればブックから始める習慣を付けて欲しい。
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
2021/03/17(水) 10:07:11.87ID:wJCP0FMq0
>>933
謎の変数名を多用するのやめてくれ。見る気が一瞬で失せる。
ネスト深くするのも罪悪感感じてくれ
2021/03/17(水) 10:20:01.36ID:QeKL1gNm0
配列でやれ
2021/03/17(水) 10:38:31.95ID:CnU6DmD/0
はい
2021/03/17(水) 10:48:27.37ID:AkcuhhXSr
れつ
2021/03/17(水) 10:49:53.05ID:rwSgtXuJ0
ゴー
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
2021/03/17(水) 10:59:16.82ID:AkcuhhXSr
変数にABCなんてのを使ってる時点でセンスゼロ
後で見て全くわからないバグの温床にしかならない
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況