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


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

Excel VBA 質問スレ Part70



1 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 22:08:43.71 ID:jtngtgXU0.net]
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付けるナリ

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

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

525 名前:デフォルトの名無しさん mailto:sage [2021/04/29(木) 19:07:29.38 ID:k0BuRVHXa.net]
>>515
大きい配列
エクセルのマクロで画像処理している人だよな
1セル1ドットにして輪郭をさがしてる

ちょっと感動

526 名前:デフォルトの名無しさん [2021/04/29(木) 19:41:36.50 ID:gMCbhKMx0.net]
>>520
バックアップしろよ
馬鹿は帰れ

527 名前:デフォルトの名無しさん mailto:sage [2021/04/29(木) 19:42:12.84 ID:I+JPieVz0.net]
>>517
俺、自分宛にメールしてるわ。

Sub Test()
 :
End Sub

って

528 名前:デフォルトの名無しさん [2021/04/29(木) 19:53:50.93 ID:aGUEXGqc0.net]
フラッシュメモリーに保存してるけどそれも壊れるかもしれないし

529 名前:デフォルトの名無しさん mailto:sage [2021/04/29(木) 20:04:58.52 ID:Z9k/ziJ20.net]
だからグーグルのクラウドにでも保存しとけよ

530 名前:デフォルトの名無しさん [2021/04/29(木) 21:46:03.77 ID:gMCbhKMx0.net]
>>525
馬鹿は帰れ

531 名前:デフォルトの名無しさん mailto:sage [2021/04/29(木) 21:47:52.03 ID:qBmeMAVZa.net]
>>525
VBAより先に勉強すべきことがある

532 名前:デフォルトの名無しさん mailto:sage [2021/04/29(木) 21:57:15.15 ID:r4t8KOvl0.net]
>>514
こういう罠みたいな仕様を事前に目を通しておくと躓く事が少なくなる
一生役に立たん可能性も割とあるけどな

533 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 00:10:52.82 ID:G7lq05sG0.net]
これを短く書きたいのですが、どう書けばいいですか?
Range(Cells(r, 1),Cells(r, 10)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.CurrentRegion.Borders.LineStyle = xlContinuous



534 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 00:13:18.87 ID:1H39I5ca0.net]
>>520
カセットテープに保存しとけよ

535 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 00:38:44.27 ID:XMOC9xEV0.net]
>>530
やりたいことは
Range(Cells(r, 1),Cells(r, 10))
・・・
Range(Cells(r, 11),Cells(r, 20)
みたいなこと?
全容を見せてくれたほうが早いと思う。

536 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 02:19:19.76 ID:zq+mlYyf0.net]
>>530
やりたいことを言葉で説明した方が速そう

537 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 02:34:26.19 ID:zq+mlYyf0.net]
>>493
>もともとWindowクラスが持ってる機能に対して、

これ気になるんですが、何かソースありますか?

538 名前:デフォルトの名無しさん [2021/04/30(金) 02:53:52.43 ID:sRtBXBMU0.net]
Excelのマクロをエクセル環境なしに実行したいのですが、
vbsをつかえばExcelは不要ですか?

539 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 03:01:21.54 ID:XMOC9xEV0.net]
variantって共用体なのね
データタイプを示すヘッダがあってその後に実体がある
https://excel-ubara.com/excelvba4/EXCEL_VBA_422.html

540 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 03:02:27.11 ID:XMOC9xEV0.net]
>>535
vbsってのもある。ファイルの名前の一括変換、辺りならvbsで可能
EXCELのa1セルをb1セルにコピー〜みたいなのはEXCELが必要

541 名前:デフォルトの名無しさん [2021/04/30(金) 03:04:35.08 ID:sRtBXBMU0.net]
>>537
すでにあるマクロ名を実行することは
vbsだけで、実行する側にExcelがなくても可能ですか?

542 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 03:23:39.09 ID:zq+mlYyf0.net]
vbsは型宣言が出来ない、
VBAで可能なライブラリ参照が出来ない、
暗黙の参照先等の違いがる
それらを使用していないコードなら実行出来る可能性がある
(要するに簡単にはいかない)

正直「みんな入れてるであろうエクセルで実行できる」っていうただ一つのメリットのみを目的ににして
わざわざ使いにくいVBAを仕方なしに許容してるのであって、
エクセル不要ならPythonなりJSなりC#で書くべき

543 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 03:29:54.28 ID:XMOC9xEV0.net]
>>538
内容による

vbsとvbaは似て非なるもの、だけど互換性はまぁまぁある
vbaをまるっとvbsにコピペして動くものもあれば、手直ししないと動かないもの、絶対に無理なものもある
まぁコピーペーストだけで一発で動くのは稀だとは思う。大体動かないだろう

また、vbsは無料でwindowsに標準でついているので、あーだこーだ言うよりはやったほうが早い



544 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 03:37:12.82 ID:zq+mlYyf0.net]
>>536
貼ってくれたURLのページにある
>String型変数のメモリアドレス

これ、要するにString型変数の値は参照値って事?
察してはいたけどByval xxx$って嘘じゃん
調べれば調べるほど無茶苦茶な言語だなw

ただ先頭に配列長が入ってるのは嬉しいな
LEN関数が高速だって事だし、実際に検証したらそうだった
これからは文字列の有無はLEN関数を使おう

545 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 04:58:51.13 ID:VHqB9FfdH.net]
>>534
MSDNのWin32APIのリファレンス
https://docs.microsoft.com/en-us/windows/win32/api/oaidl/ns-oaidl-variant

これを見れば、Valiant構造体は共用体の入った構造体が共用体になってることが一目瞭然
VBAからは、初期化の手順を省略(自動化)したりして簡単に使えるようにしてある

546 名前:デフォルトの名無しさん [2021/04/30(金) 06:01:15.47 ID:w8M9C8im0.net]
Dim abc As Variant, maxVal Variant
abc = Range("A1:A100")



maxVal = WorksheetFunction.Max(abc(50 To 80, 1))

これはabc(50 To 80, 1)の部分でコンパイルエラーになりますが、
このように一発で配列内の特定の範囲の値を取得することはできますか?
やはりFor〜Nextで回してやらないと駄目でしょうか?

547 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 06:19:01.47 ID:VHqB9FfdH.net]
>>543
配列のままだとループして調べるしかない
作業用のワークシートに入れてからMAX関数を使えば一発

548 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 07:04:01.89 ID:M0On9wgSM.net]
>>541
> 察してはいたけどByval xxx$って嘘じゃん
噓じゃねーよ、Byvalならちゃんとコピーされる(内部的には新規領域確保して内容コピー)

> 調べれば調べるほど無茶苦茶な言語だなw
お前さんの理解力が足らんだけ

549 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 07:57:01.95 ID:VHqB9FfdH.net]
メモリ上で文字列領域の先頭に長さが入ってるのはMicrosoft BASICの伝統
C言語などで使われる\x00で区切る方式だと文字列の中にChr$(&h00)を入れられなくなるので地味に面倒だった

550 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 09:18:44.82 ID:XMOC9xEV0.net]
だから、有限なんですね

551 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 09:53:25.08 ID:JEk9gHJMa.net]
改行しろよ、読みにくいだろ

552 名前:デフォルトの名無しさん [2021/04/30(金) 10:28:11.61 ID:8Lrh8uSx0.net]
>>544
やはりループで調べるしかないんですね
>作業用のワークシート
なるほど、アクセスで言うところのワークテーブル的な考えですね
ありがとうございました。

553 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 10:56:55.90 ID:S41gzW82a.net]
WorksheetFunctionってその名の通りワークシート上の計算をするためのものだから仕方ないわな



554 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 13:14:51.01 ID:lXELEtlJ0.net]
>>543
それはabc(50 To 80, 1)なんていうのがおかしくて
maxVal = WorksheetFunction.Max(abc) ならちゃんと動く

>>550
WorksheetFunctionは実は配列受け取るものが結構あるんだぜ

555 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 13:46:28.53 ID:VHqB9FfdH.net]
>>551
質問者は配列全体じゃなくて調べる範囲を指定したいんだよ
目的と違う回答してどうすんの

556 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 13:52:18.51 ID:4gSq67JmM.net]
質問者を納得させるのではなく
自分の知識をドヤ顔で披露する場がこのスレ

557 名前:デフォルトの名無しさん [2021/04/30(金) 13:55:12.85 ID:clFaH4DRM.net]
古代BASIC語の使えるやつには想像すらできない構文だな
ナウい言語から入るとこんな発想が出来るのか
Enumeraterとか作ってもコールバック関数書くのが面倒くさいからどうしようもないよね

558 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 14:11:06.28 ID:lUzIA11U0.net]
10 CONSOLE 0,25,0,1
20 SCRERN 0,0

559 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 14:13:33.94 ID:1H39I5ca0.net]
>>552
それはいいすぎ
いろんな考えがあって質問者がいろんな回答から判断すればいいだけのこと

560 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 16:19:17.86 ID:W9vsivKyd.net]
sheet1のB1が整数ならSheet2のC1
にSheet1のB1の整数をSheet2のC1に
表示し
Sheet1のB1が整数でない場合は
Sheet2のC1にSheet1のA1の整数を表示
させたいのですが、インデックス範囲エラーになったりして困ってます
Numeric関数なのはわかるんですが
標準モジュールに書くのか
Sheet1に書くのかわかりません
ご教授ください

Private Sub Worksheet_Change(ByVal Taget as Range)

If IsNumeric(Worksheets("1").Range)

561 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 16:51:06.75 ID:S41gzW82a.net]
>>557
シート名(worksheet.name)はどっち?
・sheet1
・1
それとも1番目のシート?それなら
Worksheets(1)
だけど

562 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 17:19:44.60 ID:W9vsivKyd.net]
Sheet1にコードを書いてます

563 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 19:10:46.17 ID:qIU2nW870.net]
そもそもnumericって整数かどうかじゃなくて
数字かどうかの判定じゃなかったか?



564 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 19:11:19.57 ID:qIU2nW870.net]
あとrangeじゃなくてtargetやろ

565 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 19:12:09.12 ID:qIU2nW870.net]
あっrangeであってたわ
range(target.address)かな

566 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 19:13:35.28 ID:1H39I5ca0.net]
>>557
Worksheet_Change これはワークシートに変更があったときに実行する内容を書くので
実行したいワークシートに書くのと、書いたワークシート以外のワークシートの変更は無視する

567 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 19:48:53.26 ID:W9vsivKyd.net]
Sheet1のB1の値が変化したらSheet2のC1が変化させたいのでSheet1にコードを書いてチェンジイベントでいいのかな?
むずかしいですね

568 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 21:15:34.30 ID:zq+mlYyf0.net]
>>545
値渡しは参照値が渡されるって挙動と矛盾してるだろ
その辺の矛盾の解決のためか、
実際に配列は値渡ししかできないように強制されてる

569 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 21:20:31.83 ID:zq+mlYyf0.net]
>>565
値渡しは参照値が渡される

値渡しは、変数に格納されてるのが参照値(メモリアドレス)なら参照値が渡される

570 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 21:52:12.56 ID:BfTXTUZEM.net]
>>565
元々文字列は内容変わったら領域確保し直したりするから内部的に参照持つのが普通
ByVal は文字列を複製して渡すしByRefは内部的な参照への参照を渡す
何の矛盾もないよ
中途半端に内部的な参照を気にしてもしょうがないよ

571 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 21:55:44.24 ID:lUzIA11U0.net]
>>565
え?そうだっけ?
確か配列は参照渡ししか出来ないから
Variant型に突っ込んで渡して
値型のものを渡すようにするんじゃなかったっけ?

もっともそれでも参照型のものは参照が渡されるけど。

572 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 22:00:13.74 ID:HAcSh5oY0.net]
誰か教えてほしいんですが、
数字を単純に足すんじゃなくて=+100+200というふうに増えた数字を全部数式に残していくように一つのセルに入れていくやり方ってありますか?
例えば別のシートに100 200 350とあったら
記録用のシートのセルに=100+200+350と飛ばしたいです。
セルの中身見た時に650となってるのではなくて=100+200+350と表示されてほしい

573 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 22:02:58.83 ID:lUzIA11U0.net]
>>569
単純にCStrで数字を文字列に変換して繋げばいいだけと思うけどそういう意味じゃない?



574 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 23:05:04.91 ID:ftoQG8Lta.net]
>>564
ふつうに関数でよくないの
=IF(B2=int(B2),A2,B2)
みたいなの

575 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 23:07:22.57 ID:ftoQG8Lta.net]
>>569
これも式を表示するモードがあったはず

576 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 23:09:00.86 ID:XMOC9xEV0.net]
>>557
sheet1モジュールに書く
シート名はs1とs2にしてるのでテキトーに変えて


Private Sub Worksheet_Change(ByVal Target As Range)

If _
Target.Address <> "$B$1" _
Or Not (IsNumeric(Target)) _
Then
Exit Sub
End If

main = Cells(1, 2).Value
main2 = Cells(1, 1).Value

If (Int(main) - (main)) = 0 Then
Sheets("s2").Cells(1, 3) = main
Else
Sheets("s2").Cells(1, 3) = Int(main2)
End If

End Sub

577 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 23:13:44.15 ID:XMOC9xEV0.net]
>>569
地味にやるしかない

Sub foo()
Cells(3, 1).Formula = "=" & Cells(1, 1).Value & "+" & Cells(2, 1)
End Sub

量が多いならfornextかなんかで処理すると良い

578 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 23:13:57.10 ID:XMOC9xEV0.net]
joinほしい

579 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 23:21:20.34 ID:W9vsivKyd.net]
>>573
ありがとうございます!
今外にいるのでお家に帰ったら試して見ます

580 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 23:40:08.54 ID:HAcSh5oY0.net]
>>570
そんな感じで大丈夫です

>>574
数がかなりあるんでループさせて特定の月の数字を拾うところまではできてたんで、そのやり方試してみます。

581 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 00:46:43.32 ID:zFFwGDhV0.net]
CONCATがある

582 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 05:48:25.12 ID:1uksgnWZM.net]
>>575
Joinあるやろ
手元にExcelないから試してないけど
Cells(3, 1).Formula = "=" & Join(Application.Transpose(Range("A1:C1" ).Value), "+")
でいけないかな

583 名前:579 mailto:sage [2021/05/01(土) 06:04:07.19 ID:jbHbRAMYM.net]
よく見たら行/列間違えてるわ
Cells(3, 1).Formula = "=" & Join(Application.Transpose(Range("A1:A3" ).Value), "+")
だな

Excel 2019ならVBA使わずに
C1: =TEXTJOIN("+", TRUE, "=", A1:A3)
でいけるかも



584 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 10:06:17.84 ID:v351dbwI0.net]
>>580
例えば元表

コード 200 金額 200 5月
コード 150 金額 300 4月
コード 200 金額 500 5月
コード 150 金額 400 6月
コード 200 金額 50 5月

と並んでたとして、飛ばしたい表に

コード200に一致した場合は=200+500+50
コード150 の4月は=300
みたいな感じで月が同じでコードが一致してる場合だけ積み立てていくことってできますか?
うまくいかなくて、、

585 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 10:22:39.67 ID:orU8r25h0.net]
>>580
別の質問だけど、
Application.Transpose
って
WorksheetFunction.Transpose
の事?

ApplicationってついてたらWorksheetFunctionは省略できるの?

586 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 13:16:18.88 ID:eT9ez6fta.net]
こういう処理はピボットの得意分野だとおもう
ピボットスレにも聞いてみたらとうかな

587 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 13:18:22.06 ID:+awRLs9V0.net]
ピボットスレってあったっけ?

588 名前:デフォルトの名無しさん [2021/05/01(土) 13:20:57.76 ID:GvoaCTGBM.net]
>>582
互換、環境の違い……

589 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 13:30:58.50 ID:eT9ez6fta.net]
ピボットを設定して
たて列を月
よこ列を単価

合計は "値で合計"にする <はじめは個数で合計>になってる
いちばん間違えやすいところ

590 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 14:28:03.48 ID:FxNutXRP0.net]
>>573
> >>557
> sheet1モジュールに書く
> シート名はs1とs2にしてるのでテキトーに変えて
>
>
> Private Sub Worksheet_Change(ByVal Target As Range)
>
> If _
> Target.Address <> "$B$1" _
> Or Not (IsNumeric(Target)) _
> Then
> Exit Sub
> End If
>
> main = Cells(1, 2).Value
> main2 = Cells(1, 1).Value
>
> If (Int(main) - (main)) = 0 Then
> Sheets("s2").Cells(1, 3) = main
> Else
> Sheets("s2").Cells(1, 3) = Int(main2)
> End If
>
> End Sub
あらためて
ありがとうございます。
整数なら無視できるようになりました!
あとは Sheets("s2").Cells(1, 3) にSheets("s1").Cells(1, 2).Valueが整数じゃなければSheets("s1").Cells(1, 1).Valueが入れば完璧です
ちょっと自分でググってみます!もしできないようならまた質問させてください

591 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 15:00:22.43 ID:FcpS+0KE0.net]
>>584
誰か建ててくれると期待してはや数年。。。

592 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 15:05:23.71 ID:+awRLs9V0.net]
PowerQueryスレは建ったんだけど、
https://mevius.5ch.net/test/read.cgi/bsoft/1571540368/
ピボットスレ、建ててみる?

先日、総合相談スレでPowerPivot絡みの質問はあったが。

593 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 15:15:39.62 ID:v351dbwI0.net]
>>586
ピボットだと=で積み立てで足していくようにできなくね?
合計しか出てこない



594 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 16:16:38.30 ID:eT9ez6fta.net]
あーそうかも
やはりピボットスレが立つまで待ちますか

595 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 16:42:05.48 ID:AMC1YaHy0.net]
>>581

それは、たとえば、元表にB1&countif(B$1:B1,B1)みたいな作業列を作って
飛ばしたい表に、iferror(index(D:D,match(作業列,コード&column()+1,0)),"")
みたいな数式を貼り付けるのではだめですか?

1つのセルに、数式として入っている必要性が、あるのですか?

596 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 17:05:58.85 ID:AMC1YaHy0.net]
>>592修正、matchの書式も違うし

月も必要なので、B1&E1 を作業列Fに、count(F$1:F1,F1)を作業列Gに入れて

飛ばしたい表のA列はコード、B列は月、C列以降にiferror(index(元表!$D:$D,match($A1&$B1&column()-2,元表!$F:$F,0)),"")

こんな感じではだめですか?

597 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 17:25:51.43 ID:v351dbwI0.net]
>>592
合計なら楽なんですが、どうしても=+で数字を積み立てないとダメなんですよね、、
だから数式では解決できない気がします
vbaでやるなら配列に詰め込んで最後に結合させるのかなあとか思ってるんですがなかなかいいコードが思い浮かばない、、

598 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 17:29:33.26 ID:v351dbwI0.net]
>>593
ちなみに飛ばしたい表のB列は月というか
     月
      
コード 〜

みたいな形になってて、月は横軸の大項目としてしか存在してないんですよね
色々厄介な作りになってまして、、

599 名前:デフォルトの名無しさん [2021/05/01(土) 17:33:09.92 ID:d9MtRRCh0.net]
知能に障害がある人ばかり質問するようになった感じ

600 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 17:49:10.58 ID:MA8kI4AW0.net]
コロナ自粛でGW中だから暇なんだよ
暇な人に相手して欲しいんだよ

601 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 18:04:53.11 ID:QtACG4Vk0.net]
知恵袋でやれば良いと思う

602 名前:579 mailto:sage [2021/05/01(土) 18:07:44.96 ID:4GddeLjJM.net]
>>581
> みたいな感じで月が同じでコードが一致してる場合だけ積み立てていくことってできますか?
月が同じってどこと同じなの?
コードのようにどこかで指定するってこと?
とりあえずコードがA列、金額がB列、月がC列に入っているとして
Dim 元表 As Sheet: Set 元表 = Range("A1:C10")
Dim 金額() As String: ReDim 金額(元表.Row To 元表.Row + 元表.Rows.Count - 1)
Dim 書込行 As Long: 書込行 = LBound(金額)
Dim 行 As Long
For 行 = LBound(金額) To UBound(金額)
If Cells(行, "A").Value = コード And Cells(行, "C").Value = 月 Then
金額(書込行) = Cells(行, "B").Value
書込行 = 書込行 + 1
End If
Next
ReDim Preserve 金額(LBound(金額) To 書込行 - 1)
Range("D1").Formula = "=" & Join("+",
金額)
みたいな感じでいけると思う

>582
ごめん、テキトーにググって書いてるから間違えてるみたいやな
Application.WorksheetFunction.Transpose
にしといて

603 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 18:46:01.00 ID:z941MlAe0.net]
>>599
最初の型はSheetじゃなくてRangeじゃね
あとこの人の言ってるのは普通に文字列としてValueプロパティに式を書き込めばいいような気がするけど

上で語ってる人ってあんま教えに来ないよな



604 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 18:57:24.37 ID:v351dbwI0.net]
>>599
試しにやろうとしたら最終行が型不一致でエラーになりました・・

605 名前:579 mailto:sage [2021/05/01(土) 19:57:34.66 ID:jFabojDWM.net]
>>600
> 最初の型はSheetじゃなくてRangeじゃね
すまん、そうだわ

> あとこの人の言ってるのは普通に文字列としてValueプロパティに式を書き込めばいいような気がするけど
ちょっと今試せないからやってみてくれ

>>601
すまん
Range("D1").Formula = "=" & Join(金額, "+")
だったわ

606 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 20:06:26.75 ID:v351dbwI0.net]
>>602
ありがとうございます。
今度は下から二行目でインデックスの範囲外エラーになりました、、
書込行が1行目だとredim〜のところの書込行-1が0になるからですかね?

607 名前:デフォルトの名無しさん [2021/05/01(土) 22:02:09.39 ID:ueS9oUA3M.net]
>>603
自分で考えることくらいしろや、ゆとり

608 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 22:18:52.25 ID:T1b9C9NF0.net]
dim hako() as variant

redim hako(ここはデータ数を格納)

for i = 0 to 回数

hako(i) = Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(1,1), Worksheets("Sheet1").Cells(1,1)).Value

next

こんな感じで配列の中にセルの文字入れて行こうとするとエラーになるんですが原因分かる人居たら教えてください
便宜上cellの位置は1,1にしてますけど実際は縦が動いていきます

609 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 22:41:00.37 ID:/V6pM9G50.net]
>>541
> これ、要するにString型変数の値は参照値って事?
> 察してはいたけどByval xxx$って嘘じゃん

逆にC知ってると、文字列がプリミティブってのにものすごい
違和感があるよ。「ああ、内部で変換してんだな。そういうものだと
思っておこう」と、自分を納得させる。

610 名前:579 mailto:sage [2021/05/01(土) 22:45:28.00 ID:4GddeLjJM.net]
>>603
条件に合うものがないと ReDim 金額(1 To 0) の様になってエラーになる
VBAではReDimで空の配列は作れないので条件に合うものがない場合を場合分けして処理するしかない
例えば条件に合うものがない場合はD1を空にするなら最後の2行を

Dim 式 As String
If LBound(金額) < 書込行 <= Then
ReDim Preserve 金額(LBound(金額) To 書込行 - 1)
式 = Join("+", 金額)
Else
式 = """"""
End If
Range("D1").Formula = "=" & 式

とかにすればいい

611 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 22:53:14.11 ID:1m8BqwmN0.net]
>>605
>hako(i) = Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(1,1), Worksheets("Sheet1").Cells(1,1)).Value
の、
Worksheets("Sheet1").Cells(1,1)が指してる先が数字でないなんてオチはないよね?

612 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 23:00:47.42 ID:T1b9C9NF0.net]
>>608
今見てみたんですが
ちゃんと数字を指してました

613 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 23:06:25.35 ID:v351dbwI0.net]
>>607
すごい!
ちょっと動くようになりました。
二行目のif文の<=って消していいですかね?
消さないとエラーになってしまったので
ただ、式=join("+",金額)のところで型が一致しないエラーになりました



614 名前:デフォルトの名無しさん [2021/05/01(土) 23:16:54.43 ID:d9MtRRCh0.net]
いつものあいつ確定

615 名前:579 mailto:sage [2021/05/01(土) 23:44:05.17 ID:ll+wAnFJM.net]
>>610
> 二行目のif文の<=って消していいですかね?
消し忘れだ、すまん

> ただ、式=join("+",金額)のところで型が一致しないエラーになりました
デグレードしてる俺が悪いんだが、>>601からの話と同じ

616 名前:デフォルトの名無しさん mailto:sage [2021/05/01(土) 23:54:50.36 ID:v351dbwI0.net]
>>612
凄いです!!
出来ました!!
ちょっと実際の表でも細かい数字入れてみて検証してみます。
GW潰してずーっとこの問題を考えてました。
一筋の光が見えた気がします!!ありがとうございます。

617 名前:デフォルトの名無しさん mailto:sage [2021/05/02(日) 09:42:00.36 ID:1V5M4ibt0.net]
>>590
PowerPivotでDAX関数使えば出来るかも。

618 名前:デフォルトの名無しさん mailto:sage [2021/05/02(日) 09:58:00.77 ID:1V5M4ibt0.net]
で、建ててみた

Excel ピボット Power Pivot DAX関数 質問スレ
https://mevius.5ch.net/test/read.cgi/tech/1619916663/

619 名前:デフォルトの名無しさん mailto:sage [2021/05/02(日) 10:03:52.79 ID:uM4tl5TR0.net]
いきなり宣伝てアンタ

620 名前:579 mailto:sage [2021/05/02(日) 10:19:11.69 ID:72ULtZJbM.net]
>>605
> エラーになるんですが
なぜエラーメッセージを書かないの?

>>608
数字でもダメでしょ
hako(i) = Worksheets("Sheet1").Range(1, 1).Value
になるだけだし

621 名前:デフォルトの名無しさん mailto:sage [2021/05/02(日) 10:26:38.41 ID:GQme+tVN0.net]
>>617
アプリケーション定義エラーまたはオブジェクトの定義エラーですってなります

622 名前:デフォルトの名無しさん mailto:sage [2021/05/02(日) 11:31:48.49 ID:1V5M4ibt0.net]
2スレ目に何か書いとこうと思って、
とりあえず考えついたのがこれくらいしかなかった。
スンマセン

623 名前:デフォルトの名無しさん mailto:sage [2021/05/02(日) 11:41:15.21 ID:nZ1YzZjsM.net]
>>618
>>617で頓珍漢なこと書いてたわスマン、数値かどうかは関係ないわ

> hako(i) = Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(1,1), Worksheets("Sheet1").Cells(1,1)).Value

でエラーになるのか

> 実際は縦が動いていきます

の方でエラーになるのかどっち?
上でエラーになるなら1回目なのか何回かやったらエラーになるのかのどっち?
下でエラーになるならエラーになった時のセルの指定がおかしくないかを確認
あとシートの指定は変数に入れるかWithを使った方が楽だよ

With Worksheets("Sheet1")
For i = 0 to 回数
hako(i) = .Range(.Cells(1,1), .Cells(1,1)).Value
Next
End With



624 名前:デフォルトの名無しさん mailto:sage [2021/05/02(日) 12:12:35.89 ID:GQme+tVN0.net]
>>620
独学でやってたのでその辺の知識がなくてw
withで指定するといちいち書かなくて済むんですね
エラーになるのはもう1度目からです

> hako(i) = Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(1,1), Worksheets("Sheet1").Cells(1,1)).Value

ここの時点でエラーになります。

625 名前:デフォルトの名無しさん mailto:sage [2021/05/02(日) 12:42:32.96 ID:72ULtZJbM.net]
>>621
切り分けとしてエラーになった時にイミディエイトウィンドウで

hako(i) = Worksheets("Sheet1").Range("A1").Value

Debug.Print Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(1,1), Worksheets("Sheet1").Cells(1,1)).Value

Debug.Print Worksheets("Sheet1").Cells(1,1).Address

を実行してみて

626 名前:デフォルトの名無しさん mailto:sage [2021/05/02(日) 13:21:44.18 ID:GQme+tVN0.net]
>>622
あまり使ったことがない機能で分からないんですが
試しにA1に1という数字を置いて実行したら1という結果が出ました
エラーは出なかったです

627 名前:デフォルトの名無しさん mailto:sage [2021/05/02(日) 13:32:29.72 ID:MDNwXGbEd.net]
エラーが出なくなったらよかった。
他に問題は?
解決?

628 名前:デフォルトの名無しさん [2021/05/02(日) 18:51:27.95 ID:U5GvC0it0.net]
こういう人って文法は理解できないけど
自然言語みたいに丸暗記で覚えていくのかな?

629 名前:デフォルトの名無しさん mailto:sage [2021/05/02(日) 19:13:05.11 ID:uM4tl5TR0.net]
〜10年後〜
「あ、ちゃんと覚えたほうが早かったんだ」

と、表面をなぞりまくる内に本質まで見えてきて最後に気づく人もいる
本業じゃないからね。仕方ないね。

630 名前:デフォルトの名無しさん mailto:sage [2021/05/02(日) 19:18:03.74 ID:o6kkyx/e0.net]
類型から共通点を見出して次第にルールを覚えるのは自然界の学習形態に沿っている

631 名前:デフォルトの名無しさん [2021/05/02(日) 19:36:47.01 ID:U5GvC0it0.net]
古いBASICの構文が難しいからそこだけはしっかりと覚えたほうが早いんだけどね

632 名前:デフォルトの名無しさん mailto:sage [2021/05/03(月) 02:05:26.31 ID:q65flA4Da.net]
10年後もこんなことやってるとかw

633 名前:デフォルトの名無しさん mailto:sage [2021/05/03(月) 03:55:18.41 ID:xnojJk7TH.net]
一度普及した物は、減り続けても簡単にはなくならんよ
PC-9801だっていまだに現役で使ってる工場とかあるし
サポートがなくなって10年後でもVBAを使う職場は間違いなく世界中のどこかに残ってる



634 名前:デフォルトの名無しさん mailto:sage [2021/05/03(月) 04:12:16.92 ID:mvyi8XcRa.net]
10年たってもエラーが直んないとかやっているのかと言う意味だ

635 名前:デフォルトの名無しさん mailto:sage [2021/05/03(月) 07:31:09.68 ID:o8xt4Q4Ca.net]
>>618
このエラーがでるとお手上げ
さっぱりわからない

636 名前:デフォルトの名無しさん mailto:sage [2021/05/03(月) 10:36:54.14 ID:lox1tlFa0.net]
>>605
「回数」で動くわけないだろw
数字入れろつーの

637 名前:デフォルトの名無しさん mailto:sage [2021/05/03(月) 10:55:13.04 ID:xPMfOD2I0.net]
もはや社会人いないな

638 名前:デフォルトの名無しさん mailto:sage [2021/05/03(月) 11:10:44.37 ID:l6TI+yt9M.net]
>>633
> 「回数」で動くわけないだろw
普通に変数なり定数なりを定義したら動くだろ
ツッコミならもっとおもしろいやつにしてくれ

639 名前:デフォルトの名無しさん mailto:sage [2021/05/03(月) 12:03:06.50 ID:DAKb1uRk0.net]
0から始まるときは 回数-1 じゃね

640 名前:デフォルトの名無しさん [2021/05/03(月) 14:59:49.63 ID:po5ohrNh0.net]
ttps://pastebin.pl/view/3a98fdc0

サムネイル画像の1番をクリックして表示された画像を順々にダウンロードするクローラみたいなものを作ろうとしてるのですが、
どうやったらサムネイル画像の1番めをクリックして表示された画像のURLを取得できるでしょうか?

641 名前:デフォルトの名無しさん mailto:sage [2021/05/03(月) 18:17:11.84 ID:iRbOallH0.net]
HTML の中には、サムネイル画像をクリックした時の、飛び先のリンクが書いてある。
(ただし、下には、@の文字を追加した)

最初の画像なら、
<a href="http@s://e-hentai.org/s/78a8543e34/1727798-1">

うまくスクレイピングすれば、このURL を抜き出せるのでは?

642 名前:デフォルトの名無しさん [2021/05/03(月) 20:20:21.53 ID:BZOTVT3k0.net]
シート上の複数のリストボックスの選択済みをボタンを押すと
一括クリアしたいと思っています。

For i = 0 To ActiveSheet.OLEObjects("ListBox1").ListCount - 1
If ActiveSheet.OLEObjects("ListBox1").Selected(i) = True Then
ActiveSheet.OLEObjects("ListBox1").Selected(i) = False
End If
Next i

このコードではオブジェクトがないとエラーになります。

どなたかご教授ください。

643 名前:デフォルトの名無しさん [2021/05/03(月) 22:04:23.29 ID:0Wb20ZWw0.net]
いつものあいつ



644 名前:デフォルトの名無しさん mailto:sage [2021/05/03(月) 22:25:43.32 ID:iSjmevx80.net]
そりゃオブジェクト指定してるのにオブジェクトなかったらエラーになる

645 名前:デフォルトの名無しさん mailto:sage [2021/05/03(月) 23:09:22.50 ID:Z9IP11pi0.net]
アクティブやセレクトの多用はエラー処理が面倒くさくなる場合が多い
根本的なトコロから考え直すヨロシ

646 名前:デフォルトの名無しさん mailto:sage [2021/05/04(火) 00:04:08.03 ID:ZMKTnAbRH.net]
>>639
ボックスが複数あるのか、選択肢が複数あるのか、どっち?

647 名前:デフォルトの名無しさん mailto:sage [2021/05/04(火) 00:21:07.48 ID:YgbBuLel0.net]
>>635
どっちもしてないじゃん

648 名前:デフォルトの名無しさん mailto:sage [2021/05/04(火) 19:03:55.38 ID:19cryuYQa.net]
なるほど
"sheet1"が有りません的なエラーなんだ
これは勉強になった

649 名前:デフォルトの名無しさん mailto:sage [2021/05/04(火) 23:49:30.76 ID:uwH+LPLT0.net]
一生懸命マクロを組んだのに実は標準機能で実現できると知ったときのガッカリ感

650 名前:デフォルトの名無しさん [2021/05/05(水) 00:05:02.26 ID:6kHGIPV/M.net]
何を作ったかは知らんけど付加価値を追加すればええやん
俺はカラーパレットと並び替えを付加価値を付けて作って使っているけどな

651 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 01:59:04.74 ID:OXlCsy+h0.net]
ショートカットキー押したらアクティブセルのフォントや背景の色番号が
クリップボードにコピーされるちょいマクロを作ってる
マクロ作るときに欲しい色番号をすぐ書けるので便利

652 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 09:07:35.23 ID:LGgg24P3M.net]
>>648
VBA初学者の誰もが通る道だな

653 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 09:17:08.30 ID:4t234ePa0.net]
人の作ったデータベースでIDと商品名がひとつのセルに入力されてるから個別にクリップボードにコピーするマクロを作ったな



654 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 09:38:04.66 ID:CaKZkb7J0.net]
>>646
レベルアップしたよ。その経験は無駄にはなってないよ

655 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 10:04:42.11 ID:nWfClEZV0.net]
Private Sub Worksheet_Change(ByVal Target As Range)

If _
Target.Address <> "$C$2" _
Or (IsNumeric(Target)) _
Then
Exit Sub
End If

main = Cells(1, 3).Value
main2 = Cells(2, 3).Value

If (Int(main) - (main)) = 0 Then
Sheets("DB").Cells(2, 3) = main
Else
Sheets("DB").Cells(2, 3) = Int(main2)
End If
End Sub

656 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 10:54:54.17 ID:nWfClEZV0.net]
Private Sub Worksheet_Change(ByVal Target As Range)
1つ目
If _
Target.Address <> "$C$2" _
Or (IsNumeric(Target)) _
Then
Exit Sub
End If
main = Cells(1, 3).Value
main2 = Cells(2, 3).Value
If (Int(main) - (main)) = 0 Then
Sheets("DB").Cells(2, 3) = main
Else
Sheets("DB").Cells(2, 3) = Int(main2)
End If
End Sub
2つ目
If Intersect(Target, Range("A1:C2")) Is Nothing Or Target.Cells.Count > 6 Then Exit Sub
Columns("d").ClearContents
Application.EnableEvents = False
日付1 = DateSerial(Range("A1"), Range("B1"), Range("C1"))
日付2 = DateSerial(Range("A2"), Range("B2"), Range("C2"))
For 日付 = 日付1 To 日付2
r = r + 1
Cells(r, "D") = 日付
Next
Application.EnableEvents = True
End Sub
一つ目と二つ目を合わせるにはどうしたらいいでしょうか?
前にも質問してググってみたのですが今の私のレベルでは手に負えなくて困ってます
ご教授ください

657 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 10:58:18.12 ID:CaKZkb7J0.net]
>>653
前も見た気がするけど、結局何をやりたいのか分からん
最初から最後までやりたいことを通して書いてくれ

658 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 11:08:55.56 ID:4t234ePa0.net]
この人教えるには金貰わなきゃ割に合わないくらいめんどい

659 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 11:10:46.24 ID:nWfClEZV0.net]
すみません!

   A   B   C    D
1 2021  1   1   1/1
2 2021  1   5   1/2
               1/3
               1/4
               1/5

↑のようにDateが入った表で
1/1と1/5までの日付をD列に表示したいです

もし2/4から2/6なら

660 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 11:12:17.39 ID:nWfClEZV0.net]
すみません!

   A   B   C    D
1 2021  1   1   1/1
2 2021  1   5   1/2
               1/3
               1/4
               1/5

↑のようにDateが入った表で
1/1と1/5までの日付をD列に表示したいです

もし2/4から2/6なら2/4、2/5、2/6を

661 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 11:15:04.54 ID:nWfClEZV0.net]
   A   B   C    D
1 2021  1   1   1/1
2 2021  1   5   1/2
               1/3
               1/4
               1/5

↑のようにDateが入った表で
1/1と1/5までの日付をD列に表示したいです

もし2/4から2/6なら2/4、2/5、2/6をD列に表示したいです

もしC2に数字以外の文字等が入った場合はC1の数字をC2に来るように出来るでしょうか?

662 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 11:16:11.30 ID:nWfClEZV0.net]
間違えて
何回も連投してしまいました
すみません

663 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 11:31:02.17 ID:nWfClEZV0.net]
>>655
わたしみたいな初心者にはレベル高すぎですよね
もう少しググって勉強してみます



664 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 13:52:36.59 ID:DQe3j4Yqa.net]
うむ
他人に説明するときは5w1hがきほん
だいぶよくなったよな

665 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 14:24:16.43 ID:zgzGcqkdH.net]
質問とソースの両方見ても判定条件がよくわからん
超エスパーすると、数字が5個か6個入ってたらスタートか?

666 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 14:29:49.98 ID:CaKZkb7J0.net]
>>656
数式じゃダメなの?
数式だと3分で出来たけど

D1=DATE(A1,B1,C1)
D2=IF(DATE($A$2,$B$2,$C$2)<($D1+1),"",$D1+1)
D2を下にオートフィル

667 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 14:33:33.57 ID:Dw+PnwkB0.net]
Ruby なら、

require 'csv'
require 'date'

input = <<"EOT"
year,month,day
2021,5,31
2021,6,2
EOT

options = { :headers => true } # ヘッダー有り
csv_ary = CSV.parse( input, options )

tmp_from = csv_ary[ 0 ]
tmp_to = csv_ary[ 1 ]

from_day = Date.new( tmp_from[ 0 ].to_i, tmp_from[ 1 ].to_i, tmp_from[ 2 ].to_i )
to_day = Date.new( tmp_to[ 0 ].to_i, tmp_to[ 1 ].to_i, tmp_to[ 2 ].to_i )

Range.new( from_day, to_day ).each{ |day| puts day }

出力
2021-05-31
2021-06-01
2021-06-02

668 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 14:39:31.63 ID:Peytj0fp0.net]
>>664
スレ違い

669 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 14:45:18.78 ID:CaKZkb7J0.net]
>>664
Rubyとか消滅しそうな言語で書いてどうしたいの?
https://s3-ap-northeast-1.amazonaws.com/samurai-blog-media/blog/wp-content/uploads/2019/05/66e291d220430021c308db2399680990.jpg

670 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 14:50:07.30 ID:tepg5eqrM.net]
>>666
プログラム板に常駐してるキチガイ知らないの?

671 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 14:52:08.71 ID:CaKZkb7J0.net]
>>667
知らないわ
別言語のスレとかそんなに見ない

672 名前:デフォルトの名無しさん [2021/05/05(水) 15:01:03.66 ID:CAyVZDxB0.net]
そもそもいつものあいつだし

673 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 16:38:09.75 ID:nWfClEZV0.net]
みなさんを混乱させてしまいまして
もうしわけありません



674 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 20:02:01.88 ID:mEvPZJoP0.net]
VB6やVB.NetでVBA用のDLLビルドしてるんだけど、
DLL側のクラスのメンバ構成に変更加えてリビルドしたら、それを参照しているVBAのプロジェクト側で、いちいちDLL参照解除→DLL再参照を手作業でやらんとアカンの?
面倒くさいんやけど。
って、これまでの流れ見たら、スレチな質問になるんかな。

675 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 22:06:37.83 ID:XLRqwo1W0.net]
DLLてデルルでいいの?

676 名前:デフォルトの名無しさん [2021/05/05(水) 22:10:12.24 ID:TYeLzB6b0.net]
ダリラ

677 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 22:14:38.02 ID:CaKZkb7J0.net]
>>672
「ダイナミックリンクライブラリ」
昔はドゥルルって勝手に読んでたな

678 名前: mailto:sage [2021/05/05(水) 22:15:56.49 ID:tRoHSHAj0.net]
ドロロ

679 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 22:23:14.23 ID:mEvPZJoP0.net]
質問した俺が間違っていた。

680 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 22:29:51.86 ID:XLRqwo1W0.net]
「質問した俺が間違っていた」
つまりこれをSOM、読み方はデルル

681 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 23:07:25.23 ID:gm6jmmXW0.net]
>>671
VB6とかしらんが
COMだよな?ID変わらん限り参照設定変える必要ないと思ったが
ちゃんとレジストリに登録されてないんじゃね

682 名前:デフォルトの名無しさん mailto:sage [2021/05/06(木) 06:00:24.75 ID:fowE0ZYM0.net]
>>678
レジストリには間違いなく登録してる。
例えばVB.Netで実装するDLL側で、公開するクラスのメンバ関数を一つ増やしてリビルドすると、それを参照しているVBA(Excel)実行時にエラーが出る。VBAプロジェクトのコンパイルもできなくなる。
この時、DLL参照設定解除→DLL再参照をやると正常に読み込まれる。
なお上の例では、VB.Net実装のDLL側で増やしたクラスのメンバ関数を消去して元に戻した上で再リビルドすると、DLL参照設定解除→DLL再参照をしなくても、再びDLLが正常に読み込まれる模様w。

683 名前:デフォルトの名無しさん mailto:sage [2021/05/06(木) 12:12:28.40 ID:EE3pjJQ7a.net]
>>663
おー、美しいな
Rubyの人は>>665-666みたいな声に全く耳を貸さずに延々と書いてる方で、このスレでもたまに見るのよ
ほとんど荒らしだから話しかけても無駄。丁重に無視して差し上げるのを推奨します



684 名前:デフォルトの名無しさん [2021/05/06(木) 17:15:18.35 ID:YSpOci5b0.net]
質問です
下記のように重複している項目を除いて合計値を算出するコードを教えてください。
調べたところ連想配列?を使えば良いと書いておりましたが、難しくて使い方がよくわかりませんでした・・・
素人すぎて申し訳ないですが、宜しくお願いします。
https://i.imgur.com/xJ71PFz.png

685 名前:デフォルトの名無しさん mailto:sage [2021/05/06(木) 17:31:33.29 ID:5qdpVrsh0.net]
>>679
軽く試したけど再現しない
たぶん、タイプライブラリの変えてはいけない何か(DispIdが怪しい)が変わってると思われ

これ以上はVB.Netのスレ行け

686 名前:デフォルトの名無しさん mailto:sage [2021/05/06(木) 18:29:38.21 ID:jNBg/veuM.net]
>>681
SUMIFで良いじゃんと思ったけど重複は除くのか面倒くせぇな

配列にA〜Cのデータを代入するだろ?
4列目にりんごなら1、みかんなら2を頭に付けてCのデータを連結した上で数値化して放り込むだろ?
そしたら

For RowCnt = LBound(TgtAry, 1) to UBound(TgtAry, 1)
For RowCtR = Ubound(TgTAry, 1) to RowCnt
If TgtAry(RowCnt, UBound(TgtAry, 2)) > TgtAry(RowCtR, UBound(TgtAry, 2)) Then
SavAry([略]) = TgtAry(RowCnt, [略])
TgtAry(RowCnt, [略]) = TgtAry(RowCtR, [略])
TgtAry(RowCtR,[略]) = SavAry([略])
[省略]
End If
Next
Next

みたいな事をやって配列をソートしてやるだろ?
あとは上から順に見ていけば4列目を無視しても重複が弾けるんじゃねぇかな?

687 名前:デフォルトの名無しさん mailto:sage [2021/05/06(木) 18:48:02.86 ID:2oPZ0CXkF.net]
連想配列だと練習問題みたいな課題やね

set ## = createobject("scripting.dictionary")
set @@ = createobject("scripting.dictionary")
for r = 2 to cells(rows.count, 1).end(xlup).row
if not ##.exists(cells(r, 1).value & cells(r, 2).value) then
##.add cells(r, 1).value & cells(r, 2).value
@@(cells(r, 1).value) = @@(cells(r, 1).value) + cells(r, 3).value
end if
next r

for each key in @@
rr = rr + 1
cells(rr + 1 , 5) = key
cells(rr + 1, 6) = @@(key)
next key

今スマホだから試せてないけど、こんな感じでどうだべ?

688 名前:デフォルトの名無しさん mailto:sage [2021/05/06(木) 19:08:24.28 ID:fowE0ZYM0.net]
>>682
検証、ありがと。しかし、再現ならずか。
>>679の書き込みは、一応、直前に確認してから書き込んだ。
こちらでは、管理者権限でVB.Netを立ち上げて、ビルド時にDLL登録してる。
あと>>679で試しに追加するメンバ関数は最後じゃなく、真ん中あたり(property getブロックとsubブロックの間)に追加している。
ところで、みんな、汎用の俺俺ライブラリをDLL化しないのか。

689 名前:デフォルトの名無しさん mailto:sage [2021/05/06(木) 19:14:13.18 ID:95uMi6p80.net]
>>681
俺ならわざわざVBA書かずに関数追加してピボットテーブルで集計するけど。


https://i.imgur.com/LwvzJns.png

690 名前:デフォルトの名無しさん mailto:sage [2021/05/06(木) 19:40:05.49 ID:VTnVqyux0.net]
キーは若干不安なので
=A2&"_"&B2&"_"&C2
ぐらいにはした方が良いと思う

691 名前:デフォルトの名無しさん mailto:sage [2021/05/06(木) 20:15:22.86 ID:b7Mkjg0R0.net]
>>681
Ruby では、

require 'csv'

input = <<"EOT"
りんご,A,2
りんご,B,4
みかん,D,1
りんご,B,100
EOT

input_ary = CSV.parse( input ) # 2次元配列

# 0/1列目が同じものを排除する。先に現れた行が使われる。「りんご,B,100」は使われない
input_ary.uniq! { |row| [ row[ 0 ], row[ 1 ] ] }

# [["りんご", "A", "2"], ["りんご", "B", "4"], ["みかん", "D", "1"]]

result = [ ]

# フルーツ名でグループ化する
input_ary.group_by { |row| row[ 0 ] }.each do |row|
sum = row[ 1 ].sum{ |row| row[ 2 ].to_i } # 合計
result.push [ row[ 0 ], sum ]
end

pp result #=> [ ["りんご", 6], ["みかん", 1] ]

692 名前:デフォルトの名無しさん mailto:sage [2021/05/06(木) 20:23:53.60 ID:95uMi6p80.net]
>>687
なるべく簡潔に書きたくて、そのリスクは無視したw
実際は間に何か挟んだほうがいいね。

693 名前:デフォルトの名無しさん mailto:sage [2021/05/06(木) 21:11:34.82 ID:VTnVqyux0.net]
>>681
元データいじっていいなら重複の削除が超早い(ダメでもコピーすればいいだけだけど)
ってかSQLのサブクエリなら一行で行けそうだ

Sub Macro5()
Range("a:c").RemoveDuplicates Array(1, 2), xlYes
ActiveWorkbook.PivotCaches.Create(xlDatabase, Range("a:c")).CreatePivotTable Range("e1"), "p1"

Set p1 = ActiveSheet.PivotTables("p1")
p1.PivotFields("com").Orientation = xlRowField
p1.PivotFields("com").Position = 1
p1.AddDataField p1.PivotFields("v"), "合計 / v", xlSum
End Sub



694 名前:デフォルトの名無しさん mailto:sage [2021/05/06(木) 21:12:21.95 ID:VTnVqyux0.net]
すまん、"com"は"会社名"、"v"は"値段"などに適宜書き換えてくれ

695 名前:デフォルトの名無しさん mailto:sage [2021/05/06(木) 22:14:14.24 ID:zoaLFLbx0.net]
D列に
=COUNTIF(B$2:B2,B2)
数値合計に
=SUMIFS($C$2:$C$9,$A$2:$A$9,"=" & E2,$D$2:$D$9,"=1")

696 名前:デフォルトの名無しさん [2021/05/06(木) 23:20:33.75 ID:srB+AETb0.net]
>>681
しつこい

697 名前:デフォルトの名無しさん mailto:sage [2021/05/07(金) 04:04:27.47 ID:UcyGqCZa0.net]
いまだにIFとISERROR組み合わせてエラー回避やってる人いるんだ。。。??

698 名前:デフォルトの名無しさん mailto:sage [2021/05/07(金) 04:24:40.54 ID:f/k3XSIv0.net]
流石にいまだにVBA使ってるニキの煽りは違うなw

699 名前:デフォルトの名無しさん mailto:sage [2021/05/07(金) 06:55:01.06 ID:sJ3lVRb90.net]


700 名前:iferrorはエラーの場合の値の置き換えでは? []
[ここ壊れてます]

701 名前:デフォルトの名無しさん mailto:sage [2021/05/07(金) 07:20:54.57 ID:tuSKe1qQ0.net]
booleanで取りたい場合はIFとISERROR組み合わせた方が早い

702 名前:デフォルトの名無しさん [2021/05/07(金) 07:26:43.31 ID:DloXWpsH0.net]
Excelのセルって、Accessで言うところのコントロールの
OldValue プロパティってないの?
Application.Undo以外で更新前の値に戻すときに使いたいんだけど

703 名前:デフォルトの名無しさん [2021/05/07(金) 08:26:31.62 ID:EfOHcgmKM.net]
見りゃわかることをいちいち聞くな



704 名前:デフォルトの名無しさん [2021/05/07(金) 09:36:16.79 ID:dif1qALr0.net]
教えてください
データベースから取得した大量のデータを、他のシートに簡潔集計したいです。

生データシートには
文字列としてyy(2021)mm(03)をはじめ、メーカ、注文番号、数量、ナンバー、大分類、中分類、小分類など68列に渡ってあります。

理想としては別シートに月別に
メーカ、大分類、中分類、小分類(ピポット的配置のイメージ)で購入金額、数量を降順で出したいです。
メーカや分類名は多く、都度新しいのが出たりするので、メンテナンスなくして自動で出せるようにしたいです。

どうすればいいでしょうか。

705 名前:デフォルトの名無しさん mailto:sage [2021/05/07(金) 09:51:31.13 ID:/bDSijiLM.net]
>>700
DBに入ってるんだったらSQLで最初からgroup byしたらいいだけ

706 名前:デフォルトの名無しさん [2021/05/07(金) 10:21:13.76 ID:dif1qALr0.net]
>>701
すみません、>>700が最終形態ではなく、これができたら私のイメージのモノができるのでお聞きしました。
なのでvbaで回答頂けたら助かります<(_ _)>

707 名前:デフォルトの名無しさん mailto:sage [2021/05/07(金) 10:44:31.42 ID:uFptLScD0.net]
>>702
VBAの中でシートに対してSQL投げて
結果のRecordsetをシートに貼り付けるだけでは?

708 名前:デフォルトの名無しさん [2021/05/07(金) 10:49:59.41 ID:dif1qALr0.net]
>>703
すみません。
私がSQLを理解していないので、正直わかりません。
何か分かりやすいサイト等あったら教えてもらえますか?

709 名前:デフォルトの名無しさん [2021/05/07(金) 11:55:04.67 ID:Uq/dH8v/M.net]
またいつものあいつか

710 名前:デフォルトの名無しさん mailto:sage [2021/05/07(金) 12:02:29.78 ID:W+W51fKCa.net]
ここの諸先輩方にとってSQLってどういう位置付け? 常識レベル?

711 名前:デフォルトの名無しさん mailto:sage [2021/05/07(金) 12:10:39.55 ID:Gobk7VPl0.net]
手足と同じレベル

712 名前:デフォルトの名無しさん mailto:sage [2021/05/07(金) 12:13:21.02 ID:/bDSijiLM.net]
>>704
DBがあるんだったらそれをメンテしてる人間もいるだろ?
そいつに聞け

713 名前:デフォルトの名無しさん mailto:sage [2021/05/07(金) 15:40:07.47 ID:1tkbLq7p0.net]
DeBu



714 名前:デフォルトの名無しさん mailto:sage [2021/05/07(金) 19:08:51.24 ID:uFptLScD0.net]
>>704
EXCELでどういうObject使ってシートにSQLを投げるかはVBA シート Sql 辺りでググればいくらでも出てくるけどとりあえず一例としてここかな
www7b.biglobe.ne.jp/~whitetiger/ex/ex2002088.html

SQLがどういうものかは流石に SQL 入門 辺りでググってくれ
今は使ってないとしても本来VBAと同等かそれ以上の優先順位で覚えるべきものだから絶対覚えておいた方がいい。

715 名前:デフォルトの名無しさん [2021/05/07(金) 20:08:21.87 ID:xGNvq5Jp0.net]
なぜインプロセスだかアウトプロレスだかの話を入れたのかがわからないな

716 名前:デフォルトの名無しさん mailto:sage [2021/05/07(金) 21:41:30.83 ID:Z7WMK8Ny0.net]
Ruby on Rails は、MVC(model/view/controller)モデルだから、
最初から、3大データベース(SQLite/MySQL/PostgreSQL)を使う

入門レベル

717 名前:デフォルトの名無しさん [2021/05/07(金) 22:30:42.79 ID:hSzgOaHp0.net]
>>712
MVCだから?馬鹿は黙ってろよ

718 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 00:33:08.33 ID:H8oTRyi2d.net]
>>712
ちょっと何言ってるのかわからない

719 名前:デフォルトの名無しさん [2021/05/08(土) 00:50:58.02 ID:9rj5+JrYM.net]
オワコンRubyにしがみつくのはこういう馬鹿ばっか

720 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 00:57:21.53 ID:PaQQNn710.net]
言語の終わりを実体験するとかなかなか稀有な例だと思う

721 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 00:59:37.62 ID:xzBPi/0q0.net]
VBA使っておいて他の言語をオワコン呼ばわりする権利はないと思うが
Ruby荒らしは前からいるキチだからNGしよう

722 名前:デフォルトの名無しさん [2021/05/08(土) 01:17:43.20 ID:xwL6HEYY0.net]
>>716
は?馬鹿なの?
DelphiとかADAとかSmallTalkとかたくさんあるだろ

723 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 01:46:00.09 ID:PaQQNn710.net]
>>718
どれもこう、誰も使わなくなってから「あ、そういやなくなってたんだ〜。D言語(だぶりゅー)なんてあったな〜」程度だけど、
rubyに関してはこの狂信者だか超アンチが一強で荒らし回っていて強制終了させている
終わり目の言語に止めをさすとか、こんなん後にも先にもないだろうw



724 名前:デフォルトの名無しさん [2021/05/08(土) 05:21:49.11 ID:xwL6HEYY0.net]
>>719
そういう意味なら納得

725 名前:デフォルトの名無しさん [2021/05/08(土) 08:40:58.17 ID:Wz5DhM+2F.net]
>>710
ありがとうございます。
ふとした疑問なんですが、基本データベースからの
処理が多い場合は、vbaよりもsql勉強した方がいいのでしょうか。

今vbaを一生懸命勉強している最中ですが、効率の悪いのかなって思ってしまって

726 名前:デフォルトの名無しさん [2021/05/08(土) 08:47:24.17 ID:YWSmrfQq0.net]
Excel Access使うならVBAは必須
データベース使うならSQLは必須

当たり前のことですね

727 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 09:07:14.40 ID:L4NnuIXtM.net]
何するにしてもVBAは別に必須ではない
データ処理やプログラミングをするほぼ全ての人にとってSQLは必須

728 名前:デフォルトの名無しさん [2021/05/08(土) 09:40:04.43 ID:Wz5DhM+2F.net]
初歩的な質問ばかりですみませんでした(-_-;)
私自身パソコンが苦手なので、せめてvbaを身に着けようと思いましたが・・・

vba sql どちらも難しそうですネ

729 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 09:58:17.60 ID:Z/jAVLJW0.net]
>>721
>ふとした疑問なんですが、基本データベースからの
>処理が多い場合は、vbaよりもsql勉強した方がいいのでしょうか。

それはそうなんだけど
あくまで俺の場合はだけど
SQLをまともに勉強した記憶がない。

まぁ必要にかられたとき
必要な分だけ調べて覚えれば
基本部分は十分追いつけるものって
ことなんだろうな

730 名前:デフォルトの名無しさん [2021/05/08(土) 10:18:13.28 ID:Wz5DhM+2F.net]
vbaってどれくらいできたら、まあまあ使える人になりますか"(-""-)"
私は下のやつでもう混乱しています・・・これは基本なんですかね?
Sub ()
  Dim i As Long
  Dim ixR As Long
  Dim ixC As Long
  Dim ws1 As Worksheet
  Dim ws2 As Worksheet
  Set ws1 = Worksheets("練習15")
  Set ws2 = Worksheets("練習15_回答")
  ws2.Range("A1").CurrentRegion.Offset(1, 1).ClearContents
  With ws1
    For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
      ixC = 2
      Do Until ws2.Cells(1, ixC) = .Cells(i, 1)
        ixC = ixC + 1
      Loop
      ixR = 2
      Do Until ws2.Cells(ixR, 1) = .Cells(i, 2)
        ixR = ixR + 1
      Loop
      ws2.Cells(ixR, ixC) = ws2.Cells(ixR, ixC) + .Cells(i, 3)
    Next
  End With
End Sub

731 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 10:19:00.10 ID:PaQQNn710.net]
>>724
事務作業で死ぬほど役に立つのはvba。事務だけじゃなく営業でもちょっとした所で使えるなら、事務作業はほぼゼロになるだろう
sqlは使うべき時が来れば、その時に勉強すれば良い。その時に使うのはselectとjoinのはずだ

732 名前:デフォルトの名無しさん [2021/05/08(土) 10:23:23.79 ID:Wz5DhM+2F.net]
>>727
なりほど( *´艸`)
私は事務ですけど、正直vbaもsqlも使わなくても力技でどうにかなってきました。
関数とピポットで・・・
でも時短でvbaしようと思ってやってるんですが、どっちがいいか正直よくわかってません。

勉強しないと

733 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 10:23:26.16 ID:PaQQNn710.net]
>>726
読みづらいし色々詰め込みすぎ。個人的にも使わないものが多い
・宣言(dim〜)
・with
・do until
はそうそう使わない

>For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row

>最終行=Cells(.Rows.Count, 1).End(xlUp).Row
>For i = 2 To .最終行
と分けたほうが読みやすい

for、if、setが使えれば大体良いと思う



734 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 10:25:26.96 ID:PaQQNn710.net]
>>728
毎回同じピボットを作っているなら、ピボットをvbaでボタン一つで作ってみるとか
普段やってることを自動化するとすぐに覚えられるよ
※ただ、ピボットマクロはかなり大変なのマクロの記録を全力で使ったほうが良い

735 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 10:25:49.52 ID:7sae8zS6M.net]
質問者は現に今使うべき時に来ているのに何を言っているのか
実際SQLで一瞬でできることを知らないままVBAで>>726みたいな暗号を延々血反吐吐きながら垂れ流してる可哀想なVBAerは多いし、質問者もここでSQLを使えと言われていなければそうなっていただろう
SQLはVBAよりずっと簡単だから、あまりVBAを使い込む前にSQLは一通りやった方がいい

736 名前:デフォルトの名無しさん [2021/05/08(土) 10:26:05.17 ID:Wz5DhM+2F.net]
>>729
そうなんですか!?
私が使ってるサイトdimは全部に使ってました・・・

すごいショック😢

737 名前:デフォルトの名無しさん [2021/05/08(土) 10:29:56.46 ID:Wz5DhM+2F.net]
>>731
vbaを反吐がでるまで打とうと思ってました
私文系で詳しくないから、みなさん数を打って覚えているのかと・・・

一度sqlについて調べてみます。ありがとうございます。

738 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 10:30:50.49 ID:PaQQNn710.net]
あぁ、確かに一回は触っておいた方がいいか

>>732
どっちでもいいよ
宣言なんて間違えないため+メモリ節約のためだけど、
今はメモリが潤沢にあるし宣言を書きに頭に戻るとかアホらしいし余計に間違うわ

739 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 11:21:40.14 ID:SHLAkmOY0.net]
前から気になっていたんだけどセルを1つ選んで右クリックして挿入や削除するときのメニューで
セルの削除なのに「ファイルの削除」って表示されるの俺だけ?

740 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 11:36:39.10 ID:PaQQNn710.net]
>>735
yes

741 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 11:50:01.75 ID:zkiV4DEW0.net]
>>732
> 私が使ってるサイトdimは全部に使ってました・・・
それで正しい
今時コードの先頭にOption Explicitが入ってないサイトは無視していいレベル
ID:PaQQNn710はレベルの低いドヤ顔爺だから話半分に受け流しておけばいい

742 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 12:39:16.21 ID:wIqzNMvOM.net]
ここはドヤ顔爺の巣窟ですよ。
子供は他所で遊んだ方が良いですよ。

743 名前:デフォルトの名無しさん [2021/05/08(土) 13:17:27.11 ID:SUb7u/UA0.net]
私の勉強方法が合っているのか分からなくなってきました( *´艸`)



744 名前:デフォルトの名無しさん [2021/05/08(土) 13:18:27.12 ID:SUb7u/UA0.net]
ID変わっちゃったけどdimのモノです・・・

745 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 13:36:12.98 ID:75Tkj6otd.net]
>>740
dimもwithもdo untilも安心して使っていいよ
ただ必ずしも関数の最初にdimをまとめておく必要はないのでiとかは必要になったときに宣言するのでも大丈夫
あとws1みたいな連番の変数よりは目的を具体的に表した変数名の方が良い

746 名前:デフォルトの名無しさん [2021/05/08(土) 13:49:53.06 ID:SUb7u/UA0.net]
>>741
ありがとうございます。
粛々とがんばります・・・
実際>>726は綺麗ではないんですかね?

747 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 14:01:23.31 ID:75Tkj6otd.net]
>>742
綺麗か綺麗でないかって尺度だとなんともだけど丁寧に書こうとしてるのは伝わるので応援したい
パフォーマンスとか考えるともう少し良くできそうなのと、個人的には関数を小さく分けた方が見通しが良くなるかもしれない(ちょっと曖昧な表現になってすまない)

748 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 14:50:38.57 ID:PaQQNn710.net]
俺ならこうなるかなぁ
ただ書いてて思ったけど、index(match(),match())で済むような?

Sub () foo
  Set 元シート = Worksheets("練習15")
  Set 転記先シート = Worksheets("練習15_回答")
  転記先シート.Range("A1:B2").ClearContents

  For i = 2 To 元シート.Cells(元シート.Rows.Count, 1).End(xlUp).Row
    転記列 = 2
    Do Until 転記先シート.Cells(1, 転記列) = 元シート.Cells(i, 1)
      転記列 = 転記列 + 1
    Loop
    転記行 = 2
    Do Until 転記先シート.Cells(転記行, 1) = 元シート.Cells(i, 2)
      転記行 = 転記行 + 1
    Loop
    転記先シート.Cells(転記行, 転記列) = 転記先シート.Cells(転記行, 転記列) + 元シート.Cells(i, 3)
  Next
End Sub

749 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 14:53:21.72 ID:PaQQNn710.net]
間違えた、こうか

Sub () foo
  Set 元シート = Worksheets("練習15")
  Set 転記先シート = Worksheets("練習15_回答")
  転記先シート.Range("A1:B2").ClearContents

  For i = 2 To 元シート.Cells(元シート.Rows.Count, 1).End(xlUp).Row
    列 = 2
    Do Until 転記先シート.Cells(1, 列) = 元シート.Cells(i, 1)
      列 = 列 + 1
    Loop
    行 = 2
    Do Until 転記先シート.Cells(行, 1) = 元シート.Cells(i, 2)
      行 = 行 + 1
    Loop
    転記先シート.Cells(行, 列) = 転記先シート.Cells(行, 列) + 元シート.Cells(i, 3)
  Next
End Sub

>742
慣れてない感じは凄い伝わる
コードは後で見直してすぐに内容が分かるように書いたほうが良い。コメントを入れまくるんだ

750 名前:デフォルトの名無しさん [2021/05/08(土) 15:03:51.26 ID:SUb7u/UA0.net]
みなさんご丁寧にありがとうございます_(._.)_
vbaを使う人はみなさん頭がいいですね・・・自信ないなーww

sql含めてやってみます。。

751 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 15:07:11.21 ID:zkiV4DEW0.net]
>>742
Do Until 〜 Loop
は他の言語だとあまり見ないから条件逆にして
While 〜 WEnd
の方が馴染みのある人が多いっていうぐらいの話
あとコメント入れまくれとか言う老害は無視していい

>>745
そこまでやるなら i じゃ無くて 転記元行 とかにしろよ

752 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 15:13:57.96 ID:75Tkj6otd.net]
入れまくれってのは程度にもよるけど読み返すときの手がかりとしてのコメントは残しておいた方がいい

753 名前:デフォルトの名無しさん [2021/05/08(土) 15:16:34.30 ID:xwL6HEYY0.net]
ID変える、しつこく何度も質問する、わざとらしいへりくだり
いつものあいつだろうが



754 名前:デフォルトの名無しさん [2021/05/08(土) 15:26:39.50 ID:SUb7u/UA0.net]
>>749
すみません、誰のことを指しているか分かりませんが、私はあなたの想像している人ではありませんよ。
vbaで悩んでて、質問掲示板ってあったので使わせてもらっただけです。

755 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 17:03:41.13 ID:6tENHryO0.net]
>>729
VB6の開発プロジェクトやってたけど
どのソースコードでもdimもwithもdo untilも当然のように使ってたぞ
お前が使わないってだけじゃないの?
あとOption Explicitつけないのはバグの原因になるから推奨できない。

756 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 18:11:49.59 ID:jYvDj1vcd.net]
VBScript(WSH)はDimないし使わないのも自然だけどVBAはありがたくOption ExplicitもDimも使うな

757 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 18:14:06.32 ID:IhtMBIEH0.net]
俺は変数宣言するけどoption付けない事も多いな
自分だけのちょんプロとか

758 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 19:23:35.24 ID:vdqKmiMMd.net]
>>750
この文章でモロバレ

759 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 20:01:04.28 ID:+76Iryda0.net]
With使わないのは、C#に採用されなかったように最近の流れだからまあいい
Doも、ループはWhileに統一しろってルールならまあいい

Dim使わんってどういうことだ?
まさか変数の宣言しないってことじゃないよな

Option Explicitなんて自分で書くことまずないが、真っ先に変更するオプションじゃないのか

760 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 20:07:27.25 ID:cJeFkg/00.net]
変数の宣言しないと型違いのエラーとか検知しづらくなるし、
コードの中で比較が出てきた時に自作関数の結果か変数の値かどっちと比較してるのかわかりづらくなったり…

とにかく色々エラー回避とかメンテナンス性とか考えて変数宣言しないのはナシよりのナシかと

761 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 20:35:45.94 ID:QG+os5rrH.net]
基礎ができてなくて、型の使い分けがわからなくて全部Variantで書いてる人

762 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 21:04:16.49 ID:PaQQNn710.net]
>>755
しない

以下でエラーが起きないって時点で俺はアホらしくなって宣言をやめた

Sub foo()
Dim a As String
Dim b As Long

a = "1"
b = 2
Debug.Print a + b '3が出るぞ良かったな

End Sub

763 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 21:06:38.67 ID:PaQQNn710.net]
宣言しないと何ができなくなるのか、何を間違えるのかが分からん



764 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 21:30:00.76 ID:6tENHryO0.net]
>>758
それは暗黙の型変換が行われるから。

変数の宣言をしたほうがいいのは以下のような場合にエラーにできるから。

public sub foo()
hensu = 1
Debug.Print hansu + 1
end sub

2が出力されることを期待しているが、この場合1が出力される。(変数名の打ち間違い)

765 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 21:36:40.65 ID:6tENHryO0.net]
VB6やVBAは型が弱いので、変数名の先頭にintやlng、str等をつけてデータ型がわかるようにするのが一般的だと思ってる。
この場合だと
Dim intHensu As Integer
の宣言を入れておくべき。

766 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 21:37:56.47 ID:PaQQNn710.net]
>>760
なるほど
そういう意味では型をつけずに全部variantで宣言はアリなのか
dim a,b,c
ってな感じで

767 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 21:39:48.07 ID:PaQQNn710.net]
>>761
変数名見れば何入ってるか分からないか?

768 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 21:43:37.13 ID:6tENHryO0.net]
>>763
ごめん一般的といったのは、自分がそう思ってただけなので、実際はそうじゃないかも。

769 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 21:45:17.15 ID:jYvDj1vcd.net]
何でもかんでもVariant型だと余計にメモリ食ったり速度面で劣るんじゃなかったっけか

770 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 21:52:57.44 ID:QG+os5rrH.net]
簡単なマクロならメモリも速度もほとんど気にしなくていい
そういうのが気になってきてから速くする方法を勉強してもいいと思う

771 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 21:55:44.85 ID:cJeFkg/00.net]
文字列 String
整数 Long
小数以下も必要 Single
日付 Date
Setが必要なもの Object
なんでも Variant

初心者ならこれくらいの使い分け出来てたら十分だから宣言はして

772 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 21:57:26.01 ID:L/dDaofga.net]
大量のデータをがばっと取るときはsql
とってきたデータをチマチマ加工したいときはVBA

二刀流がべだー

773 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 22:02:54.21 ID:L/dDaofga.net]
変数宣言でいちばん重要なのは
パブリック変数なのか
プライベート変数なのかだよ

型はそんなに気にしなくてよいから
3文字以下ならプライベート、パブリックなら5文字以上にする



774 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 22:18:22.12 ID:Z/jAVLJW0.net]
>>769
いや、そもそも
外部とのやり取りはプロパティで行わないと
ブレイクポイント等仕掛けて
どこから呼ばれたか分かり辛くなることを考えると
変数をPublicで宣言する機会はまず無くなるだろう。

もちろんこのプロパティと言うのは概念的なものを含めて
Javaの様に関数と同じ様に設定することも含めるけど。

そうすればパブリック、プライベートの
判断のために変数名の考慮を行う必要も無くなる。
良かったな。

775 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 22:31:52.03 ID:PaQQNn710.net]
>>765
variantはかなり遅い
longをvariantにすると
0.001秒の処理が0.01と、処理時間が10倍近くになることも

>>769
vbaのグローバル変数はマジでやめたほうが良い。大体良くない事が起こる
グローバル変数使うなら作業シートに書いたほうがよっぽどマシ
逆にシートにないデータをconst staticみたいに使うならアリ

776 名前:デフォルトの名無しさん mailto:sage [2021/05/08(土) 23:54:10.02 ID:+76Iryda0.net]
>>758
そもそもそのコードで3を期待しないのがおかしいとしか思えんのだが

"12"を期待するなら+じゃなくて&使えよ

777 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 00:48:39.55 ID:vQpWnC+C0.net]
>>761
ハンガリアンなついな
VBAあたりを最近書いてないからか

778 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 01:41:49.82 ID:SiihAWPs0.net]
variantにすると型間違いでエラーがでないので
やはり推奨できない

779 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 02:15:37.67 ID:vzYu7ze/0.net]
知恵を貸してください

ある可変長2次元配列のデータについて
各列のデータから1つずつ抽出した文字列の組み合わせを出力したいと考えています

例えばArray(2,2)のデータが以下だとします
Array(0,0)="いちご"
Array(0,1)="みかん"
Array(0,2)=""
Array(1,0)="あまい"
Array(1,1)="すっぱい"
Array(1,2)="にがい"
Array(2,0)="100円"
Array(2,1)="200円"
Array(2,2)=""
この場合
「いちご,あまい,100円」「いちご,あまい,200円」「みかん,すっぱい,100円」
などの
空白を除く2*3*2=12通りの組み合わせ全てを抽出したいのです
(抽出先はシートでも配列でも何でも良いです)

そして実際にはこの配列をArray(x,y)とすると
xとyは1以上の自然数で不定です

配列の行数が固定長であれば各行において行の数だけFor文でループの中にループを入れれば良いのでしょうが
配列の行数が1以上の不定数の場合にどうすれば良いか思い付きません

vbaというよりアルゴリズムの問題かも知れませんが
良い方法はあるのでしょうか

780 名前:デフォルトの名無しさん [2021/05/09(日) 02:26:22.29 ID:qbmXU1K50.net]
はい、いつものあいつ

781 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 04:53:38.03 ID:yBvaHslb0.net]
>>724
はい、難しいです。簡単なら今頃VBマスターで溢れ帰ってます!
日々の努力あるのみです!

782 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 06:11:50.07 ID:Gu7b6Am40.net]
相手しない相手しない

783 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 08:20:21.39 ID:nRlrfZeFa.net]
ワークシートをグローバル変数みたいなつかい方をする

うむ、よくある



784 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 09:19:54.62 ID:TBZcO69u0.net]
uboundで現在の配列の最大要素番号調べて、そこまでループとかじゃないの?
そもそも配列なんて自分はあんまり使わない。redim preserveって確かかなり遅かった気がする。

785 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 09:44:03.47 ID:1mWvM4p1M.net]
ReDim Preserveは1番ケツの次元しか可変に出来ねぇのがとても残念

786 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 09:48:20.73 ID:HdQWbOvH0.net]
>>775
Sub foo()
Dim array1() As String
ReDim Preserve array1(3, 3)

array1(0, 0) = "いちご"
array1(0, 1) = "みかん"
array1(0, 2) = ""
array1(1, 0) = "あまい"
array1(1, 1) = "すっぱい"
array1(1, 2) = "にがい"
array1(2, 0) = "100円"
array1(2, 1) = "200円"
array1(2, 2) = ""

For Each dim1 In array1
If dim1 <> "" Then
Debug.Print dim1
End If
Next

End Sub

vbaの動的配列は本当にめんどくさいな

787 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 10:05:56.73 ID:Nzaho5/SH.net]
行数、列数はUBound関数で調べられる
2次元配列の場合は

UBound(array1, 1)
UBound(array1, 2)

で、それぞれの次元の大きさが取得できる
2番目のパラメータが対象となる次元

あと、多次元配列に一気に代入するにはarray関数を次元と同じ数だけ入れ子にする方法がある

  array1 = Array( _
    Array("いちご", "みかん", ""), _
    Array("あまい", "すっぱい", "にがい"), _
    Array("100円", "200円", ""))

788 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 10:13:55.83 ID:vzYu7ze/0.net]
ありがとうございます

ReDim Preserveの配列再定義は知っているのですが
例えば>>782のようだと
「いちご」
「みかん」
「あまい」
……
「200円」
のような2+3+2の7個出力されるだけですよね

「いちご,あまい,100円」
「いちご,あまい,200円」
「いちご,すっぱい,100円」
……
「みかん,にがい,200円」
のような2*3*2の12個を出力したいのです

行数が固定なら例えばArray(2,x)のように列数が不定でも
For i=0 To UBound Array(0,x)
For j=0 To UBound Array(1,x)
For k=0 To UBound Array(2,x)
Debug.Print Array(0,i)& "," & Array(1,i)& "," & Array(2,i)
Next
Next
Next
のようにして空白部分の例外処理を適当に入れれば良いのは分かりますが
行数が不定なので分からないというお話です

789 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 10:14:00.97 ID:Nzaho5/SH.net]
>>775
2次元配列の要素数が不明の場合こういう書き方もできる
  For i = 0 To UBound(array1)
    For j = 0 To UBound(array1(i))
      Debug.Print array1(i)(j)
    Next j
  Next i

790 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 10:14:31.62 ID:HdQWbOvH0.net]
>>782は全然違うわ、スマン

791 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 10:50:20.26 ID:Nzaho5/SH.net]
>>784
とりあえず、Array関数というのが存在するから、変数名にArrayは使っちゃだめ
ArrとかMyArrayとか何か別の名前に変えないと

792 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 11:38:04.63 ID:TBZcO69u0.net]
自分で書くならこうかな?
再帰処理使わないでスッキリ書く方法は思いつかなかった。

https://i.imgur.com/noQC9bg.png

これでだめ?

793 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 11:47:23.05 ID:Nzaho5/SH.net]
とりあえずもう一つ突っ込みたい
Preserveは不要だしパラメータも(3, 3)じゃない
ReDim array1(2, 2) が正解

>>788
ネストの深さが不定の時は再帰でやるのが一番自然だと思うよ



794 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 11:59:36.87 ID:TBZcO69u0.net]
ごめんちょっと動作検証してたら、Uboundのとこxとyが逆だった。
Ifの中に書いてるのが、Ubound(ary1)
でForの中に書いてるのが
Ubound(ary1, 2)
ですね。

795 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 12:09:11.80 ID:TBZcO69u0.net]
>>789
おっしゃるとおりですm(_ _)m
せっかくご指摘いただいたので、直したものを上げ直します。

https://i.imgur.com/ykrQPY4.png

796 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 12:10:40.52 ID:Nzaho5/SH.net]
やってることは同じだけど画像だと入力が面倒だろうし、俺もほとんど同時に作っちゃってたんで貼らして

Option Explicit
Sub foo()
  Dim array1() As String
  ReDim array1(2, 2)
  array1(0, 0) = "いちご"
  array1(0, 1) = "みかん"
  array1(0, 2) = ""
  array1(1, 0) = "あまい"
  array1(1, 1) = "すっぱい"
  array1(1, 2) = "にがい"
  array1(2, 0) = "100円"
  array1(2, 1) = "200円"
  array1(2, 2) = ""

  Call recloop(array1, 0, "")
End Sub

Sub recloop(array1, row1, str)
  Dim col1
  If row1 < UBound(array1, 2) Then
    For col1 = 0 To UBound(array1, 2)
      If array1(row1, col1) <> "" Then Call recloop(array1, row1 + 1, str & array1(row1, col1) & ",")
    Next
  Else
    For col1 = 0 To UBound(array1, 2)
      If array1(row1, col1) <> "" Then Debug.Print str & array1(row1, col1)
    Next
  End If
End Sub

797 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 12:23:48.39 ID:vzYu7ze/0.net]
ありがとうございます
再帰関数の知識は持っていたのですが
自身で再帰関数を使用したことは無かったため盲点でした
このように使用するのですね

助かりました参考にさせて頂きます

798 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 13:41:59.08 ID:WHUEfE6G0.net]
>>779
グローバル変数と言うよりストレージみたいなもんだと思ってる

799 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 21:06:29.88 ID:o10D8BaNM.net]
ReDim使うのって要素数に変数使うときじゃなかった?
数が決まってるならDim array(0 to 2, 0 to 2) As Stringで良いんだよね?

800 名前:デフォルトの名無しさん [2021/05/09(日) 21:07:35.90 ID:OCR3m9+L0.net]
>>737
あなたに禿同!

801 名前:デフォルトの名無しさん mailto:sage [2021/05/09(日) 21:47:13.65 ID:HdQWbOvH0.net]
>795
動的配列と静的配列の違いだよ
「変数」でもなければ「数が決まってる」でもなく、「後で変更するかどうか」が違う所

802 名前:デフォルトの名無しさん mailto:sage [2021/05/10(月) 01:12:41.56 ID:8FNokcfwd.net]
再帰を使わない方法でやってみた
「r行c列」の配列を「c桁のr進数」とみなしてる。とりあえず動いたけどバグあるかも

Sub Macro5()
  Dim array1() As String
  ReDim array1(2, 2)
  array1(0, 0) = "いちご"
  array1(0, 1) = "みかん"
  array1(1, 0) = "あまい"
  array1(1, 1) = "すっぱい"
  array1(1, 2) = "にがい"
  array1(2, 0) = "100円"
  array1(2, 1) = "200円"
  row0 = UBound(array1, 1)
  col0 = UBound(array1, 2) + 1
  For n = 0 To (row0 + 1) ^ col0 - 1
    nn = n
    s = ""
    For row1 = row0 To 0 Step -1
      col1 = nn Mod (row0 + 1)
      nn = nn \ (row0 + 1)
      If array1(row1, col1) = "" Then
        s = ""
        Exit For
      Else
        s = array1(row1, col1) & s
        If row1 Then s = "," & s
      End If
    Next
    If s <> "" Then Debug.Print s
  Next
End Sub

803 名前:デフォルトの名無しさん mailto:sage [2021/05/10(月) 20:50:28.57 ID:6x/72ii/a.net]
そもそもの疑問で、なぜVBAは初心者向けとか言われるのでしょうか。
こんなに小難しいチマチマしたこも書かなきゃいけないのに。
全然わからん。



804 名前:デフォルトの名無しさん mailto:sage [2021/05/10(月) 20:50:49.81 ID:GwFlyMni0.net]
>>761
俺もハンガリアン使ってるわ

805 名前:デフォルトの名無しさん mailto:sage [2021/05/10(月) 20:53:01.66 ID:2ArSfNqX0.net]
>>775
総当りってよく考えればパワークエリでクロス結合すれば一発だろって思ったら、パワークエリにクロス結合が無かった・・・
https://www.shegolab.jp/entry/excel-macro-cross-join

accessだとアホみたいなクエリで即完成
https://i.imgur.com/moHa3bx.png

806 名前:デフォルトの名無しさん mailto:sage [2021/05/10(月) 20:55:51.32 ID:/NuMOBBIM.net]
>>799
昔はプログラミングはもっと敷居が高かったんだよ
その中では、Excelさえあれば使えてUIはExcelのワークシートをそのまま利用できるという手軽さは初心者には魅力的だった
その頃の名残だね
今ではPowerAppsとかGASとかSalesforceとかもっと簡単で強力な選択肢は色々あるし、
プログラミングの勉強ならPythonとかJavaScriptの方が初学者には敷居が低い

807 名前:デフォルトの名無しさん [2021/05/10(月) 20:57:55.19 ID:vb1TGTCB0.net]
ハンガリアンより#%&$の方が分かりやすいよな

808 名前:デフォルトの名無しさん mailto:sage [2021/05/10(月) 21:06:13.53 ID:6x/72ii/a.net]
>>802
レスありがとうございます。
今、流行りの言語に比べてなぜこんなに、と思っていました。
もっと難しかったのですね。
理解しました。
パソコン仕事を楽に短縮できるよう頑張ります。

809 名前:デフォルトの名無しさん mailto:sage [2021/05/10(月) 21:09:38.66 ID:2ArSfNqX0.net]
vbaは本当に楽。forとif覚えるだけで仕事がはかどりまくり
Cはメモリの知識やらヘッダやら本当に覚える事が多かった上に超便利なワークシートってもんもない

810 名前:デフォルトの名無しさん mailto:sage [2021/05/10(月) 21:10:42.65 ID:aMiH/GVN0.net]
まったくな

