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
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 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています