[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2ch.scのread.cgiへ]
Update time : 12/29 06:14 / Filesize : 265 KB / Number-of Response : 993
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part77



1 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 07:07:35.59 ID:tS4zKdphH.net]
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること

ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK

次スレは>>980が立てること
無理なら細かく安価指定

※前スレ
Excel VBA 質問スレ Part76
https://mevius.5ch.net/test/read.cgi/tech/1651339421/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

313 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 20:46:14.74 ID:kx7L/9BB0.net]
>>312
> 後半のC1:N0あたりの動きが読み取るのがちょっと難しいですが、
If C0 <> C1 Then
で、コードが変わった事を検出して変わったら

S2.Cells(R2, 1).Value = C0
S2.Cells(R2, 2).Value = "差額: " & CStr(N0 - N1)
R2 = R2 + 1
で、差分を追加して

C0 = C1: N0 = 0: N1 = 0
で、新しいコードを覚える共に合計値を初期化してる

314 名前:デフォルトの名無しさん [2022/08/10(水) 20:48:55.75 ID:p8b8cWYPd.net]
こんなことがわからない奴が金計算をVBAでするなんて

315 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 20:57:23.40 ID:ph9U25aD0.net]
テキストファイルからキーワードが含まれてる行をセルに書き込みたいです
キーワードが8個あります
行=Bを「商品」か「価格」を""に置換して
元のBと違ってたら書き込むようにしたんですが
もっと簡素な方法ありませんか?

Open A For Input As #1'Aはテキストファイルのフルパス
Do Until EOF(1)
Line Input #1, B '1行分だけ読み込み
If B <> Replace(B, "商品", "") Then
i = i + 1
Cells(i, 1) = B 'セルへ入力
Else
If B <> Replace(B, "価格", "") Then
i = i + 1
Cells(i, 1) = B 'セルへ入力
End If
End If
Loop
Close

316 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 21:00:16.39 ID:hNnMWsb/0.net]
なんで商品と価格のReplaceを分けるのか

317 名前:デフォルトの名無しさん [2022/08/10(水) 21:07:20.86 ID:0PwnBNIZ0.net]
>>315
InStrは嫌いなの?

318 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 21:43:46.56 ID:AlyojMao0.net]
>>313
ありがとうございます、
勉強中なので質問なんですが、
C1:N0 =0:N1=0の中の:ってどういう意味なんでしょうか?

319 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 22:04:25.44 ID:NcNdkaPG0.net]
突っ込みどころ満載の質問久しぶりね

320 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 22:24:43.27 ID:kx7L/9BB0.net]
>>315
> キーワードが8個あります
これはどうなったの?
単に複数のキーワードが含まれてるかを見たいだけなら
Line Input #1, B '1行分だけ読み込み
Dim K As Variant
For Each K In Split("商品,価格", ",")
If B Like "*" & K & "*" Then
Cells(i, 1).Value = B
i = i + 1
Exit For
End If
Next

321 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 22:31:30.17 ID:uspPIoStd.net]
>>315
どんなやり方でもいいと思うけどキーワードを含むかどうかを関数にするといいんじゃない
Function CheckKeyword(ByVal pValue As String) As Boolean
CheckKeyword = True
If pValue <> Replace(pValue, "商品", "") Then
Exit Function
End If
If pValue <> Replace(pValue, "価格", "") Then
Exit Function
End If
残りのキーワードも同様に判定
CheckKeyword = False
End Function
これを使えば
i = i + 1
Cells(i, 1) = B 'セルへ入力
の部分は1つでいいよね



322 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 23:03:22.07 ID:kx7L/9BB0.net]
>>318
VBA マルチステートメント
でググってくれ

323 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 23:23:06.57 ID:20iS7AqN0.net]
>>318
改行みたいなもん。たとえば
N0 = 0
N1 = 0
という複数行のコードを1行にまとめることができる
N0 = 0: N1 = 0
だけど、やらない方がいいと言われている

324 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 19:50:59.53 ID:eLvp/vGod.net]
変数宣言と同時に初期化する用途に限って俺は許容してるな
それよりif文を1行で閉じる奴が凶悪
ネストするとEnd ifの数が合わなくなる