811 名前:デフォルトの名無しさん [2021/05/10(月) 21:13:02.21 ID:vb1TGTCB0.net]
沢山の似たようなライブラリが公開されていて
いろいろな方法でやりたいことが実現できる

それはそれはいい時代になりました

でも、コレがやりたければコウ書け!
まどろっこしいが他に道は無い!
ってのも初心者にはいいものですよ

812 名前:デフォルトの名無しさん [2021/05/10(月) 21:46:59.07 ID:WQl4RFpm0.net]
条件付き書式や文字の縮小機能まであって、CopyFromRecordsetの異様な速さ
(もちろんシート関数やオートフィルタの速さも異様でしょう)
VSでは無理だし、自作も当然無理
Excel部署の人だって、1人では無理でしょう

813 名前:デフォルトの名無しさん [2021/05/10(月) 21:59:47.57 ID:WQl4RFpm0.net]
でも.NETに比べれば、メモリを意識するよ
参照渡しとかMidで打刻とか
結果、値渡しの.NETの方が速いけどw(初期の.NETはVBAの方が速かったが)



814 名前:デフォルトの名無しさん mailto:sage [2021/05/10(月) 22:34:57.25 ID:ViCp850r0.net]
VBA は、シェルスクリプトと同じ。
ちょっとした事しかできない

それを知らない香具師が、複雑なプログラミング用途に使って、
結局保守できなくて、Ruby の10倍ぐらいのコストが掛かる

ちょっとしたナイフで、マグロをさばいたりするのと同じ。
道具・用途のミスマッチ

だから、ウェブ系の会社は、プログラミング言語は適材適所で選択しますって言う。
道具・用途を合わせる。
言語を固定化しない

頭が柔軟。
先に道具を選択しない。
用途から道具を選ぶ

実社会では、ほとんどこればっかり

815 名前:デフォルトの名無しさん mailto:sage [2021/05/10(月) 23:04:34.19 ID:E9+bgpxg0.net]
ExcelのAPIが優秀なのであってVBA自体は微塵も良くない

816 名前:デフォルトの名無しさん [2021/05/10(月) 23:09:51.84 ID:W7s1RH430.net]
>>810
で、終わったRubyしか使えず>>712みたいな嘘を書き散らすようになると

817 名前:デフォルトの名無しさん [2021/05/11(火) 00:42:36.92 ID:OkNnulfr0.net]
先に道具を選択しないと言いながら、道具ありきの叩きw

オープン系は外から機能を持って来るのが特徴なので、言語自体の機能は不要
なんでも呼べるシンプルなシェルのようなもの、オープン系の起点としてふさわしい

大量データの組合せならSQL ServerにBULK INSERTしてCROSS JOINするのが最速のはず
でもそのクエリを投げるのはVBAで十分で、結果の表示はExcelのCopyFromRecordsetが最速のはず

818 名前:デフォルトの名無しさん mailto:sage [2021/05/11(火) 01:44:32.13 ID:hzo0csgz0.net]
>>801
それじゃ希望した動作にならないのでは?
テーブルの数が不定なのだから。
集計するごとにクエリを作り直すことになる。

819 名前:デフォルトの名無しさん mailto:sage [2021/05/11(火) 05:27:49.58 ID:/SA0DWk40.net]
>>814
クエリってAccess VBAで動的に生成できるんだぜ

820 名前:デフォルトの名無しさん mailto:sage [2021/05/11(火) 07:53:09.78 ID:FeyzCVkSd.net]
>>815
そんなん知ってるが、結局VBAかよw

821 名前:デフォルトの名無しさん mailto:sage [2021/05/11(火) 09:04:47.57 ID:/SA0DWk40.net]
>>816
適材適所だろ
全部VBAで組むより全然楽だし分かりやすいよ

822 名前:デフォルトの名無しさん [2021/05/11(火) 11:31:41.06 ID:OkNnulfr0.net]
無償のSQL Serverがあるのに、わざわざ有償で低性能のAccessを使う理由は、初級者であること以外にないですよ
でもExcelはいろんな点で他では追い付けない性能があるので、初級者でなくても使う理由がある

AccessのグリッドもVS等の普通のグリッドとは違い、非同期のリピーターコントロールでできていて、
大量件数でも先頭から順次描画し、全行をメモリに持たないため、高速になるとのこと
その点では、VSより性能がいい(あと子要素の帳票フォームの簡潔さ)
そのかわり常に大量のイベントが走るため、不安定になりやすい
(DBとしてはなんちゃってなので、業者はADP等でSQL Serverと連携して使う)

その速度をさらに超えるのがExcel(特定の使い方で)
イベントが少ないので、不安定になりにくい(Delphiもその点が良かった)
イベントはブック単位で代表できるため、ソースも統合管理しやすい

823 名前:デフォルトの名無しさん mailto:sage [2021/05/11(火) 11:39:24.42 ID:UIB0JMdPa.net]
ユーザーフォームのマルチページ、タブ自体のBackColorプロパティってありますか?
なければ代替手段を教えてください



824 名前:デフォルトの名無しさん [2021/05/11(火) 14:43:21.70 ID:0OaQcACpM.net]
Excelフォームが中途半端な出来損ないだから
ここを最新のユーザーエクスペリエンス()で作り直せばAccessなんかすぐに駆逐できる

825 名前:デフォルトの名無しさん mailto:sage [2021/05/11(火) 18:04:28.65 ID:ZT0Qqj13a.net]
そうだね
大規模なのはSQL
小回りをきかせたいときはエクセル
事務屋ならこれで8割できてしまうだろうね

826 名前:デフォルトの名無しさん [2021/05/11(火) 19:06:43.69 ID:YSh4nGIkM.net]
ただ、VBAはヤメテ

827 名前:デフォルトの名無しさん mailto:sage [2021/05/12(水) 12:57:12.16 ID:mV8qcvY8a.net]
フォームがもう少し何とかなればとは思うよ
>>819然り、痒いところまであとちょっとって感じることがしばしば

828 名前:デフォルトの名無しさん mailto:sage [2021/05/12(水) 15:18:28.53 ID:BdPBmasF0.net]
>>822
アホか
ここは何のスレだと思ってるんだ?
VBA書くのがイヤなら
SQLSERVERのスレ立てて
そこでSQLでもストアドプロシージャでも
関数でも好きな話題してれば良かろう

829 名前:デフォルトの名無しさん mailto:sage [2021/05/12(水) 15:47:57.27 ID:MQbyKY6x0.net]
なんだ?喧嘩勃発か?

830 名前:デフォルトの名無しさん mailto:sage [2021/05/12(水) 15:55:47.07 ID:bNkKHmITM.net]
ちょこちょこ書く分には十分なものだと思うよ

831 名前:デフォルトの名無しさん mailto:sage [2021/05/13(木) 12:11:34.16 ID:RAFicIoxa.net]
そうかな

832 名前:デフォルトの名無しさん mailto:sage [2021/05/13(木) 16:10:32.92 ID:yc7BZe0Ia.net]
ビジネスやってる人じゃないとわからないと思うよ

833 名前:デフォルトの名無しさん mailto:sage [2021/05/13(木) 17:14:21.80 ID:4K+rsr0c0.net]
確かに。趣味レベルの自分じゃ縁のない話すぎるわ



834 名前:デフォルトの名無しさん mailto:sage [2021/05/13(木) 20:39:49.87 ID:BPKFCkYp0.net]
なんのビジネスだよ・・・

835 名前:デフォルトの名無しさん mailto:sage [2021/05/13(木) 20:43:26.98 ID:nlP9UXqMd.net]
普通の仕事で書くコードってことじゃないの

836 名前:デフォルトの名無しさん mailto:sage [2021/05/13(木) 20:48:35.69 ID:a3vkA3q7a.net]
ビジネスってよりワークで使うかな
ワークマンってよりはビジネスマンか…

837 名前:デフォルトの名無しさん mailto:sage [2021/05/13(木) 20:50:41.60 ID:a3vkA3q7a.net]
使いどころはビジネスってよりワークかな
でもワークマンってよりはビジネスマンか…

838 名前:デフォルトの名無しさん mailto:sage [2021/05/13(木) 21:12:55.35 ID:HJ1eRgpP0.net]
ワークってよりビジネスな場合もあるかな
でもワークマンってよりはビジネスマンか…

839 名前:デフォルトの名無しさん mailto:sage [2021/05/13(木) 21:19:10.07 ID:BPKFCkYp0.net]
なんでvbs採用したんだろう
jscriptならもっと未来あっただろうに
tsへの移行も自然だっと思う

840 名前:デフォルトの名無しさん mailto:sage [2021/05/13(木) 21:27:44.43 ID:HJ1eRgpP0.net]
>>835
そらもうvbaの登場時期が早かったからとしか言いようがない
vba開発チームが頑張ったんだろう
30年ぐらい前はBかCが当たり前で、インターネットもロクにないのに謎のjscriptなんて言語が勝つのは無理がある

841 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 08:17:06.17 ID:NU+NRHZVd.net]
>>818
www
初級者まる出しの文章で笑えるw

842 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 08:20:10.01 ID:NU+NRHZVd.net]
>>819
普通じゃ無理。
無理矢理タブもどきをつくるか、頑張ってWin32APIでやるか。
Win32APIでやるのは、まあ辞めとけ。

843 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 08:39:26.02 ID:q7wj393Za.net]
タブを切り替えた瞬間にバックカラーも切り替えれば良いだけ



844 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 09:49:10.63 ID:rbrSxZ/Wa.net]
勝手に見出しの色のことだと思ってた
エクセルのシートにやるみたいなやつ

845 名前:681 mailto:sage [2021/05/14(金) 10:40:26.20 ID:f8pG7pdca.net]
681です
皆さんのおかげで無事目的のコードが作れました

あと1つ質問なのですが…
画像のように重複した数値を除く総計を算出したいと思っています
会社名毎の数値を合計すればいいだけだと思ったのですが、
どうしても重複のものも一緒に合算してしまいお手上げ状態です
因みに元データは都合によりいじれないため、合算前に重複部分を削除等はできません
恐れ入りますが、宜しくお願いします

846 名前:681 mailto:sage [2021/05/14(金) 10:41:19.08 ID:f8pG7pdca.net]
画像を貼り忘れておりました
https://i.imgur.com/HLZYwhr.png

847 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 11:33:58.88 ID:+U8xhPuO0.net]
会社ごとの重複を除く合計が出たんだからそれを足

848 名前:すだけだろ
逆に何をやったらまた重複したものも合算するのか理解できない
[]
[ここ壊れてます]

849 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 11:38:54.22 ID:usYNgZ690.net]
いつものあいつだぞ

850 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 12:11:07.63 ID:mu0LH/UJa.net]
>>841
もとデータをいじらないでも、もとデータを別のシートにコピーすればいじれるんじゃね

851 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 12:24:14.75 ID:Vktv5FHm0.net]
>>841
重複除けてるのなら、結果をSUM関数で合算するだけじゃん。

>>686
で上げたように、そもそもVBAすら使う必要ない。

852 名前:デフォルトの名無しさん [2021/05/14(金) 13:02:54.78 ID:kX62fe1ba.net]
君らも構うねー
>>681への数多の回答を経て「皆さんのおかげで」としか言及しない礼儀知らずなんぞ俺なら2度と助けようと思えないけどな

853 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 14:11:01.00 ID:C4z8VNUC0.net]
>>841
SQLでやってるの?
VBAでやってるの?

SQLなら会社、氏名、数値でグルーピングしてから合計求めりゃいいだろうし
VBAでやってるなら上からループして会社、氏名、数値をコレクションかディクショナリーに登録しておいて
同じ組み合わせのものが登録されてたら飛ばせばいいだけじゃないの?



854 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 16:00:12.91 ID:bBl2sxC0r.net]
ほんとに、よう構うわ

855 名前:デフォルトの名無しさん [2021/05/14(金) 16:15:08.56 ID:N2rlLeCr0.net]
暇人しかレスしない
そりゃ高齢化する罠

856 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 17:11:44.35 ID:C4z8VNUC0.net]
暇と時間は自分で作るもの

857 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 17:53:42.33 ID:usYNgZ690.net]
この「いつものあいつ」はperlスレで釣りしてたあいつだろ
回答がないと別ID自分に回答するクズだぞ
IDをコロコロ変えていることで気付け

858 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 18:02:17.06 ID:9jitt6PZ0.net]
ここに若い人はいないと思われ
定年退職した60〜70のジジババ様がメインの予想

859 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 19:35:21.69 ID:EALw/Xv8a.net]
いちゃ悪いか?

860 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 19:38:49.82 ID:b+Ipd3IB0.net]
>>854
煽り体制なさ杉
ゴミは無視して自分のやりたいことをしておけば良い

861 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 19:53:03.83 ID:FyOJKl4nM.net]
アラサーのおっさんですわ

862 名前:デフォルトの名無しさん [2021/05/14(金) 20:06:30.42 ID:M77EX5P+0.net]
平成生まれのおっさんかよ

863 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 20:10:13.25 ID:b+Ipd3IB0.net]
令和生まれの赤子が常駐してたらマジでびびるしこんな言語をやるべきじゃないと諭すレベル



864 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 23:02:24.08 ID:eHp6F4GU0.net]
答えたい人は答えて無視したい人は無視すればいいのに
「俺が気にくわないからお前らも答えるな!」ってガキ大将かなんか?

865 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 23:04:28.38 ID:b+Ipd3IB0.net]
>>859
支え合ってる人たちが気に入らない
という社会に馴染めない方の怨嗟

vbaという単語を知ってるだけでも見込みはあるのに、どうしてそうなったのか

866 名前:デフォルトの名無しさん mailto:sage [2021/05/15(土) 01:26:37.20 ID:FnRhwbWQ0.net]
定年したジジババだらけだったら異常だろ
多分30〜50代あたりのPC世代だね

867 名前:デフォルトの名無しさん mailto:sage [2021/05/15(土) 10:20:07.29 ID:sw5CYKBX0.net]
ウィンドウズ95を25で迎えた人間は50歳行ってるよ

868 名前:デフォルトの名無しさん [2021/05/15(土) 11:32:20.38 ID:ULjvOOdJ0.net]
>>859
そんな奴おらんやろ〜

869 名前:デフォルトの名無しさん [2021/05/15(土) 12:01:56.35 ID:eYtIld1hF.net]
memo
https://www.mhlw.go.jp/toukei/list/dl/maikin-teisei-20210406.pdf
https://www.hello-pc.net/howto-excel/shisyagonyu/
www.excel.studio-kazu.jp/kw/20131108152616.html
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12216877167
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1314241033
https://docs.microsoft.com/ja-jp/office/troubleshoot/excel/floating-point-arithmetic-inaccurate-result
https://answers.microsoft.com/ja-jp/msoffice/forum/msoffice_excel-mso_windows8-mso_2013_release/excel%E3%81%AE%E5%8D%98%E7%B4%94%E3%81%AA%E8%A8%88/e5421c34-8053-4132-a0a6-14729e505376

870 名前:デフォルトの名無しさん mailto:sage [2021/05/15(土) 12:25:50.26 ID:vXVB+fnY0.net]
>>863
チッチキチー

871 名前:デフォルトの名無しさん [2021/05/15(土) 13:49:58.81 ID:YDtAUn460.net]
Lbound関数がどうもうまく出来ないのでお知恵を拝借させてください。

--------------------------------------------------------------------
【VBA標準モジュール】
Option Explicit

Function F_Test(wRange As Range) As Integer
F_Test = LBound(wRange)
End Function

--------------------------------------------------------------------
【ワークシート】
A列は別に何でも良くて,例えば以下のとおり。
A1セル 10
A2セル 11
A3セル 12
A4セル 13

--------------------------------------------------------------------
B1に =F_Test(A1:A3) の数式で「3」という答えが欲しい。
その他,A1:A4なら「4」,A2:A3なら「2」という感じ。

要は引数の配列の添字の数が欲しい。


Functionの引数部分をVariantに変えて
Function F_Test(wRange As Variant) As Integer にしてもうまく行きませぬ。

872 名前:デフォルトの名無しさん [2021/05/15(土) 13:54:19.11 ID:YDtAUn460.net]
すみません。 LとUを間違えました。
× LBound
○ UBound

配列がありません とか #VALUE! になってしまいます。

873 名前:デフォルトの名無しさん [2021/05/15(土) 13:55:24.28 ID:Q8PHpDoBM.net]
wRange.rows.Count



874 名前:デフォルトの名無しさん mailto:sage [2021/05/15(土) 14:02:11.21 ID:ur6+LZEp0.net]
>>867
F_Test = wRange.Count

>>868
横長だとアレでソレ

そういや関数には単純にセルの数を返す方法ってないんかね

875 名前:デフォルトの名無しさん [2021/05/15(土) 14:10:21.57 ID:YDtAUn460.net]
>>868
>>869

なんと!
ありがとうございます。

配列 サイズ で検索すると Ubound関数を紹介するサイトばかりで,何のことはない count でOKとは!

876 名前:デフォルトの名無しさん mailto:sage [2021/05/15(土) 14:13:32.27 ID:zrs2Seg4H.net]
>>869
セル数は一発では求まらないね
WorksheetFunction.COUNTA + WorksheetFunction.COUNTBLANK
とか、
UBound(1) * UBound(2)
とか工夫が必要

877 名前:デフォルトの名無しさん mailto:sage [2021/05/15(土) 14:15:26.88 ID:q5D0BLy0a.net]
自分がわかっている事を、相手に伝えられない
、いっしゅの病気だと思っておいてね

878 名前:デフォルトの名無しさん mailto:sage [2021/05/15(土) 14:17:09.49 ID:ur6+LZEp0.net]
>>870
ウォッチ式に「wRange」入れると中が見れる
「+」押してそれっぽい奴探せばok
めんどい事しなくても、大体は元々用意されている

>>871
ありがとう
まぁ今まで気づかなかったぐらいだし、まぁ無くてもいいっちゃいいんだけど

879 名前:デフォルトの名無しさん [2021/05/16(日) 15:00:47.34 ID:fN3wEca+0.net]
Sub Func()
Dim objIE As InternetExplorer
Set objIE = New InternetExplorer
objIE.Visible = True
objIE.Navigate "https://www.aguse.jp/"
Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE
DoEvents
Loop
objIE.Document.getElementById("url").Value = "99.9.9.9"
objIE.Document.getElementsByClassName("btn1").Click
End Sub
なぜ、クリック処理の所でエラー発生するのでしょうか?

880 名前:デフォルトの名無しさん mailto:sage [2021/05/16(日) 15:15:41.45 ID:cdV5xYRld.net]
>>874
getElementsByClassNameは配列を返すから(同じクラスを持つ要素の配列が返る)

881 名前:デフォルトの名無しさん mailto:sage [2021/05/16(日) 15:32:17.72 ID:T2VZn2Kl0.net]
IDがあるならgetElementByIDの方が良いぞ

classのまま一つ目をclickするなら
objIE.Document.getElementsByClassName("btn1")(0).Click

882 名前:デフォルトの名無しさん mailto:sage [2021/05/16(日) 15:39:13.46 ID:cdV5xYRld.net]
CSSっぽく指定できて最初の要素を返してくれるquerySelectorもオヌヌメ

883 名前:デフォルトの名無しさん [2021/05/16(日) 16:10:27.36 ID:fN3wEca+0.net]
>>875~877

ありがとうございます。
クリックできました



884 名前:デフォルトの名無しさん mailto:sage [2021/05/16(日) 17:21:27.26 ID:ak429d4ca.net]
クリックのことかー!

885 名前:デフォルトの名無しさん mailto:sage [2021/05/16(日) 18:59:49.40 ID:uzBgfuya0.net]
ダブルクイック

886 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 02:01:26.83 ID:BeO0jfUB0.net]
>>870
だって配列じゃないからな
変に用語使わず素直に range 個数 とかでググった方がいいよ

上のレスにあるgetelemetsby系のメソッドも返すのは配列じゃなくてコレクション

887 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 06:19:11.84 ID:Z0RWJbQc0.net]
MapだのArrayだの機能入れりゃいいだけなのに入れない
どういうつもりだこいつら

888 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 08:15:11.48 ID:8cwZKDcEM.net]
VBAは既に終わった過去の技術
移行を促すために意図的に使いづらくされることはあっても、改善されることはない

889 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 08:58:47.08 ID:Z0RWJbQc0.net]
そこにある幸せを制限されてる
上から目線で苦しめられてる
悔しくて泣く

890 名前:デフォルトの名無しさん [2021/05/18(火) 11:12:26.25 ID:9uIGZAIgM.net]
Office365でしか動かないVBAV2作るぐらいなら他の言語使うわな

891 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 12:10:40.31 ID:sRK+fHDU0.net]
だったらそうすればいい

892 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 14:24:29.88 ID:Xi/08Sqba.net]
だったらそうすればって別に俺たちはマイクロソフトじゃねえけど

893 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 14:42:19.77 ID:KlG9vmA0M.net]
Office365には既にOffice Scriptsがあるからそこはとっくに解決済み
あとはVBAを弾圧していくだけや



894 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 14:48:17.90 ID:R43akpHGM.net]
Power FX
https://docs.microsoft.com/ja-jp/power-platform/power-fx/overview

895 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 16:33:00.45 ID:5G0DWm0g0.net]
VBAからJavaScript書くと
予約語は[]で括らなければいけなかったり
Callbynameで指定しなければいけなかったり
色々めんどくさい
Jqueryだって使えるか分からない

そもそもJavaScriptなんてWebで
クライアント周りで使うもんだから
わざわざEXCELの言語で使う用途が
よく分からない
まだクラッシックASP辺りで
VBSと組み合わせて使うなら納得もいくけど
そんな難しいもんじゃないから
必要に駆られたときに覚えれば十分だろう

896 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 18:00:53.92 ID:sY2jShf/0.net]
だから若者はVBに興味示さない
VB=高齢者のプログラミングだからでしょ?

897 名前:デフォルトの名無しさん [2021/05/18(火) 18:48:43.65 ID:ljRiA37AM.net]
jqueryでExcel.Applicationを操作出来るように拡張するのか
夢が広がるね

898 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 18:49:34.47 ID:5G0DWm0g0.net]
EXCELで簡単にプログラム組むことが出来るからな
VBと言うのをVBSのこと言ってるのかVB.Netのこと言ってるのかVBAのこと言ってるのか知らんが
EXCELで楽したくてVBAから入る若い人は多い。
VBA覚えた人がVB.NetやってC#やってそこからWeb系に入って初めてJavaScriptをHTMLやCSSと一緒に覚える人なんてザラ。

899 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 19:43:19.02 ID:LbhgO8Sf0.net]
>>893
完全に俺
経理だけど、vbaで楽してC#でゲーム作って、
jsでクラウドツールのサイト自体書き換えて勝手に機能追加したりphpでスクレイピングしたり
年中プログラム書いてるわ。楽しい

900 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 19:49:05.74 ID:LbhgO8Sf0.net]
>>890
VBAでjs使うのは、一つは動的なサイトのスクレイピングする時
htmlだけの操作でしんどい時は、jsでclick辺りさせるだけでサクサク進む事がある
ってかこれ以外でjs書くことはほぼ無いと思う。

jquery使えない時は無理やりappendかなんかしてたけど、もうやり方も忘れたな
色々試している内にchromeのコンソールにぶっこむのが一番楽って結論にたどり着いた

901 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 20:48:35.33 ID:Y1RJXdtP0.net]
Ruby で、Selenium Webdriver, Nokogiri で、
スクレイピング・ブラウザの自動操作する時にも、
JavaScript, jQuery を使える

埋め込みRuby・ERB を使えば、どんなファイルにも、
<%= 式 %>, <% 式 %> で、Rubyの式を埋め込める

a.html.erb, b.js.erb みたいに、
HTML, JavaScript ファイル内に、Rubyの式を埋め込める

902 名前:デフォルトの名無しさん [2021/05/18(火) 20:57:22.08 ID:dFlzu8QN0.net]
>>896
Ruby馬鹿は>>712のような嘘を書いて逃げる馬鹿

903 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 23:24:28.39 ID:sY2jShf/0.net]
そんな事よりさ、おぢーさん達は加齢臭の処理ちゃんとしてくれよ
若者に失礼だと思わね?プンプンプンプンさ



904 名前:デフォルトの名無しさん mailto:sage [2021/05/19(水) 00:19:04.29 ID:GKVmaO5T0.net]
>>896
何でEXCELの利点であるシートやフォームを使わないの?
バカなの?死ぬの?

905 名前:デフォルトの名無しさん mailto:sage [2021/05/19(水) 00:20:19.16 ID:GKVmaO5T0.net]
>>898
ジジイであってクレクレw

906 名前:デフォルトの名無しさん mailto:sage [2021/05/19(水) 01:20:40.10 ID:ZD8mpcBW0.net]
くっせぇーなマジで
パソコンまで加齢臭プンプンなんじゃねーのか爺さん達よ?

907 名前:デフォルトの名無しさん mailto:sage [2021/05/19(水) 07:45:42.64 ID:WworO/MIM.net]
5chは加齢臭ジジイの巣窟ですよ。
子供は他所で遊んだ方が良いですよ。

908 名前:デフォルトの名無しさん mailto:sage [2021/05/19(水) 14:08:44.86 ID:IrWk1Moq0.net]
>>870
それはVariantの2次元配列にRange.Valueを代入して高速化を行う場合の話で、単に行数求める場合に使うのは筋が違う。

Dim varRng As Variant
varRng=wRange.Value
F_TEST=Ubound(varRng,1)

というか、Ubound使うなら引数をRangeにするのが間違い。

Function F_Test(wRange As Variant) As Integer
F_Test = UBound(wRange,1)
End Function

として、呼び出す時に

Debug.Print F_TEST(sht.Range("A1:A3").Value)

とする。

909 名前:デフォルトの名無しさん mailto:sage [2021/05/19(水) 18:26:06.40 ID:Vg/vRgKrd.net]
標準モジュールにcsvFile関連に関わるコードをまとめようと思ってます。
フォームABCと3つありそれぞれのTextBoxの文字列を使用するのですが、引数にフォームを渡すと後でモジュールの引数?を見た時にどのフォーム?ってなるんですが、なんか分かりやすい方法ありますか?

910 名前:デフォルトの名無しさん mailto:sage [2021/05/19(水) 18:34:23.71 ID:/q2TOFSQ0.net]
変数名に書けばいい

911 名前:デフォルトの名無しさん mailto:sage [2021/05/19(水) 20:30:25.56 ID:GKVmaO5T0.net]
>>904
あれ?
EXCELのFormってNameプロパティ持って無かったっけ?

912 名前:デフォルトの名無しさん [2021/05/19(水) 22:00:48.31 ID:+ffuEuggp.net]
みんな、どうやってVBA覚えた?必要に迫られて?

913 名前:デフォルトの名無しさん mailto:sage [2021/05/19(水) 22:12:24.80 ID:jE/FqELl0.net]
>>907
まだ覚えられないの?



914 名前:デフォルトの名無しさん [2021/05/19(水) 23:13:26.00 ID:GsBTRjrb0.net]
あわしろ氏は、Microsoft固有の言語は覚えないほうが良いと言ってた。

915 名前:デフォルトの名無しさん [2021/05/19(水) 23:17:32.49 ID:cF8YUUzA0.net]
馬鹿の記憶キャパシティは限られるからな

916 名前:デフォルトの名無しさん mailto:sage [2021/05/19(水) 23:22:58.20 ID:mqMv5E730.net]
覚えるとかそういうものではない

917 名前:デフォルトの名無しさん mailto:sage [2021/05/19(水) 23:42:58.43 ID:ZD8mpcBW0.net]
>>907
必要に迫られて覚えたもなにも、中学か高校で習うだろ普通。

918 名前:デフォルトの名無しさん mailto:sage [2021/05/20(木) 00:07:22.00 ID:6elix0QCH.net]
>>909
.netもMS固有の言語みたいなもんだが、普通に色んな職場で使われとるやん

919 名前:デフォルトの名無しさん mailto:sage [2021/05/20(木) 01:22:13.99 ID:BLOb04120.net]
学習しなくても最初からできる天才タイプもたまにいるよマジで

920 名前:デフォルトの名無しさん mailto:sage [2021/05/20(木) 01:56:26.37 ID:6elix0QCH.net]
そもそもマイクロソフト固有の言語ってなんやねん
みんな既成の言語や他社製品を買収して、それを手直しした物ばっかやん

921 名前:デフォルトの名無しさん mailto:sage [2021/05/20(木) 03:27:31.15 ID:sxWNX54s0.net]
microsoft固有の言語って今どきある?
VBAとかBATとか、失われゆくものだけでしょ。
そりゃ今から時間をかけて覚えるのはもったいないわ。
他の言語使える人なら、VBAなんてわざわざ学習する時間をかける必要もなく、それなりのマクロは組めると思うけど。

922 名前:デフォルトの名無しさん mailto:sage [2021/05/20(木) 04:02:59.34 ID:BLOb04120.net]
あまいわ、Excel独自のルール知らないとまともなVBA組めんわ
表示形式とかその辺もそうだし。

923 名前:デフォルトの名無しさん mailto:sage [2021/05/20(木) 04:05:55.57 ID:dmfe27mta.net]
覚えるんじゃなくて調べればいいだけだし



924 名前:デフォルトの名無しさん mailto:sage [2021/05/20(木) 05:01:49.61 ID:sxWNX54s0.net]
>>917
それは言語の問題ではなくAPIの問題かと

925 名前:デフォルトの名無しさん mailto:sage [2021/05/20(木) 07:32:27.21 ID:z6ttNILB0.net]
調べるのも学習コストだと思うがね
言葉遊びだな

926 名前:デフォルトの名無しさん mailto:sage [2021/05/20(木) 08:16:14.68 ID:6elix0QCH.net]
環境に左右されないコード書く仕事なんてそうそうないだろ
何やるにしても調査と学習は必要だわ

927 名前:デフォルトの名無しさん mailto:sage [2021/05/20(木) 09:53:49.41 ID:3grODMDb0.net]
VBAは覚えてからでなければ組めないほど難しいとも思えん
目的の動作に必要な部分だけを検索すれば初心者でもすぐ出きるとおもう
自分で考えないで質問ばっかりすりから覚えられないんじゃねーの

928 名前:デフォルトの名無しさん mailto:sage [2021/05/20(木) 09:59:01.67 ID:QrP75Wi10.net]
A:まず顧客名XXの行、商品とかいてある列のデータをとります
B:()

このざま
けしてとっつきやすくはない

929 名前:デフォルトの名無しさん mailto:sage [2021/05/20(木) 10:03:51.70 ID:XA+o92qv0.net]
みんなすまん
最近Ruby信者やあわしろ教信者がこのスレに多発するようになったのはひょっとすると俺のせいかも知れない

ぶっちゃけ始めるのにいい言語て何 part4
https://mevius.5ch.net/test/read.cgi/tech/1615612545/

このスレでVBA推ししてたから
変な狂信者達がこのスレにうろつき出すようになったのかも知れない
そうだとしたらマジですまんかった

930 名前:デフォルトの名無しさん mailto:sage [2021/05/20(木) 13:25:45.32 ID:8sYLIX1sM.net]
宣伝すんな糞が

931 名前:デフォルトの名無しさん mailto:sage [2021/05/20(木) 17:45:33.93 ID:Gd/4i8WIM.net]
ユーザーフォームで行の選択位置を変えるボタン▲▼がクリック数と一致しない問題があったんだけど
あんまり早くクリックするとダブルクリックイベントに持って行かれるという記事見て目から鱗だったわ

932 名前:デフォルトの名無しさん mailto:sage [2021/05/20(木) 17:46:49.15 ID:Gd/4i8WIM.net]
↑ボタンの動作

933 名前:デフォルトの名無しさん mailto:sage [2021/05/20(木) 17:51:20.11 ID:3grODMDb0.net]
目から鱗、鼻から牛乳



934 名前:デフォルトの名無しさん [2021/05/20(木) 18:31:11.76 ID:A6q2Mdlm0.net]
>>926
当たり前だろ
頭は大丈夫か?

935 名前:デフォルトの名無しさん [2021/05/20(木) 18:32:38.54 ID:PnXLQc6v0.net]
はい、頭大丈夫か、いただきました〜。
ごっつあんです。

936 名前:デフォルトの名無しさん mailto:sage [2021/05/20(木) 18:39:24.43 ID:zC/KxF8YM.net]
>>929
理由を知ってるからそう思えるのであって意外と分からんもんよ

937 名前:デフォルトの名無しさん [2021/05/20(木) 18:51:23.66 ID:A6q2Mdlm0.net]
>>931
常識だろ
コピペしかしない頭が弱い奴にはわからんだけ
そういう頭の弱い奴はWindowsの仕組みすらろくに把握していない
アイコンをダブルクリックする操作から類推する頭がない

938 名前:デフォルトの名無しさん mailto:sage [2021/05/20(木) 22:09:53.73 ID:6elix0QCH.net]
目からビーム

939 名前:デフォルトの名無しさん mailto:sage [2021/05/20(木) 22:29:51.31 ID:3grODMDb0.net]
喉から手

940 名前:デフォルトの名無しさん [2021/05/20(木) 23:27:14.65 ID:PnXLQc6v0.net]
はい、常識だろ、いただきました〜。
ごっつあんです。

941 名前:デフォルトの名無しさん mailto:sage [2021/05/20(木) 23:59:48.81 ID:BLOb04120.net]
良く考えてよ、そんなにVBAが楽だったらそこらじゅうでエキスパートが溢れ帰ってるわ

942 名前:デフォルトの名無しさん [2021/05/21(金) 00:49:19.69 ID:59CyTM7+0.net]
>>936
そもそも世の中馬鹿だらけ

943 名前:デフォルトの名無しさん [2021/05/21(金) 01:00:38.44 ID:QTMvWd2k0.net]
>>937
おまえそれ、あわしろ氏にも言えるの?



944 名前:デフォルトの名無しさん [2021/05/21(金) 01:32:27.01 ID:59CyTM7+0.net]
>>938
言えるぞ
そいつは世の中馬鹿だらけという当たり前のことを知らん馬鹿なのか?

945 名前:デフォルトの名無しさん [2021/05/21(金) 02:15:25.58 ID:QTMvWd2k0.net]
あわしろ氏から見たらお前もバカの一人にすぎないのだが。

946 名前:デフォルトの名無しさん [2021/05/21(金) 02:19:49.30 ID:59CyTM7+0.net]
>>940
悔しかったか?

947 名前:デフォルトの名無しさん [2021/05/21(金) 02:25:12.36 ID:7tu/wNc+0.net]
ttps://ja.asuka.io/whois/126.31.241.3
の”SoftbankBB ABUSE”を取得したいと思っているのですが、どのようにすればいいのでしょうか?
Dim objIE As InternetExplorer
Set objIE = New InternetExplorer
--省略--
objIE.Document.getElementsByClassName("whois-result")

948 名前:デフォルトの名無しさん mailto:sage [2021/05/21(金) 05:43:15.48 ID:BTMhnzWw0.net]
>>937
そんな。。。いきなしベストアンサー出さなくても。
みんなさ、もうちょいもて遊んでよ(笑)

949 名前:デフォルトの名無しさん mailto:sage [2021/05/21(金) 05:57:52.66 ID:fpWGW1ET0.net]
Ruby のnokogiri でスクレイピングして、
CSS セレクター・正規表現で、2つマッチした

require 'open-uri'
require 'nokogiri'

url = "そのURL"
doc = Nokogiri::HTML( open( url ) )

element = doc.at_css( '#result-126_31_241_3 > span' ) # id の直下のspan

re = /^role:/ # 行頭から

element.content.each_line do | line | # 1行ずつ処理する
line.chomp! # 末尾の改行を削除する

line.match( re ) { |matched| puts line }
end

出力
role: ABUSE SOFTBANKJP
role: SoftbankBB ABUSE

950 名前:デフォルトの名無しさん mailto:sage [2021/05/21(金) 08:28:08.99 ID:QhlqoCTd0.net]
Rubyなんてカーバンクルの頭にめり込んでいるような気持ち悪い名前の言語使うくらいなら
JavascriptとCSSとJQueryの組み合わせでいいと思うの

951 名前:デフォルトの名無しさん mailto:sage [2021/05/21(金) 08:48:15.27 ID:gnmVjeq7H.net]
>>942
roleが2つ以上あった時、どうやって選ぶの?

952 名前:デフォルトの名無しさん [2021/05/21(金) 15:24:51.08 ID:xTrBkQ+z0.net]
Ruby馬鹿は>>712のような嘘を書いて逃げる馬鹿

953 名前:デフォルトの名無しさん mailto:sage [2021/05/21(金) 15:33:03.33 ID:BTMhnzWw0.net]
知ったかばっか



954 名前:デフォルトの名無しさん mailto:sage [2021/05/21(金) 16:32:03.60 ID:CZi3W7Lh0.net]
知ったかばっかだと知った

955 名前:デフォルトの名無しさん mailto:sage [2021/05/21(金) 17:10:27.15 ID:IWCymVKS0.net]
VBAを覚え始めて2週間だけど
まだこのスレに書かれているコードの意味が全くわからないwww
でもコード書くの楽しいなって思ってやってます

956 名前:デフォルトの名無しさん mailto:sage [2021/05/21(金) 19:05:32.27 ID:ggQpFO18d.net]
同じだ
自分はVBAエキスパートの勉強してるよ

957 名前:デフォルトの名無しさん mailto:sage [2021/05/21(金) 19:59:51.31 ID:IWCymVKS0.net]
自分も来月ベーシックうけまーす!

958 名前:デフォルトの名無しさん mailto:sage [2021/05/21(金) 20:18:27.47 ID:BTMhnzWw0.net]
人によってはワークシート関数よりマクロの方が難しいっていう人もいるからね。逆もいるしね。

959 名前: mailto:sage [2021/05/21(金) 20:35:13.20 ID:XRGlJQOp0.net]
>>940
誰?

960 名前:デフォルトの名無しさん mailto:sage [2021/05/21(金) 20:42:52.48 ID:bfSFy0HM0.net]
ぼく

961 名前:デフォルトの名無しさん mailto:sage [2021/05/21(金) 20:43:08.07 ID:bfSFy0HM0.net]
うそです

962 名前:デフォルトの名無しさん [2021/05/21(金) 20:43:58.66 ID:7tu/wNc+0.net]
perlなどがない環境もあるので、出来ればすべてVBAで出来ないかと考えています。
>>946
roleが2つ以上の場合は一番最後のroleにある値を取得したと考えております。

963 名前:デフォルトの名無しさん mailto:sage [2021/05/21(金) 22:35:02.45 ID:Yczu/9Oq0.net]
左手に電卓を持ち、右手は交互に電卓、マウス、テンキーを使い分ける上司とお局様とその下僕達
その下僕の後輩が自分

これが日本の一部上場企業なのか?



964 名前:デフォルトの名無しさん mailto:sage [2021/05/22(土) 00:10:21.12 ID:UfMUNU1m0.net]
うん。だってエクセルが計算間違えたらどうすんの?
電卓で計算した数字をパソコンに打ち込むのは昔からの伝統だよ

965 名前:デフォルトの名無しさん [2021/05/22(土) 00:36:58.31 ID:mcqOhXTe0.net]
馬鹿が作った変な式やマクロのせいで合わないなんてこともある

966 名前:デフォルトの名無しさん mailto:sage [2021/05/22(土) 00:40:22.69 ID:Oef+89DPd.net]
2進数は変な誤差が出るから信用できないってさ

967 名前:デフォルトの名無しさん mailto:sage [2021/05/22(土) 01:34:41.39 ID:S7UeFiS10.net]
初心者がつくったマクロのほうが信用できない

968 名前:デフォルトの名無しさん [2021/05/22(土) 01:44:44.93 ID:mcqOhXTe0.net]
>>962
初心者というより、ここで質問しなきゃいけないような馬鹿のことだな

969 名前:デフォルトの名無しさん mailto:sage [2021/05/22(土) 02:41:18.25 ID:S7UeFiS10.net]
あと、悪意のある熟練者が作ったマクロも信用できないけどな

970 名前:デフォルトの名無しさん [2021/05/22(土) 02:56:17.42 ID:vJuB/ZK60.net]
>>964
正しいが悪意を言いだしたらキリがない
馬鹿のくせにで自分には作れると勘違いしている馬鹿も悪意のうちに含めるのならばわからんでもない
無自覚の悪意というこという意味で

971 名前:デフォルトの名無しさん mailto:sage [2021/05/22(土) 05:49:02.27 ID:Tpb6ZbgH0.net]
>>961
Doubleとかの浮動小数点を使う型の場合、IEEE754準拠のために起こるやつのことだね
それは例えば小数点以下4桁までなら通貨型が固定小数点型だから使えるとか
一度割ったときの値が丸めを行うところまで10の倍数掛けて整数桁にしてから計算して、
その後最初に掛けた分で割ってやれば解決するようなことを知らない人が組むとそうなるわけで
別にEXCEL VBAに限ったことじゃないし、組む人の問題だよ
JavaみたいにbigDecimal型とか持ってる言語もあるにはあるけどね

後、VBAでは四捨五入も銀行丸めになるから
それがイヤならWorksheetFunctionでRound使うとかね。

972 名前:デフォルトの名無しさん mailto:sage [2021/05/22(土) 07:10:12.96 ID:UfMUNU1m0.net]
回答者が雑な回答で悪い風潮あるみたいだけど、質問してくる初級者にも問題あるって話
なんでそんな質問してるのだろ?ってのが多いから

973 名前:デフォルトの名無しさん mailto:sage [2021/05/22(土) 07:51:26.87 ID:qSrTa/6NM.net]
分からないことが何か分からないぐらい分からないとそういう質問になるのはよくあることだと思うよ
だから何が分からなくて悩んでいるのかを想像して答えられる範囲で答えるのがベターじゃないかな
それが回答者にとって勉強になる事だってあるだろうし

質問者も答えを咀嚼した上で追加で疑問点が出るなら質問してもらって構わないし、答えを理解できなかったらどの部分が分かりづらかったか聞けばいい
質問スレで何か質問するとバカだのアホだの言われるような質問しづらい雰囲気なのは本末転倒でしょう



974 名前:デフォルトの名無しさん mailto:sage [2021/05/22(土) 08:18:29.11 ID:Tpb6ZbgH0.net]
>>951
昔は仕事でVBAやってれば
あんちょこ本屋で立ち読みして
傾向だけ把握してれば大体受かる
感じだったけど今はどうなの?

975 名前:デフォルトの名無しさん mailto:sage [2021/05/22(土) 08:18:32.56 ID:6qbME2XxH.net]
直接の会話だと不明点を確認しながら進めるのが普通なのに、掲示板だと後出しと言われる風潮はいいかげん頭が固すぎると思うなの

976 名前:デフォルトの名無しさん mailto:sage [2021/05/22(土) 08:20:17.81 ID:GrewoE1S0.net]
そういう奴はかまってちゃん
人を煽ってレスが欲しくてしょうがないんだろうな

977 名前:デフォルトの名無しさん mailto:sage [2021/05/22(土) 09:04:45.45 ID:UfMUNU1m0.net]
文句があるならヤフー知恵袋でやりとりしてください。
絶対答えなきゃいけないなんていう義理は存在しないし

978 名前:デフォルトの名無しさん mailto:sage [2021/05/22(土) 12:27:49.41 ID:S7UeFiS10.net]
>>970
回答してもらっておいて文句いうような奴には教えんよ

979 名前:デフォルトの名無しさん mailto:sage [2021/05/22(土) 12:43:21.86 ID:0H5cNeIlM.net]
>>970
程度問題だろ
ちゃぶ台返しになるような前提を後出しされても困る

980 名前:デフォルトの名無しさん mailto:sage [2021/05/22(土) 13:15:35.23 ID:UfMUNU1m0.net]
文句あるなら他所の質問掲示板へ

981 名前:デフォルトの名無しさん mailto:sage [2021/05/22(土) 15:54:43.50 ID:idCJV0DjM.net]
直接の会話じゃないので

982 名前:デフォルトの名無しさん mailto:sage [2021/05/22(土) 15:58:35.26 ID:idCJV0DjM.net]
何がしたくて何をして何を期待して何が起きたかぐらいは誰でも手間かければ書けるのにその手間を質問者側に押し付けるな

983 名前:デフォルトの名無しさん [2021/05/22(土) 18:31:31.81 ID:Lbh7lRt50.net]
質問者あっての質問スレですからなあ。
もう少し気を使っていただかないと。



984 名前:デフォルトの名無しさん mailto:sage [2021/05/22(土) 21:20:31.42 ID:UfMUNU1m0.net]
自助努力してください

985 名前:デフォルトの名無しさん [2021/05/24(月) 01:46:42.03 ID:SKWG4E+9p.net]
在庫管理でクロス集計表を使ってるんだけど
配列で取り込んだデータをデータがあったセル位置に戻す時って
どう指定してあげればいいの?
【用途】
納期毎に設定される納品数を在庫から引いて
いつ欠品になるか知りたい

伝わるか分からないけど↓
使ってるフォーマット形式
縦列
部品名
在庫

納期
納品数

986 名前:デフォルトの名無しさん mailto:sage [2021/05/24(月) 04:35:06.28 ID:nupyrRyu0.net]
他人に伝わる表現方法を考えたほうがいいと思う。いやまじで。

987 名前:デフォルトの名無しさん mailto:sage [2021/05/24(月) 10:56:44.51 ID:ERBOMeaq0.net]
>>980
配列で取り込んだデータをデータがあったセル位置に戻すことが必要な理由とは?

988 名前:デフォルトの名無しさん mailto:sage [2021/05/24(月) 12:46:37.40 ID:ipl2L3KHd.net]
>>980
配列に取り込んだ時と逆のことをするだけでは
Cells(2, 3) = 配列(2, 3)
みたいに

989 名前:デフォルトの名無しさん [2021/05/24(月) 14:13:14.63 ID:NNOyF0WeM.net]
違うよ
クロス集計表の元データの位置に書き戻してやらないとクロス集計表が壊れるじゃないか
そんなの質問者は望んでいないよ。たぶん

990 名前:デフォルトの名無しさん mailto:sage [2021/05/24(月) 14:19:09.76 ID:LTdpDg+b0.net]
誰か質問を説明的に翻訳してくれ

991 名前:デフォルトの名無しさん mailto:sage [2021/05/24(月) 14:44:27.07 ID:ircPqyoF0.net]
元データが変化するわけじゃないならセルに返す必要ないんじゃないの

992 名前:デフォルトの名無しさん mailto:sage [2021/05/24(月) 14:44:58.38 ID:I5I449Rl0.net]
結局こうなるわ
コミュニケーションから勉強だな

993 名前:デフォルトの名無しさん [2021/05/24(月) 14:55:47.77 ID:MUcNJueI0.net]
Cellの値の変更時の処理を記述する為に、WorkSheet_Change イベントを使ってるのですが、
監視対象の Cell をダブルクリックして入力カーソル「|」表示状態になっただけで(値を変更せずに Cell がフォーカスを失っても)、イベントが発生してしまいます。

本当に値が変更された時だけ、WorkSheet_Change イベントが発生するようにするにはどうすればいいでしょうか。



994 名前:デフォルトの名無しさん [2021/05/24(月) 14:55:59.69 ID:MUcNJueI0.net]
Cellの値の変更時の処理を記述する為に、WorkSheet_Change イベントを使ってるのですが、
監視対象の Cell をダブルクリックして入力カーソル「|」表示状態になっただけで(値を変更せずに Cell がフォーカスを失っても)、イベントが発生してしまいます。

本当に値が変更された時だけ、WorkSheet_Change イベントが発生するようにするにはどうすればいいでしょうか。

995 名前:デフォルトの名無しさん mailto:sage [2021/05/24(月) 14:57:27.80 ID:LTdpDg+b0.net]
エスパー

福井県立図書館 覚え違いタイトル集
www.library-archives.pref.fukui.lg.jp/tosyo/category/shiraberu/368.html

996 名前:デフォルトの名無しさん mailto:sage [2021/05/24(月) 14:57:57.69 ID:uCaZzUhZ0.net]
そもそも在庫管理なんてexcelでやる内容じゃないしな
外部にdb用意して
excelはそこから参照して
クロスなりなんなり汁

997 名前:デフォルトの名無しさん mailto:sage [2021/05/24(月) 16:02:34.89 ID:SNshkRQxd.net]
お前らノーパソ?デスクトップ?
MyPCはどっちでプログラミングしてる?

998 名前:デフォルトの名無しさん mailto:sage [2021/05/24(月) 16:10:42.22 ID:aftRNFP10.net]
そもそもクロス集計をピボットで行ってるのか
SQLでCROSS JOIN使ってるかで
答えが変わるしな

999 名前:デフォルトの名無しさん mailto:sage [2021/05/24(月) 16:12:48.27 ID:pNkn+mP6M.net]
>>992
MacBook
Windowsはもう持ってないしExcelも一切使わない

1000 名前:デフォルトの名無しさん mailto:sage [2021/05/24(月) 16:19:31.03 ID:aftRNFP10.net]
>>989
本当に値が変わったときのみ
Worksheet_Changeイベントを拾うのは恐らく無理。
元々のセル値をとっておき、Worksheet_Changeイベントの処理の中で対象セルの値が変わったを判定して、違っていれば処理を行うようにする。

1001 名前:デフォルトの名無しさん mailto:sage [2021/05/24(月) 20:24:23.56 ID:m/UNwUrga.net]
編集時に同じ値を入力した場合も
変更扱いじゃね

1002 名前:デフォルトの名無しさん mailto:sage [2021/05/24(月) 21:45:40.40 ID:aftRNFP10.net]
>>996
それって何か意味あるの?

1003 名前:デフォルトの名無しさん mailto:sage [2021/05/24(月) 22:50:52.89 ID:ooplu3lnd.net]
紙の表を目で追いながら画面を見ずにどんどん入力するとか普通にある
以前と同じかいちいち確認しながらより能率がいいから



1004 名前:デフォルトの名無しさん mailto:sage [2021/05/25(火) 01:55:38.61 ID:HvNz/zzH0.net]
質問いいですか?

1005 名前:デフォルトの名無しさん [2021/05/25(火) 02:04:56.40 ID:tL58A71i0.net]
お断りします

1006 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 67日 3時間 56分 13秒

1007 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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