1 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 14:24:32.62 ID:I0u44nFvd.net] !extend:checked:vvvvv:1000:512 !extend:checked:vvvvv:1000:512 ↑2行に減ってるけど、同じ内容を3行に増やして貼り付けるナリ ExcelのVBAに関する質問スレナリ コード書き込みや作成依頼もOKナリ ※前スレ Excel VBA 質問スレ Part74 https://mevius.5ch.net/test/read.cgi/tech/1639932059/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
377 名前:364 mailto:sage [2022/03/19(土) 10:48:43.76 ID:OOddD3UI0.net] >>369 は正常に動作したコードです。 最初は下記のようなコードでエラーとなっていました。 Dim buf As Variant ←Variant型にしていた。 For Each buf In myRange.Value ←.Valueを付けていた。 target = target & buf & vbCrLf Next Debug.Print target
378 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 10:51:21.24 ID:CvJNM5+IM.net] 範囲検索するのにfindとworksheetfunction.matchとではどちらが速いですか?
379 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 10:52:04.86 ID:CvJNM5+IM.net] ちなみに完全一致の場合です
380 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 11:51:46.09 ID:/t3SgnSXa.net] 自分で試せばいいだろw
381 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 11:51:57.89 ID:i9OMIEsk0.net] 試したほうが早いよ
382 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 12:52:21.15 ID:UXt2lmR80.net] は?試してたらこんな所で聞きませんけど?
383 名前:デフォルトの名無しさん [2022/03/19(土) 12:52:58.71 ID:4DGoWoBi0.net] >>369 >cnt = Selection.Rows.Count >Set myRange = Range(Cells(Selection.Rows(1).Row, 12), Cells(Selection.Rows(1).Row + cnt - 1, 12)) Set myRange = Cells(Selection.Row, "L").Resize(Selection.Rows.Count) もっと簡単に書けそうな気もするがこんなもんかな
384 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 13:47:10.61 ID:zEPprvQva.net] >>376 試してなくても、こんなところで聞かないでくださいw
385 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 14:44:42.82 ID:qNoriQBK0.net] >>377 ちゅんちゅんさん推奨の書き方か resize真似して使ってたんだけど間違えやすかった
386 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 15:12:32.83 ID:OOddD3UI0.net] >>377 ありがとうございます。.Resizeを使うとスマートに書けるんですね。使ってみます。
387 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 15:57:19.25 ID:rhR/rlzyd.net] autofilterで表示されたものだけで、列をautofitすることは出来ますか?
388 名前:デフォルトの名無しさん [2022/03/19(土) 16:36:01.13 ID:4DGoWoBi0.net] SpecialCells(xlCellTypeVisible)でできんじゃねーかな
389 名前:デフォルトの名無しさん [2022/03/19(土) 16:40:58.85 ID:AuBNrAzT0.net] コードは
390 名前:スマートなのに…って言われろ [] [ここ壊れてます]
391 名前:デフォルトの名無しさん [2022/03/19(土) 18:04:38.19 ID:4DGoWoBi0.net] Range("テーブル1[項目A]").SpecialCells(xlCellTypeVisible).Columns.AutoFit 出来ないのかと思ったらできるじゃん
392 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 18:22:46.82 ID:qn2+ggVDa.net] VBA素人にご教示ください PowerQueryで整形したテーブルのデータを 別ブックのVBAに引っ張ってきたい場合 ・列データをユーザー定義型にまとめる ・ListObjectを使う どちらがベターでしょうか?
393 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 18:48:13.74 ID:XaCRBAWQM.net] 引っ張ってきたい側でpowerquery使って整形したテーブルをソースに指定する
394 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 19:07:47.91 ID:qn2+ggVDa.net] すいません、うまく説明できてませんでした PowerQueryとVBAは別ブックでも同じブックでもいいです やりたいことは 巨大なテーブルを参照してVBAで検索フォームを作りたい です その場合、テーブルデータを ・ユーザー定義型にまとめる ・ListObjectを使う どちらがいいのか?が質問の意図です 改めてお願いします
395 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 20:45:24.46 ID:ecCVM1RA0.net] 全くの素人で申し訳ないんですけど、やりたい事 ❶:B10からスタートしてボタンを押したら次の行に指定された文字を入力していく。 ❷:Ifを使って、もしB29行まで埋まった状態でボタンを押したら B2からB29までコピーしてB1からB28にペースト →B29に指定された文字を入力 色々頑張ったけど自分で❶は出来たけど❷ハードルが高かった・・・
396 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 21:21:42.73 ID:titlKmjCa.net] 2のどの部分ができないのか
397 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 21:33:07.78 ID:qNoriQBK0.net] If Range("B29")<>"" then Range("B1:B28").value = Range("B2:B29").value こんな感じか?
398 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 22:17:04.40 ID:hVJQeY+Td.net] >>389 IFで範囲内空白があった場合を出そうとしてたんだけどうまくいかなかったんや・・・
399 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 22:17:58.96 ID:hVJQeY+Td.net] 因みに入れたいのは勝利か負け。2つボタン作れば別々に行けるかな
400 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 22:56:32.21 ID:hVJQeY+Td.net] >>389 ありがとう。認識できた。そしてなんとか検索して思うような結果になった!
401 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 00:13:30.21 ID:ZUsPYd03M.net] >>382 >>384 ありがとうございます。 明日試してみます。
402 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 01:49:20.37 ID:CEJcVsO40.net] >>387 巨大ならlistobjectかadoじゃないの、速度的に。 巨大じゃなきゃ何でもいいや。
403 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 06:37:24.28 ID:Md+DYeh30.net] >>372 ちゃんとタイマー走らせて確認してるわけではないけど体感的には大して変わらない でも完全一致で検索をかける場合matchは検索対象が存在しないとエラー停止するのに対してfindはset range変数=対象範囲.find(ryで検索をかけてやればrange変数がnothingか否かで判別可能だから個人的にはfindの方が好きかなぁ
404 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 08:33:55.10 ID:Zh6y5r970.net] >>370 同じようなことを前考えたけど、恐らくEXCELのシートにインデックスを貼るのは無理っぽい。 ADOどころか拡張機能であるADOXでも無理だったはず。 代替案としてはSQLが使えないので、都度個別で考えるしかないけど、とある項目の最大値や最小値が入っているレコードの内容が欲しいなら基本、MATCH関数での検索となると思う。
405 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 10:22:27.56 ID:HKRI5d8YM.net] >>370 > どのような方法が一番速く処理出来ると思いますか? フィルターかけてSUBTOTAL(4, 範囲)
406 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 13:33:44.21 ID:NjSblaend.net] >>382 >>384 うまくいきました。 ありがとうございます。
407 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 15:42:40.21 ID:IQ9r07oYM.net] >>369 すまん、368だけどコード見てもやりたいことがまるでわからんので、回答書けない
408 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 19:07:32.87 ID:fXpRWn260.net] 初心者のため、ご存じでしたらご教授お願い致します。 エクセルから印刷する際、プリンタをカラー、モノクロをそれぞれ 自動印刷できませんでしょうか? PageSetup.BlackAndWhite = True/Flase 以外で方法がありましたら、ご教授をお願い致します。
409 名前:デフォルトの名無しさん [2022/03/20(日) 19:41:51.49 ID:V5Xg0/PX0.net] >>401 その方法では成功しないのですか?
410 名前:デフォルトの名無しさん [2022/03/20(日) 19:51:58.85 ID:aHWtYUUu0.net] 素人にご指導願います。 生年月日や所属等を含めた社員のリストを作ってまして、氏名等で検索できるようオートフィルターをvbaで作るところまではできました。 「チェックボックスにチェックを入れたら、指定した日付と同じ生年月日でフィルターをかける」という操作は可能でしょうか。 例えば、セルに1990/3/1を入れてるとして、チェックボックスにチェックを入れたらフィルターがかかって1990/3/1の生年月日だけ出てくる(それ以外は消える)というものです。 チェックボックスにチェックを入れるかどうかで指定した日でフィルターをかけるかどうかを判断したいです。 もし可能でしたら、ご教示いただけると幸いです。 よろしくお願いします。
411 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 19:56:19.87 ID:fXpRWn260.net] >>402 PageSetup.BlackAndWhite = Falseで白黒印刷設定したのですが、 塗りつぶしの背景が白で印刷されてしまいます。 また、カラーの図が白黒で印刷できませんでした。 プリンタのプロパティにある印刷設定(両面、集約、カラー等)はVBAでは制御できないでしょうか?
412 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 20:02:50.72 ID:0CQh90gjM.net] >>401 > 以外で方法がありましたら なぜこういう人は以外でないとダメな理由を書かないのか
413 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 20:15:26.37 ID:KxZjhn5zM.net] >>404 すまん、リロードしてなかった っていうか最初から書けよ… > PageSetup.BlackAndWhite = Falseで白黒印刷設定したのですが 白黒設定は True じゃね? > プリンタのプロパティにある印刷設定(両面、集約、カラー等)はVBAでは制御できないでしょうか? 無理、 Application.Dialogs(xlDialogPrinterSetup).Show で、ダイアログを表示させるのが精一杯
414 名前:デフォルトの名無しくん [2022/03/20(日) 20:21:02.46 ID:V5Xg0/PX0.net] >>404 プリンタドライバをもう一つ入れて、そのドライバの初期設定を白黒にして「白黒印刷専用」とする。 このプリンタ(ドライバ)をVBAで選択して印刷する。 過去にやったことがあるけどちょっとめんどくさかった記憶 他にいい方法あるのかな
415 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 20:23:50.61 ID:Md+DYeh30.net] >>403 チェックボックスにマクロを登録してフィルターのキーをその入力があるセルを参照すれば良いだけだと思う 例外処理があるならそれはどういう条件で省くのか分からないから自分で考えて
416 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 20:36:02.96 ID:fXpRWn260.net] >>406 ご回答ありがとうございます。 理由も一緒に書けばよかったですね。大変失礼致しました。 以後気を付けます。 やはり無理なんですね。 他のかたがご指摘のように、白黒専用プリンタドライバを増やして プリンタを切り替えてトライしてみます。 ご指摘の通り、PageSetup.BlackAndWhite = Trueが白黒です。失礼致しました。
417 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 20:41:31.10 ID:fXpRWn260.net] >>407 ご回答ありがとうございます。 プリンタドライバを増やす方法、ご提案ありがとうございます。 早速トライしてみます。 ドライバーを入れた後、プリンタの基本設定で白黒を初期設定にすれば白黒専用でいけますね。
418 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 21:09:18.42 ID:j6YhEUF6d.net] >>403 多分VBA要らない スライサーで十分
419 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 02:46:04.32 ID:HoitaytG0.net] スライサやタイムライン知らない人多いらしいね マイナーなのかな?
420 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 06:08:07.49 ID:8sRo6eoq0.net] マイナーはマイナーだと思う MOS受けて初めて知ったわ
421 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 07:21:11.67 ID:K7MjVs2M0.net] テーブルからしてまだマイナーだからかしら?
422 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 07:27:35.78 ID:Od0FfcR
] [ここ壊れてます]
423 名前:PM.net mailto: ブックの共有するとテーブルが使えない 共有機能とテーブルどちらを選ぶとしたら会社では共有を選ぶ 糞共有機能は早く廃止してほしいな [] [ここ壊れてます]
424 名前:デフォルトの名無しさん [2022/03/21(月) 08:06:13.98 ID:S9+WMeZFH.net] 誰か教えてください 各営業所から毎月送られてくる実績ファイルを一つのブックに集計するマクロを作りたい 一つのフォルダに全てのブックを入れてループ処理するマクロ自体はできたんだけど肝心の転記の仕方がわからない 具体的には各ファイルの指定のセルから集計表ファイルの指定のセルに営業所名ごとに転記したい 営業所ファイルには4〜3月まで縦に月毎に実績が並んでいて集計表のファイルは横に月毎になってるって感じ どうしてもわからなくてどなたか助けてください
425 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 08:19:15.34 ID:/kHY2rERM.net] powerqueryだな
426 名前:デフォルトの名無しさん [2022/03/21(月) 08:24:32.18 ID:S9+WMeZFH.net] >>417 ありがとうございます パワークエリってやつですかね? 検索かけたら使い方分かりそうでしょうか?
427 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 08:52:49.57 ID:K7MjVs2M0.net] >>418 ようつべのライブラリに放り込んでた中から 役に立ちそうなもの見繕ってみた。 PLをフォルダに放り込むだけで科目ごとの数値を比較できる【エクセル パワークエリ PowerQuery】 https://youtu.be/xxc5sCl6U3w 大量のエクセルファイルを1つにまとめる方法【ファイル名活用】 https://youtu.be/XMwbj7x4Q0Y 【マクロ無しで】大量ファイルを1つに統合。簡単にクリック操作で可能(Power Query、取得と変換) https://youtu.be/RCmoho3jU8Q PowerQuery 複数のExcelファイルからデータを結合する方法 https://youtu.be/VxKoqBJWgRo
428 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 09:00:07.15 ID:8sRo6eoq0.net] >>416 Sub foo() '開いてset Set 転記先ブック = ThisWorkbook Set 営業所ブック = Workbooks.Open( _ "C:\Users\81909\Desktop\eigyosyo.xlsx") '転記 転記先ブック.Sheets("sheet1").Range("b2:d3").Value = _ 営業所ブック.Sheets("sheet1").Range("b2:d3").Value End Sub 保存ファイルのパスと転記セルの範囲変えたら使えると思う
429 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 09:06:14.38 ID:Yo31hjL10.net] >>397 ありがとうございます。 やはりEXCELのシートにINDEXを設定するのは無理なんですね。 >>398 ありがとうございます。 残念ながら20万件100項目という量のせいか、 フィルターを掛けるとそのまま固まってしまい、いつ返ってくるか、そもそも返ってくるのかすら分からない状況になりました。
430 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 09:14:48.04 ID:8sRo6eoq0.net] >>421 そもそもフィルター掛ける必要があるのかどうかってのもあるけど・・・ ぱっとおもいつくのは ・forで回して別シートに転記。量が少なければそこまでかからんはず。量が多いとかなり大変 ・別シートにfilter関数。かなり軽いけど、その量に対してはやったことないな ・スプレッドシートでquery関数。軽さならこれが最強で、めちゃくちゃ軽い
431 名前:デフォルトの名無しさん [2022/03/21(月) 16:06:54.19 ID:YtFKrPKNa.net] >>419 ありがとうございます 見て参考にさせていただきます
432 名前:デフォルトの名無しさん [2022/03/21(月) 16:10:10.41 ID:YtFKrPKNa.net] >>420 ありがとうございますこの構文のでいける感じですか? ホントど素人で申し訳ないんですけど転機の構文は何をしてる感じでしょうか?
433 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 16:14:49.98 ID:ombAFbaLM.net] >>420 は要点をコンパクトに上手に説明してる これが理解できないなら自分で最終回答に辿り着くのは無理だよ
434 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 16:21:01.88 ID:8sRo6eoq0.net] >424 転記の部分は値でコピーペーストだよ 試しに動かしてみたほうが早いと思う
435 名前:デフォルトの名無しさん [2022/03/21(月) 16:38:45.50 ID:YtFKrPKNa.net] >>425 >>426 ありがとうございます まずは動かしてみます
436 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 16:43:02.21 ID:HoitaytG0.net] テーブルってまだ普及していないねかな?
437 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 16:50:26.11 ID:DBpwCepOM.net] 永遠に普及しないでしょうね 列島猿はセル結合したり自分で色塗ったり線引いたりするのが大好きで、お仕着せのDBにデータだけ放り込むみたいなのは苦手なので
438 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 16:56:11.28 ID:8sRo6eoq0.net] 全面的に同意 テーブルで表作ったらテーブルを解除しろって言われるレベル
439 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 17:19:32.38 ID:fDbYf0xJ0.net] >>424 転記する際に縦横を置換したいんじゃねえの? 420の例にはそれが入ってないかと
440 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 17:21:13.79 ID:fDbYf0xJ0.net] テーブルでも椅子でもいいからさっさとやれと言われるわしら下っ端
441 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 17:57:58.00 ID:bPJRBgFUM.net] >>416 マクロ記録開始してその転記の操作してみればいいかと
442 名前:デフォルトの名無しさん [2022/03/21(月) 19:13:04.04 ID:S9+WMeZFH.net] >>431 あーそうなんですね そこ大事なところなもんで… ありがとうございます
443 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 19:37:57.87 ID:HoitaytG0.net] いつも思うのだけど、これだけExcel情報が世の中に溢れているのにセルご法度の結合だの色塗りまくるだの改行だのする人ばかりなのは何故なんだろうね?? パソコン雑誌とか読んで勉強していないのかなと?
444 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 19:43:19.70 ID:zSyDDKWUH.net] >>435 www2.odn.ne.jp/~cbl97790/shinsakutenjishitu.htm
445 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 19:53:51.30 ID:8sRo6eoq0.net] >>435 業務改革を微塵も考えていないから 一日8時間で、最初に与えられたルーチンが回ればそれで良いと考えてる人がほとんど なんでそうなってるかは、知らん
446 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 20:06:38.09 ID:7hRN3rZ2M.net] >>435 別にExcelの達人になるわけじゃないし そもそも結合するなと言うなら縦方向の「選択範囲内で中央」を実現しやがれ
447 名前:デフォルトの名無しさん [2022/03/21(月) 20:11:42.48 ID:S9+WMeZFH.net] >>433 それも思ったんですけどそれだと恐らく一つの営業所の実績を一つのセルにコピーする操作になってしまいそうで…
448 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 20:23:41.52 ID:2j3OjuAE0.net] >>439 ここまでの説明で理解できてないようなので とりあえず営業所毎ファイルと集計表ファイルをアップロードしないと話が進まない
449 名前:デフォルトの名無しさん [2022/03/21(月) 20:42:56.54 ID:S9+WMeZFH.net] >>440 オケ さすがにそこまでは出来ないので色々試してみます ありがとうございました
450 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 20:43:57.15 ID:8sRo6eoq0.net] >>439 転記部分は好きなように変えたり増やしたりスレば良い b2をd3に、a1をe5に、など、なんとでもなる。 '転記 転記先ブック.Sheets("sheet1").Range("b2").Value = _ 営業所ブック.Sheets("sheet1").Range("d3").Value 転記先ブック.Sheets("sheet1").Range("a1").Value = _ 営業所ブック.Sheets("sheet1").Range("e5").Value
451 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 21:18:25.50 ID:8fSFwG7JM.net] >>439 思うだけで手を動かす気はないのね… いち抜けた~っと
452 名前:デフォルトの名無しさん [2022/03/21(月) 21:20:10.88 ID:S9+WMeZFH.net] >>443 ごめんなさい会社のファイルなので今日できんのよ 明日行ったらやってみる
453 名前:デフォルトの名無しさん [2022/03/21(月) 21:21:07.73 ID:S9+WMeZFH.net] >>442 ありがとうございます! やってみます!
454 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 21:49:42.78 ID:HoitaytG0.net] 日本のExcelのレベルが低いからExcel講師やパソコン教室が潤うと。
455 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 22:13:13.78 ID:NuDNOSQMd.net] ループ文とか条件文とかユーザーフォームとかクラスとか使ってごちゃごちゃやってるけど結局のところファイルの開閉と転記作業しかしてない事に気づいた 転記があれば何でも出来る
456 名前:デフォルトの名無しさん mailto:sage [2022/03/21(月) 23:00:27.32 ID:Rbd9piL90.net] 転記の子
457 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 00:36:53.70 ID:000FKf5P0.net] 始めたてのド素人ですがご教示頂けると幸いです。 表の列ごとにランダムに入っている異なるフォントの色で正負を判断して最終行に和と差の合計値を出力したいのですが可能でしょうか? 詳しく言うと赤色が負として、黒色が正としてセルに数値が手打ちされてます。 列の最終行を取得しsum関数を挿入することはできるのですが、フォントの色で正負を判断して合計値が出せるのか教えていただけないでしょうか。
458 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 00:49:54.42 ID:kEBDDtio0.net] >>449 もともとエクセルにはマイナスの数字を自動的に赤くする機能がある その機能で色を変えてるんだと集計の方法も変わってくるから、まずはそこを確認して
459 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 01:08:13.62 ID:TibwPpTv0.net] 書式に辿り着ければ 自ずと答えが見つかろうぞ
460 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 01:19:04.08 ID:KVIRUNm3d.net] そもそもVBA不要 sumif関数で出来る
461 名前:デフォルトの名無しくん mailto:sage [2022/03/22(火) 02:43:58.13 ID:d3YPRjya0.net] きっとこれは黒色の負とか青色の正とかあって あえて色で集計したいんだろうな と、深読み
462 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 12:14:00.76 ID:000FKf5P0.net] ご返信ありがとうございます。 表のシートが種類ごとにあって量が千を超えているので自動化したい所存です。 前任が手書きの台帳をエクセルに落してくれたまでは良かったのですが、他の社員が手書きのときと変わらず正の値で色のみ変えて入力するため、毎年年度末になると延々と手作業で何時間も単純作業を強いられるのでなんとかならないかと思案しておりました。
463 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 12:33:30.37 ID:jGZXGfWV0.net] 条件書式でゼロ以上は赤字にするとかでもダメなんか? 逆にVBA使った方が遅かったり不便にかりそうな案件だと思うんだが
464 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 13:33:25.27 ID:MYdjPEb1M.net] >>421 > 残念ながら20万件100項目という量のせいか、 > フィルターを掛けるとそのまま固まってしまい、いつ返ってくるか、そもそも返ってくるのかすら分からない状況になりました。 PC買い替えろ 30万行x300列に数値データを埋めてやってみたけどフィルター処理なんてほぼ瞬時に終わるぞ
465 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 13:38:08.96 ID:mA7AOTDM0.net] 他の社員が入力してるものだからなあ 集計よりも入力用のシートを何とかできたら手っ取り早いんだがそれは無理なんかな
466 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 13:43:49.21 ID:R4HxgmoiM.net] 色付けるよりマイナス記号打つ方が速いだろうに…… ご苦労さまでした
467 名前:デフォルトの名無しさん [2022/03/22(火) 13:48:33.03 ID:C94PEu1/d.net] >>454 はっきり言えばこんなこともできないお前は手を出すな
468 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 14:03:10.79 ID:l3SAD7eYM.net] >>455 元のデータが 1, -2 ってなってるところを 1, 2 (←赤文字) で入力されてるんだろ >>454 if Cells(行,列).Font.Color = RGB(255,0,0) Then ... で判断できるよ データ書き換えていいなら(てか、個人的にはそうすべきと思うが) For C In ActiveSheet.UsedRange If C.Font.Color = XlRgbColor.rgbRed And IsNumeric(C.Value) Then C.Value = -C.Value C.Font.Color = XlRgbColor.rgbBlack End If Next として、一気に書き換えちゃうのがいいかも
469 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 19:08:50.48 ID:Gjrul4fP0.net] >>456 流石に仕事場のPCを勝手に買い替えるのは私には出来ませんし、 最終的にフィルター等の処理は使用せずにかなりの高速化をはかることが出来ました。 この方式が最速ではないかも知れませんが、 今までADO接続でSQLを実施して 2〜3分掛かっていた処理が一瞬で終わるようになったので満足しています。 今まで質問に答えて頂いた方、色々参考にさせていたきました。 ありがとうございました。
470 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 20:15:28.30 ID:WUXZwGEtd.net] >>454 やはりVBAは不要 オートフィルターのフォント色で絞り込み、subtotal関数で十分
471 名前:デフォルトの名無しさん [2022/03/22(火) 23:22:39.90 ID:VOPCLAbN0.net] 本当にド素人なのでお許し下さい ここに3枚の請求書(Excelデータ形式)があり、それぞれsheet1、sheet2、sheet3にあります フォーマットはバラバラで文字や配置が異なります これをsheet4で「支払日」「取引先名」「取引内容」「税込金額」を一覧表にしたいのです こういうことはVBAでは可能でしょうか? 可能であれば、難易度はどの程度でしょうか? *実際には請求書は数百枚あります
472 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 23:26:23.97 ID:b3mXLXMM0.net] >>463 フォーマットが統一されていれば、vbaでやる意味はある フォーマットが統一されていない場合、vbaで書く意味がほとんどない。手作業でコピペするのと変わらん
473 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 23:26:42.94 ID:b3mXLXMM0.net] かわらん、と言ったけど手作業でコピペする方が早いわ
474 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 23:43:05.71 ID:6kcI/g5C0.net] >>461 そのフィルターが処理するために、 全データをメモリに載せようとするから、メモリ不足でフリーズする 20万件 * 100項目 = 2千万項目, 20,000,000 仮に、1つの項目が1KB とすると、 20,000,000 KB = 20,000 MB = 20 GB メモリに載せられないから、フリーズする ファイルの読み込みと同じ。 20GBのファイルを一度に全部読み込めない 部分的な読み込みにしないと無理 例えば、1MBずつ読み込んで処理して、そのデータを捨てるとか。 これなら、1MBしかメモリを使わない でも、この方法では、全データをソートしたりできない。 自分で実装できないから、結局、データベースを使うしかない
475 名前:デフォルトの名無しさん mailto:sage [2022/03/23(水) 00:15:35.00 ID:HTP/aspP0.net] >>461 せめてどうやったかぐらい書けよ つかエクセルからエクセルブックにADOでSQLとか、余計なオーバーヘッドで遅くなるイメージしかないんだがな それで高速化できるようなケースがあるのか?
476 名前:デフォルトの名無しさん mailto:sage [2022/03/23(水) 00:34:00.08 ID:3vbjDh2k0.net] 。。同志達は例の追加された新しい関数の情報つかんでいるよね? なんだか凄そうな予感
477 名前:デフォルトの名無しさん mailto:sage [2022/03/23(水) 01:05:25.56 ID:MTKAae3e0.net] ワークシート関数の追加のニュースなら見たけどVBAにも何か追加されるん? https://forest.watch.impress.co.jp/docs/news/1395929.html