325 名前:デフォルトの名無しさん [2022/08/11(木) 20:39:49.16 ID:Eqlf5oxG0.net]
>>324
変数宣言と一緒に初期値設定する人はよく見かけるしアリだと思う。
同様に実は特殊な場合に限りIf文を一行で記載することもある。
本来構造化言語で使わない方が良いとされているGoto文も特殊な場合に限り使うこともある。

VBAは結構何でもありの言語だからその辺、仕事場のコーディングルールや
作ってる人のマイルールによって随分違いが出てくる。

一概にどんな方法をとることが最善とは言えないから人の書いたソース見てると面白い。

326 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 20:49:36.22 ID:bTQMDZYqd.net]
Ifの中身が1行だけの時に全体を1行で書くのはマルチステートメントとは違うくない?
If a = 0 Then b =0
あくまでコロンでつなぐ場合のことでしょ

327 名前:310 (ワッチョイ 1301-lJ3c) mailto:sage [[ここ壊れてます] .net]
俺も本来はマルチステートメントは使わないけど、5chのレスは行数制限あるからマルチステートメントにしてるだけ
そもそもこの手の話は好みもあってどっちが正しいとかはないからそろそろやめようよ

328 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 22:00:47.13 ID:/ib3rHvC0.net]
そもそもダメだとか誰が言っているのだろうか。。

329 名前:デフォルトの名無しさん (スッップ Sd33-N11w) mailto:sage [[ここ壊れてます] .net]
○○ならアリって言ってるってことはそれ以外はナシって受け取る人もいるだろ
提供されたコードをそのまま使うだけしかできないならそれだけの話だし
自分のルールに従って直せばいいだけの話で人のコードにケチ付ける必要なんてないだろ

330 名前:310 (ワッチョイ 1301-lJ3c) mailto:sage [[ここ壊れてます] .net]
>>328
> だけど、やらない方がいいと言われている
みたいな意見があるから

331 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 00:11:05.61 ID:gP2cSn76d.net]
コーディングルールなんて宗教みたいなもんだけど、一応マルチステートメントは推奨されないという意見のが多数
リーダブルコードにも書いてあるし、MS公式も推奨しないと言ってる
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/programming-guide/language-features/statements

明確に禁止したがってる人は肌感覚でもっと少数派だけどね



332 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 00:24:13.41 ID:nWfz+VWs0.net]
どうせ仕事でVBA作ってる質問者なんて少ないやろ

333 名前:310 mailto:sage [2022/08/12(金) 05:00:53.71 ID:zAuzG+foa.net]
>>331
おっちゃんそれVBAじゃなくてVB.NETのドキュメントやで

334 名前:デフォルトの名無しさん [2022/08/12(金) 05:44:37.34 ID:Icr7mfuu0.net]
Van.Netなら変数宣言と同時に初期値設定出来るから
引き合いに出すのもお門違いだな

335 名前:デフォルトの名無しさん [2022/08/12(金) 06:23:06.84 ID:dDX14IC1M.net]
>>334
van.netなどない、このハゲ!

336 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 08:48:11.58 ID:nWfz+VWs0.net]
中のVBAのコードだけGitに上げることってできるの?
めんどいコマンドとか外部サービス使わずに
そもVBEからコミットとかプルリクとかやりたい

337 名前:デフォルトの名無しさん [2022/08/12(金) 09:02:48.49 ID:Icr7mfuu0.net]
>>335
すまん、VB.Netの間違いだった
しかし俺は禿げてはいない。頭頂点しかな!!

338 名前:デフォルトの名無しさん [2022/08/12(金) 09:16:28.60 ID:Icr7mfuu0.net]
>>336
まあコードをエクスポートしたものを載っけておくくらいかな。
Bisual Sutadioみたいにエデイタ上から設定するのは無理だと思った。

て言うかコードだけ取っておいてもexcelのVBAの場合はexcelそのものに影響されるところも多いから
excelごと取っておいてソースを比較したいときだけ何かのツールでソースの比較を行った方がいいと思う。

339 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 12:38:04.21 ID:Oc3JB1Iir.net]
Bisual Sutadio

340 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 12:52:14.02 ID:kbIhrpmL0.net]
>>336
今のVBAでGitは見たことないけど
昔VSSで管理するアドインがあったから、アドイン作ればできるんじゃね

>>338
マクロ入ってるエクセルはどうか知らんが、今のエクセルってXMLをzipで固めただけのはずだから
Zip解答してソース管理に突っ込む手もあるかもしれん
つかお前の誤字はわざとかこのハゲ

341 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 16:32:51.36 ID:BEh6dSX60.net]
お前ら禿好きだな



342 名前:デフォルトの名無しさん [2022/08/12(金) 16:38:58.11 ID:eSjTAJcc0.net]
↑この人ハーゲマンです

343 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 17:59:10.79 ID:BEh6dSX60.net]
いきなし禿げたんよ。
去年の夏位まではふさふさだった

344 名前:デフォルトの名無しさん [2022/08/12(金) 20:16:41.08 ID:ijOecH2p0.net]
それはコロナだから治療行けよ。

345 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 21:06:52.17 ID:rQBVWxEE0.net]
Dim Eight As Typhoon
Set Eight As Typhoon

Debug.Print Eight.HPa

346 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 21:35:36.13 ID:JWVBEjPKr.net]
質問です
エクセルでvba書くとハゲるというのは本当ですか?
それともハゲじゃないとまともなコードにならないということでしょうか?

347 名前:デフォルトの名無しさん mailto:sage [2022/08/13(土) 00:36:53.33 ID:7+qtu9p80.net]
>>345
Set Eight = New Typhoon

348 名前:デフォルトの名無しさん mailto:sage [2022/08/13(土) 00:54:21.19 ID:C3GQNRB30.net]
Print Eight.Name
Mary

349 名前:デフォルトの名無しさん mailto:sage [2022/08/13(土) 07:49:57.82 ID:Q44FuubAd.net]
>>346
ハゲる→外に出られなくなる→VBAしか無い人生に陥る

350 名前:デフォルトの名無しさん mailto:sage [2022/08/13(土) 18:00:34.01 ID:+/onKVXv0.net]
禿が気になるなら頭ツルッツルにするという構想は無いのかね?

351 名前:デフォルトの名無しさん mailto:sage [2022/08/13(土) 18:44:02.54 ID:qT7WXGgOd.net]
Dim Hair As Object
Set Hair = Nothing



352 名前:デフォルトの名無しさん mailto:sage [2022/08/13(土) 21:29:48.82 ID:+/onKVXv0.net]
>>351
座布団100枚

353 名前:デフォルトの名無しさん mailto:sage [2022/08/13(土) 22:55:44.03 ID:ZiFcsOVE0.net]
>>346
こら!良い大人ならスキンヘッドと言いなさい!

354 名前:デフォルトの名無しさん (ワッチョイ d2bd-nhkz) mailto:sage [[ここ壊れてます] .net]
スキンヘッドが似合う顔ならスキンヘッドにしてるんですよ・・・

355 名前:デフォルトの名無しさん [2022/08/14(日) 11:14:09.47 ID:VI2zLni0a.net]
ezoe職務質問されたってよ

356 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 13:17:19.86 ID:RtZKjyzz0.net]
>>355
QZ は逮捕・拘留11日を食らったってよ

357 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 16:16:37.77 ID:L75yFRnI0.net]
スキンヘッドは
メガネがポイントだと思う。
閑話休題。

次の話者に期待

358 名前:デフォルトの名無しさん [2022/08/14(日) 16:36:03.46 ID:LT2TaV3B0.net]
皮頭よりはハゲと言われたほうが人権を尊重してるだろ

359 名前:デフォルトの名無しさん [2022/08/14(日) 19:46:54.17 ID:mUrr83gX0.net]
>>349
→VBAの質問スレに書きこむようになる

360 名前:デフォルトの名無しさん [2022/08/14(日) 23:12:05.82 ID:LT2TaV3B0.net]
きみたちハーゲマンに質問なのですが
VBAの配列でJavascriptのようにpushやpopを使いたいときってどうしてます?
わざわざredim使って要素数を変えるのはそれが頻繁になるときは使いづらいなと思うし。

361 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 23:52:33.60 ID:mUrr83gX0.net]
>>360
最初の配列はそのままで添え字を管理



362 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 00:13:18.77 ID:WD7exLpg0.net]
ツルピカかつ、不精ヒゲだから女さんなんて絶対に寄り付かない。

363 名前:310 mailto:sage [2022/08/15(月) 05:37:50.20 ID:zxOEKBbO0.net]
>>360
VBA で残念に思う所の一つやね
サイズの上限が決められるならその上限で確保してサイズは別途管理
上限が決められない時はReDimでちまちま管理してる
あとReDimでサイズを0にできないのも地味に辛い

364 名前:デフォルトの名無しさん [2022/08/15(月) 06:56:28.24 ID:OUaqH/oW0.net]
>>361
>>363
レスありがとう、ハーゲマンたち。
じゃあしかたないんですね。
でもVBAでもpush, pop, shift, unshiftが使える配列のようなものをVBAのクラスかなにかを使って再現することは可能だろうか?

365 名前:デフォルトの名無しさん [2022/08/15(月) 07:26:27.37 ID:3rPnXTV50.net]
>>364
可能、だが○○の機能がないから作れないではなく
目的の動作をするように作るんじゃね
質問が本末転倒している

366 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 08:25:48.51 ID:7kbqjBHA0.net]
>>364
他の言語でもスタックやキューは長さの決まった配列だよ
そこへオブジェクトを出し入れするときに端のポインタを動かすだけ
長さが足りなくなったら長さ2倍の配列を新しく定義してそっちへオブジェクトを引っ越し、オブジェクトの数が長さの25%を下回るようになったら長さ半分の配列を作り直してそっちへ引っ越し

367 名前:310 mailto:sage [2022/08/15(月) 08:28:07.85 ID:zxOEKBbO0.net]
>>364
pushpush, pop だけだけど実装例
https://kazusa-pg.com/vba-stack/

368 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 12:57:14.28 ID:3rPnXTV50.net]
EXCELのシートが配列みたいなもんだし

369 名前:310 mailto:sage [2022/08/15(月) 13:34:09.14 ID:zxOEKBbO0.net]
>>366
それは実装による
リストで実装してる奴もあるし

370 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 16:10:48.09 ID:Z5BB7x+B0.net]
VB(A)の配列でpopが必要になる場面ってあんまないなあ
不要になったらemptyぶちこむだけだし

371 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 18:21:13.35 ID:u0LihC760.net]
時間データ
>>364
他言語はよー知らんけどdictionaryじゃあかんの?



372 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 18:23:08.68 ID:u0LihC760.net]
>>371
ああスマン。なんかへんな一言張り付いた。

373 名前:デフォルトの名無しさん [2022/08/15(月) 19:15:38.92 ID:HvBHLkJg0.net]
Dictionaryでいいと思う。
キーに連番、スタックポインタ代わりに変数一個用意してやって、使い終わったらremove で消して。

374 名前:デフォルトの名無しさん (ワッチョイ 6eda-5Ix7) mailto:sage [[ここ壊れてます] .net]
やり方は色々あるのにVBAが使いにくいとか言い出す初心者w

375 名前:デフォルトの名無しさん (ワッチョイ 4d2f-O3lh) mailto:sage [[ここ壊れてます] .net]
だがしかしVBAにDictionaryはないのだよ

WSHはいつまでサポートされるかなぁ
VBAより短い気がしてきた

まあ俺ならどうしてもキューかスタックほしいなら、.NET Frameworkのやつ使うかな

376 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 19:54:05.83 ID:3rPnXTV50.net]
だからVBA使うのやめなよ

377 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 20:17:32.58 ID:kNyRr/sv0.net]
VBAでDictionary使えるでしょ

378 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 20:25:53.14 ID:u0LihC760.net]
ああ、なるほど。いつ使えなくなるとも知れないとなれば先々を考えて使わないほうがいいかもね。たしかに使い方も特殊だし。>dictionary

まぁ、それなら捨てsheet作って貼り付けるかな。2次元までなら。
そのかわり処理速度は格段に落ちる可能性はあるけど、待ってりゃいいならそれもアリか。

