!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付けるナリ
ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ
※前スレ
Excel VBA 質問スレ Part70
https://mevius.5ch.net/test/read.cgi/tech/1616072923/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part71
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0f5f-nIK+)
2021/05/25(火) 12:48:01.06ID:mepUVc/i02デフォルトの名無しさん (ゲマー MM06-mK7O)
2021/05/25(火) 14:39:07.41ID:Eok9KjPbM ↑おつ
3デフォルトの名無しさん (アウウィフ FFc7-4Cki)
2021/05/25(火) 15:29:32.37ID:9esnpvbXF >紙の表を目で追いながら画面を見ずにどんどん入力するとか普通にある
下手に補完機能とか発動するとうざいよな
下手に補完機能とか発動するとうざいよな
4デフォルトの名無しさん (ワッチョイ 0eda-cE2x)
2021/05/26(水) 13:42:07.91ID:LJxSJ8rb0 時々画面も見たほうがいいぞ
5デフォルトの名無しさん (スプッッ Sd5a-r2gF)
2021/05/26(水) 18:56:30.36ID:mkbiTVsAd 画像のような処理をするコードを書きたいのですが・・・
整理番号に対してアルファベットがランダムに振られており、それをまとめるというようなコードです。
ただし、まとめたい整理番号は行が飛び飛びになっており固定されております。
forやifなどを少しかじっただけのため、頑張ってみましたが全くできませんでした。
何卒宜しくお願いいたします。
https://i.imgur.com/w5P4FX4.jpg
整理番号に対してアルファベットがランダムに振られており、それをまとめるというようなコードです。
ただし、まとめたい整理番号は行が飛び飛びになっており固定されております。
forやifなどを少しかじっただけのため、頑張ってみましたが全くできませんでした。
何卒宜しくお願いいたします。
https://i.imgur.com/w5P4FX4.jpg
6デフォルトの名無しさん (ワッチョイ 9a8e-/g3G)
2021/05/26(水) 19:27:52.83ID:DrPaJmjh0 いつものあいつ
7デフォルトの名無しさん (アウアウウー Sac7-qxUy)
2021/05/26(水) 20:40:38.47ID:YzhdN1Yma のんびりやろうぜ
8デフォルトの名無しさん (JP 0H7f-4P7j)
2021/05/26(水) 20:43:32.54ID:FIJmCPPEH >>5
法則がまったくわからん
法則がまったくわからん
9デフォルトの名無しさん (スプッッ Sd5a-r2gF)
2021/05/26(水) 20:57:38.79ID:mkbiTVsAd10デフォルトの名無しさん (ブーイモ MM26-ZtF8)
2021/05/26(水) 22:04:20.25ID:VymsA87rM ID:mkbiTVsAdはとにかく繊維質と水分を十分に摂って山ほどウンコしろ
そうすればこのスレを必要とする事も無くなるだろ
そうすればこのスレを必要とする事も無くなるだろ
11デフォルトの名無しさん (ワッチョイ 5b2c-5BAZ)
2021/05/26(水) 22:11:44.89ID:XGTO2klA0 入力データは違うけど、Ruby で作ってみた
require 'csv'
tmp_hash = { }
input_ary = CSV.read( "input.csv" ) # 2次元配列
input_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
result_ary = tmp_hash.map do |num, hash|
ary = hash.map { |str, b_true| str }
[ num, *ary ] # 配列展開
end
# p result_ary # 2次元配列
# [["1", "A"], ["2", "B", "C"], ["3", "X"]]
csv_str = result_ary.map( &:to_csv ).join # 2次元配列を、CSV 文字列に変換する
print csv_str
出力
1,A
2,B,C
3,X
require 'csv'
tmp_hash = { }
input_ary = CSV.read( "input.csv" ) # 2次元配列
input_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
result_ary = tmp_hash.map do |num, hash|
ary = hash.map { |str, b_true| str }
[ num, *ary ] # 配列展開
end
# p result_ary # 2次元配列
# [["1", "A"], ["2", "B", "C"], ["3", "X"]]
csv_str = result_ary.map( &:to_csv ).join # 2次元配列を、CSV 文字列に変換する
print csv_str
出力
1,A
2,B,C
3,X
12デフォルトの名無しさん (JP 0H7f-4P7j)
2021/05/26(水) 22:16:14.20ID:FIJmCPPEH13デフォルトの名無しさん (ワンミングク MM8a-ZbgT)
2021/05/26(水) 22:55:47.72ID:Ca/oJ0kCM いつものあいつ=ruby馬鹿
14デフォルトの名無しさん (ブーイモ MM26-AlZ6)
2021/05/26(水) 23:30:39.65ID:CbYT3Zs7M >>5
Dictioraryを使わずにデータを1列目〜2列目、出力先を4列目以降であると仮定する
配列 = Range(Cells(出力先の1番上の行,4),Cells(出力先の1番下の行,4))
For i = LBound(配列,1) to UBound(配列,1)
For j = データの一番上の行 to データの一番下の行
If Cells(j,1).Value = 配列(i,LBound(配列,2) Then
If 配列(i,UBound(配列,2) <>″″ Then
ReDim Preserve 配列(LBound(配列,1) to UBound(配列,1),LBound(配列,2) to UBound(配列,2)+1)
End If
For k = LBound(配列,2) to UBound(配列,2)
If 配列(i,k) = Cells(j,1),Value Then
Exit For
Else If 配列(i,k) = ″″ Then
配列(i,k) = Cells(j,1),Value
End If
Next
Next
Next
ってやって出力するとか?
思いつきで適当にやったから動かなかったらゴメンね
Dictioraryを使わずにデータを1列目〜2列目、出力先を4列目以降であると仮定する
配列 = Range(Cells(出力先の1番上の行,4),Cells(出力先の1番下の行,4))
For i = LBound(配列,1) to UBound(配列,1)
For j = データの一番上の行 to データの一番下の行
If Cells(j,1).Value = 配列(i,LBound(配列,2) Then
If 配列(i,UBound(配列,2) <>″″ Then
ReDim Preserve 配列(LBound(配列,1) to UBound(配列,1),LBound(配列,2) to UBound(配列,2)+1)
End If
For k = LBound(配列,2) to UBound(配列,2)
If 配列(i,k) = Cells(j,1),Value Then
Exit For
Else If 配列(i,k) = ″″ Then
配列(i,k) = Cells(j,1),Value
End If
Next
Next
Next
ってやって出力するとか?
思いつきで適当にやったから動かなかったらゴメンね
15デフォルトの名無しさん (スプッッ Sd5a-r2gF)
2021/05/27(木) 01:00:26.94ID:hl6lLSzud >>12
移動後の整理番号の位置は決まっているだけ という話なのですが... というかそれは書いてあるのですが
移動後の整理番号の位置は決まっているだけ という話なのですが... というかそれは書いてあるのですが
16デフォルトの名無しさん (スプッッ Sd5a-r2gF)
2021/05/27(木) 01:01:43.36ID:hl6lLSzud17デフォルトの名無しさん (ラクッペペ MMb6-9F53)
2021/05/27(木) 08:26:53.22ID:f+HvaIKyM >>5
ピボットテーブルでいいやん
ピボットテーブルでいいやん
18デフォルトの名無しさん (スプッッ Sd5a-r2gF)
2021/05/27(木) 11:03:53.72ID:hl6lLSzud19デフォルトの名無しさん (スプッッ Sdf3-FygT)
2021/05/28(金) 11:25:16.55ID:EVw9ke/Wd20デフォルトの名無しさん (ブーイモ MM75-fghp)
2021/05/28(金) 12:11:04.92ID:akPeanIUM21デフォルトの名無しさん (ワッチョイ 49cc-f5pr)
2021/05/28(金) 14:13:31.59ID:wSpOVLhu0 A列がKey、B列がItemが入っていたとして、一括でDictionaryに代入する方法はありますか
今はForで処理していますが、
For r = 1 To 10000
dic.Add Cells(r, 1), Cells(r, 2)
Next r
だと読み込みに時間がかかり、配列のほうが早いくらいです
今はForで処理していますが、
For r = 1 To 10000
dic.Add Cells(r, 1), Cells(r, 2)
Next r
だと読み込みに時間がかかり、配列のほうが早いくらいです
22デフォルトの名無しさん (ラクッペペ MM4b-hX9V)
2021/05/28(金) 15:04:21.04ID:TV0Jrg4dM どう頑張っても配列のほうが速いよ
23デフォルトの名無しさん (JP 0H75-B6Af)
2021/05/28(金) 16:57:29.10ID:VcGAYAhXH 配列を経由してDicに入れると多少は速くなると思う
確認はしてない
Sub Macro1()
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
Dim aa()
aa = Range("A1:B10000")
For r = 1 To 10000
Dic.Add aa(r, 1), aa(r, 2)
Next
End Sub
確認はしてない
Sub Macro1()
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
Dim aa()
aa = Range("A1:B10000")
For r = 1 To 10000
Dic.Add aa(r, 1), aa(r, 2)
Next
End Sub
24デフォルトの名無しさん (アウアウウー Sac5-togR)
2021/05/28(金) 17:29:35.83ID:ZW1biLGGa そもそもDictionaryにRange型も入れられるんじゃないっけ?
だから「配列の方が速い」という使い方ならCellsの後にValue付けなきゃいかんのでは
だから「配列の方が速い」という使い方ならCellsの後にValue付けなきゃいかんのでは
26デフォルトの名無しさん (ワッチョイ 934f-urWM)
2021/05/28(金) 18:55:00.91ID:dVrlPf170■ このスレッドは過去ログ倉庫に格納されています
ニュース
- かつや、明日からカツ丼(竹)790円→590円、ロースカツ定食830円→630円、カツカレー(竹)990円→790円 画像あり [お断り★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★3 [Hitzeschleier★]
- タイがカンボジアを空爆、トランプ氏仲介の和平合意は“事実上崩壊”軍事衝突へ タイ首相「もはや対話の余地ない」 [お断り★]
- 【将棋】福間香奈 女流六冠が会見 妊娠・出産でタイトル戦の事実上不戦敗 「妊娠したら、どちらか一方を諦めないといけない状況」★2 [冬月記者★]
- ニッポン放送、WBCで侍ジャパン全試合を実況生中継 2006年の第1回から6大会連続 [征夷大将軍★]
- 【速報】 米国政府、中国が日本の自衛隊にレーダー照射を批判、同事案で中国を批判するのは初めて ★2 [お断り★]
- 【高市朗報】アメリカ、空母打撃群最強格のリンカーン空母打撃群を第7艦隊に突然編入。レーダー問題も中国側を批判 [483862913]
- 防衛省「了解は言っていない」 [966095474]
- 【速報】共同通信スクープキタ━(゚∀゚)━!!「実際は日本の自衛隊機が中国機に対してレーダ照射ロックオンしていたことが発覚」 [339712612]
- 小泉防衛大臣「中国から通告はあったが具体的ではなかった」 [834922174]
- マリン船長のラーメン、投げ売りされてしまう😭
- 【悲報】ジャップ、「ホンビノスガイ」すら食い尽くして絶滅寸前まで追い込む🥹 [616817505]