379 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 20:28:32.11 ID:Mg/eEpn60.net]
それって findfirst/findnext 一発で済む問題なのでは?いちいちマクロで書くのもウザったいですよね‥‥

380 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 20:41:37.63 ID:3rPnXTV50.net]
使いにくいとか面倒とか愚痴るくらいならEXCEL使うのやめればいいのに

381 名前:デフォルトの名無しさん [2022/08/15(月) 21:05:11.95 ID:OUaqH/oW0.net]
>>371
Dictionaryはとおの昔から使っておったのじゃよ。
しかし使い続けているうちにふと頭をさわるとなんとハゲてしまったのじゃ。
それは困ると思ってDictionaryに変わるいい方法を探求しておるのじゃ。



382 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 21:40:01.71 ID:u0LihC760.net]
>>381
なんだ、ただふざけてるだけか。。。

383 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 22:39:37.83 ID:fsND5nPed.net]
そんなハゲ頭に免じてArrayListを進ぜよう

384 名前:デフォルトの名無しさん [2022/08/15(月) 22:52:26.96 ID:HvBHLkJg0.net]
DictionaryがイヤならCollection使えばいいと思うけど。
まぁ別に普通に配列でもいいんだけどさ。
多少凝った作りにしたって関数化しとけばいい訳だし。

385 名前:デフォルトの名無しさん mailto:sage [2022/08/16(火) 04:43:22.32 ID:Z2Qcd4DId.net]
>>384
流石に無知すぎるから少し黙った方がいいよ

386 名前:310 mailto:sage [2022/08/16(火) 05:59:23.35 ID:CNdrdYLw0.net]
Collection に Exists メソッドがあれば...

387 名前:デフォルトの名無しさん mailto:sage [2022/08/16(火) 11:11:29.27 ID:09rAK4Ti0.net]
何作ってんだよ

388 名前:デフォルトの名無しさん [2022/08/16(火) 12:23:01.42 ID:2L6vp4NY0.net]
>>385
そうだね
よく分かりもしないで無知とか決めつける無知は
すっこんでればいいよね

389 名前:デフォルトの名無しさん mailto:sage [2022/08/16(火) 16:58:27.92 ID:tG1qlgnq0.net]
あまりマウントの取り合いは止めようぜ
意見交換の場なんだから

390 名前:デフォルトの名無しさん mailto:sage [2022/08/16(火) 17:40:43.11 ID:09rAK4Ti0.net]
どちらかというとけなし合いだな

391 名前:デフォルトの名無しさん mailto:sage [2022/08/16(火) 18:00:08.72 ID:0h33t1VnM.net]
ここにいると神になった気分になるな
お前らの見苦しさに対してもなんだか優しくなれそう



392 名前:デフォルトの名無しさん mailto:sage [2022/08/16(火) 18:20:47.96 ID:tG1qlgnq0.net]
昔は違ったんよ
いつからか荒れやすいスレになった

393 名前:デフォルトの名無しさん [2022/08/16(火) 20:19:48.02 ID:NUsqsy200.net]
>>382
ふざけてるつもりは毛頭ございませぬ。
でもこれからもハーゲマンの名に恥じぬようVBAを探求していきたいです。

394 名前:デフォルトの名無しさん mailto:sage [2022/08/16(火) 20:50:53.76 ID:tG1qlgnq0.net]
毛という毛全部剃っちゃえ!

395 名前:デフォルトの名無しさん [2022/08/16(火) 21:16:40.24 ID:NUsqsy200.net]
>>394
アホ。
そしたらハゲてまうやんけ。

396 名前:デフォルトの名無しさん mailto:sage [2022/08/16(火) 21:54:28.52 ID:tG1qlgnq0.net]
え?
別にいいじゃん、アンタ元から禿なんだから。

397 名前:デフォルトの名無しさん [2022/08/17(水) 01:45:03.16 ID:d962r+SMa.net]
ソルのはムダ毛だけにしとけ

398 名前:デフォルトの名無しさん [2022/08/17(水) 01:57:01.99 ID:sNWv67oad.net]
頭髪は生えないのに髭は生える

399 名前:デフォルトの名無しさん [2022/08/17(水) 04:59:55.38 ID:EILeizBb0.net]
>>396
コラ、われわれハゲ族は、
励まし合って生きていかねばならぬ。
ハゲ増し合うことはするな。

400 名前:デフォルトの名無しさん mailto:sage [2022/08/17(水) 07:35:41.89 ID:hasTYsFP0.net]
頭髪はハゲても、耳毛は濃くなる

401 名前:デフォルトの名無しさん mailto:sage [2022/08/17(水) 11:39:32.10 ID:Ork7WWB+0.net]
禿ではないのだけど、40歳にして髪は真っ白よ。



402 名前:デフォルトの名無しさん (ワッチョイ 6eda-5Ix7) mailto:sage [[ここ壊れてます] .net]
好きな色に染めようぜ

403 名前:デフォルトの名無しさん mailto:sage [2022/08/17(水) 12:58:33.86 ID:PQdbwjDzr.net]
Excelらしく緑だな

404 名前:デフォルトの名無しさん [2022/08/18(木) 12:18:45.39 ID:yPHO1+kSp.net]
なんという体たらく
もうハゲはこのスレ出入り禁止でいいな

405 名前:デフォルトの名無しさん (ワッチョイ fdb7-laJE) mailto:sage [[ここ壊れてます] .net]
2つの表があって、表Aと表Bとして
表の作りは二つとも同じで、
コードと数字を持ってます。
二つの表のコードが一致してる場合は

コード  A B
101 50 60
102 40 100
103 30
104 50

といった感じで片方にしか存在しない場合は片方だけの行を追加して行くってvbaを作りたいんですが、何かいい案はありますか?
AとBの表で数字の比較をしたいです
for nextでやろうとしてますがうまくいいやり方が見つからずです

406 名前:デフォルトの名無しさん (ブーイモ MM85-Hx7L) mailto:sage [[ここ壊れてます] .net]
まずVBAを忘れます
SQLで FULL OUTER JOIN します
(゚д゚)

407 名前:デフォルトの名無しさん (ワッチョイ 468c-hYSv) [[ここ壊れてます] .net]
>>405
テーブルのリレーションシップを設定したらいいんじゃないかな

408 名前:デフォルトの名無しさん (アウアウウー Saa5-dwW8) mailto:sage [[ここ壊れてます] .net]
例えば以下の様なデータがあるとします

開始~終了:消費量
1月1日 0時~1月1日16時:500
1月1日16時~1月2日10時:1000
1月2日10時~1月5日 0時:800
1月5日 0時~1月5日0時:300
1月5日0時~1月6日0時:2500
1月6日0時~1月7日12時:1200


このように時間の区切りがバラバラ(かつ日跨ぎや0分間もある)のデータに対して、1月1日、2日、3日にそれぞれ合計いくらかを出したいです
なお、例えば20時~翌6時で1000の様な場合は4h:6h=400:600として計上したいです

どう計算するか方針すら思い浮かばないのですが何かアイディアありましたら教えてください

409 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 15:01:03.74 ID:JMDQexcx0.net]
vlookupでできない?
普通にforループでも難しいことなさそうだけど、どんなコード書いたの?

410 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 15:04:36.75 ID:JMDQexcx0.net]
>>409>>405へのレスね

411 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 15:14:31.63 ID:EMP5KmCeM.net]
>>408
まず問題を分割しよう
まず(step1)日別にレコードを分割し、(step2)それを日付でグループ化して合計を出すと考えればいい
step2は典型的なグループ化と小計なんで楽勝として、step1はちょっと面倒だから更に分割しようか
例えば、入力として一行の内容を渡すと、日別分割されたレコードの配列を返す関数を作って、その結果を結合すればいいだろう



412 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 15:53:00.45 ID:XgHMEnCRd.net]
>>405
深く考えなくていいなら
①2つの表(シート)をそれぞれ参照して作業用のシートAを作る
コード シート 値
101 A 50
102 A 40 
・・・
101 B 60
102 B 100
②シートAをソートする
③シートAの内容を読み込んで質問にあるようなシートBを作る

413 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 16:12:23.70 ID:EfwMa2qS0.net]
できた!
二重ループでできました。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<265KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef