Excel VBA 質問スレ Part78

■ このスレッドは過去ログ倉庫に格納されています
2022/10/30(日) 13:43:16.31ID:6yf2E1Gz0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること

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

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

※前スレ
Excel VBA 質問スレ Part77
https://mevius.5ch.net/test/read.cgi/tech/1658009255/

-
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
331326 (ワッチョイ 7274-JnHA)
垢版 |
2022/12/08(木) 14:20:26.49ID:65k1Y+1Y0
>>330
いやわたしはハゲちゃおらんよ。
君みたいなハーゲマンと一緒にしないでくれ。
2022/12/08(木) 17:59:48.27ID:sOdFjo8m0
またヘアの話してる。。
ヘア話好きだなぁお前ら
2022/12/09(金) 01:27:21.92ID:hGMGk7SH0
クエリA
UNION ALL
クエリB
→文字化け

クエリB
UNION ALL
クエリA
→正常

なんでやねん!
何で上下入れ替えると直る?
因みに、文字化けする方も文字列型にすると化けないので、
文字コードの問題ではない。
334デフォルトの名無しさん (アウアウウー Sa3a-zfUU)
垢版 |
2022/12/09(金) 02:00:05.39ID:6OFfyKzYa
コードだせよ
2022/12/09(金) 02:12:16.40ID:Uc0MJbfu0
毛出せよ
336デフォルトの名無しさん (ワッチョイ 0a19-vo7k)
垢版 |
2022/12/09(金) 04:09:12.16ID:u4+GnlEA0
>>333
何に大してSQL投げてる?
2022/12/09(金) 07:02:42.07ID:KfOH1QpXH
神様皆様おはようございます
神様たちのお導きで50万行*80列のデータから
所望のデータを抽出できました
ありがとうございました!
2022/12/09(金) 13:09:40.12ID:rQKM0wa8M
OneDriveで自動保存設定してるブックに手動保存するときだけbeforesaveイベントする方法はある?
2022/12/10(土) 04:11:06.01ID:sYCK+UIk0
>>336
CSV
schema.iniも使ってる。
340デフォルトの名無しさん (ワッチョイ bf19-TX1J)
垢版 |
2022/12/10(土) 07:54:03.42ID:07zUVtVr0
>>339
SELECT句の中にアスタリスク使ってない?
UNION句で挙動がおかしくなるのはCSVファイルじゃなくてEXCELのシートにSQL投げたときに起こるのも見たことあるけど
まぁそもそもDBに投げてる訳じゃないからある程度は仕方ないってところもあるよ。

CSVファイルはUTF-8かSJISかってのもあるけど
UNION句の上下入れ替えたら直ったというのであれば今回は関係なさそうだしね。
2022/12/11(日) 02:40:17.51ID:08xatqWx0
>>340
アスタリスクは使ってるけど、
A.* ってテーブルは指定してる。
入れ替えで直るから、
今困っているわけじゃないけど、
これから先使うの不安だわ。
342デフォルトの名無しさん (アウアウウー Sa6b-UXa/)
垢版 |
2022/12/11(日) 02:50:20.80ID:z4dJXl08a
あすたのリスクに備えよう
2022/12/11(日) 04:50:30.55ID:fs20dDlo0
いつまで起きている?
2022/12/11(日) 12:55:57.38ID:GglWfKZ40
>>338
Ruby on Rails では、before_action, after_action, around_action で、コールバックできる

before_save :a, only: [:new :edit]
after_save :b, except: [:new :edit]

onlyで、new, editが呼ばれる前にだけ、aを実行する。
逆にexceptでは、new, editが呼ばれなかった後にだけ、bを実行する
345デフォルトの名無しさん (ワッチョイ bf19-TX1J)
垢版 |
2022/12/11(日) 14:15:24.03ID:6rsOUIlG0
>>344
布教活動大変だね
2022/12/11(日) 16:42:01.94ID:pyId0WeJH
>>344
もうすぐなくなる言語が何だって?
https://trends.google.co.jp/trends/explore?geo=JP&q=ruby,python,php,vba
2022/12/11(日) 20:21:22.99ID:fs20dDlo0
Ruby信者ってどこにでも沸くな
348デフォルトの名無しさん (ワッチョイ 47ba-tIJK)
垢版 |
2022/12/11(日) 23:36:23.53ID:jy7H3fIV0
サーバーにあるフォルダからPDFを検索したいのに上手くいかない
検索はかけても何もヒットしない…
どこか修正するとこありますか?
テキストボックスに入力して検索
検索結果をリストボックスに表示します

Private Sub CommandButton1_Click()
Const BASE_PATH = "\\L\設計\図面"
Dim myPath As String, myName As String
Dim FSO As Object, oFolder As Object, oSubFolder As Object, oFile As Object
On Error Resume Next
If TextBox1.Value = ""Then Exit Sub
ListBox1.Clear
Set FSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = FSO.GetFolder(BASE_PATH)
For Each oSubFolder In oFolder.SubFolders
For Each oFile In oSubFolder.Files
If LCase(oFile.Name) Like LCase(TextBox1.Value) &"*.pdf"Then
Debug.Print oFile.Path
myPath = oFile.ParentFolder &"\"myName = oFile.Name
ListBox1.AddItem myName
ListBox1.List(ListBox1.ListCount - 1, 1) = myPath
End If
Next
Next
Set FSO = Nothing
End Sub
349デフォルトの名無しさん (スプッッ Sdff-BgjO)
垢版 |
2022/12/12(月) 00:49:34.01ID:GzIbQG1id
if文の文字列比較条件でワイルドカードが使えたらいいよね
350デフォルトの名無しさん (ワッチョイ 7f8e-BgjO)
垢版 |
2022/12/12(月) 00:53:47.45ID:b3Hc3KE20
あ、vbaか
すまん
2022/12/12(月) 01:42:01.46ID:4xXIhKks0
読めん
字下げから始めた方がミス探しやすいはず
2022/12/12(月) 02:19:04.59ID:hdNfjLFm0
>>348
とりあえずデバッガーした結果をクレ
2022/12/12(月) 05:04:18.82ID:x7256VzD0
>>348
とりあえず
For Each oFile In oSubFolder.Files
Debug.Print "Debug:" "& oFile.Name
If LCase(oFile.Name) Like LCase(TextBox1.Value) &"*.pdf"Then
としてまずファイルがあるのか確認しなよ
あとデバッグ中は
On Error Resume Next
をコメントアウトしといた方がいい
予想外のエラーを握り潰されて(当人にとっては)意味不明な挙動になることあるから
2022/12/12(月) 08:24:42.26ID:lSQJahkmM
>>349
正規表現あるやろ
2022/12/12(月) 14:02:36.57ID:Yr5sVjH4a
請求書の原紙となるsheetをコピーして、そこに配列に格納した請求情報を貼り付けるという作業を約100回繰り返したいのですが、
①先に約100回のsheetのコピーを済ませて、生成されたsheets間をループして請求情報を貼り付ける
②sheetのコピー→請求情報の貼付けを約100回ループする
どちらの処理が早いのでしょうか
2022/12/12(月) 14:07:14.79ID:DRicYWUJ0
100回程度ならどっちでも体感の差はないと思う
2022/12/12(月) 16:22:37.21ID:r3Uma5Xoa
シートがクソ重かったりPCがクソ貧弱だったりするなら、
②の方がブックが小さい状態で貼り付けの処理ができるから安定して動くだろうね
2022/12/12(月) 17:07:21.38ID:1yb84Oz2a
>>357
後にまとめて印刷して突き合わせを行うため、請求書のシートの順番を配列の要素の順番と同じようにしなければなりません
よって②の場合は、配列の値を貼り付けた後に(配列の添字が 1 から始まるため) “Copy After := Worksheets( i )” を記述することになります
つまりシートをコピーする度にシート数をループ変数から取得する処理の繰り返しになるのですが(①だと “Copy After := Worksheets( 1 )” でもよい)、それでも②の方が安定しているのでしょうか
2022/12/12(月) 17:09:47.10ID:1yb84Oz2a
>>358
シート数を→シート番号を
360デフォルトの名無しさん (ワッチョイ 7fda-UXa/)
垢版 |
2022/12/12(月) 17:26:03.86ID:8QT34TfC0
請求書ってそんな適当に作ったマクロで請求していいものなのか
2022/12/12(月) 17:30:19.83ID:1yb84Oz2a
>>360
私がマクロを作る前は手書きで請求書を書いてエクセルに抽出した請求データと目視で突合していたんですよ(現在は自作した請求書を自動発行するマクロをスピードアップを目的に改修しているところです)
そういう会社もあるんです
2022/12/12(月) 18:07:39.61ID:UCyWy/zwd
iはWorksheets.Countあたりを使えばいいんじゃないの?
ただ100件程度なんてせいぜい数分でしょ
今までの時間に比べたらどっちでもいいんじゃないの
2022/12/12(月) 18:13:02.49ID:UCyWy/zwd
ただそういうモノづくりをしてる自分からしたら
かりにある得意先の請求書のみ間違えていて修正したい場合①②どちらも最初から作り直すような感じに見えるけど
そうすると他の請求書にも影響あたえるような作りに見えるんだよね
なのでそういうのを作る場合は得意先コード的なものを最初に指定してその範囲の請求書を作る
かりに修正したい得意先があればそれだけを指定すればいいみたいな作りにするけどね
2022/12/12(月) 18:21:55.06ID:1yb84Oz2a
>>362
Worksheets.Count はなおさら遅いのではないでしょうか? シートのカウントを約100回繰り返すので
些末なこだわりと言われればそのとおりなんですが、どうせ改修するなら細かいところまでこだわった方がスッキリすると思いまして
>>363
指定した得意先の請求書のみを発行するコードも別のモジュールに書いてあります
メインは請求データの照合及び修正を行った後に約100件分をまとめて発行するフローでないと時間がかかってやってられないんです
2022/12/12(月) 18:35:02.38ID:UCyWy/zwd
それならまずシートを100作るだけのコード書いて試せば済むことじゃないの?
よくわからないけど通常と指定可能な請求書作成が別のコードになってるんだとするとメンテのコストが2倍になるのかなと思わなくもないね
まあ他人の作るものだから余計なお世話だけどね
2022/12/12(月) 18:40:55.92ID:1yb84Oz2a
>>365
確かに自分で三通りの方法をテストしてみれば済む話なんですが、もしかして私が挙げた処理はよくあるパターンであって一般解が確立されているのかなと思い、質問させていただきました
2022/12/12(月) 20:57:08.22ID:Av/AuTTr0
たかが100回で差が出るわけ無いじゃんというレス付いてるだろ
それが一般解
368デフォルトの名無しさん (ワッチョイ dfc7-B8iQ)
垢版 |
2022/12/13(火) 08:18:42.44ID:j7P7/vOd0
>>348
If LCase(oFile.Name) Like LCase(TextBox1.Value)&"*.pdf" Then
この部分、頭にもアスタリスクをつけてみたら?

If LCase(oFile.Name) Like “*”&LCase(TextBox1.Value)&"*.pdf" Then
2022/12/13(火) 09:09:12.15ID:EeVlUt2Pr
100回やって差なんか0.1秒もないだろ
その0.1秒を縮めるのに何分無駄にしてんだよ
どっちでもいいような事に無駄に時間を費やすのは無能のやることだぞ
2022/12/13(火) 11:03:24.68ID:hJPKsYSy0
>>369
スレ読んで書き込むのに何分使ったの?
2022/12/13(火) 12:21:04.99ID:vd/+mp7xH
リファクタリングの基準ってどれぐらい?
さすがに30分は当然なにかしらすると思うけど、
30秒ぐらいってどうするもんだろう。頑張って最適化するか、それとも待つか
2022/12/13(火) 12:35:32.21ID:VHMxVebWM
アンケート禁止にしないか?
集計できるほど人いないし
2022/12/13(火) 12:37:28.28ID:Z1nZTnw+0
>>371
賛否両論あって結論は出ていない
2022/12/13(火) 15:11:59.28ID:hrptArbOd
自社の開発時のルールで決めてるんじゃないの?
適当ですとかならいい会社だね
単なるツールなら適当でいいんじゃない
2022/12/13(火) 15:42:35.91ID:hJPKsYSy0
みんなプロなのか
私的に使ってる俺は処理が長いと感じたときとか、作って眺めたコードがクソ汚いかったときとかにする
2022/12/13(火) 18:38:15.19ID:vd/+mp7xH
>>372
しないよ

>>373-375
thx
その時の気分とか空いてる時間があるとか、
業務に支障がない限りはそんなもんよね
2022/12/13(火) 18:49:33.01ID:HC35XA+E0
>>375
本職も多いよここ
即答できる人もいる理由はそこ
2022/12/14(水) 10:41:10.18ID:AqNC6do0M
アンケート結果発表!

シラネーヨ 100%
2022/12/14(水) 15:11:34.58ID:ntQYo9CS0
Excel VBAの本職ってなんだろう
2022/12/14(水) 15:24:19.30ID:tcCDU8ws0
Excel VBAを「教える人」どまりかと
2022/12/14(水) 17:28:34.10ID:zpvPwogV0
ソートがうまくいきません。
今まで下のコードでちゃんとソートできていたのですが、別のブックで同じコードを使ってもソートしてくれません。
原因がわかる方いらしたら教えてください。

Call Range(Cells(i, 1), Cells(i, 6)).Sort(Cells(i, 1))
2022/12/14(水) 19:02:52.74ID:DP6xyTlHH
>>381
callで呼んでるのが変。むしろそんな書き方が出来るのか!と新しい発見レベル
sortの書き方が古い。2003以前とかの書き方だったような気がする

Sub aaa()
Range(Cells(2, 1), Cells(6, 2)).Sort Key1:=Cells(1, 1)
End Sub
https://learn.microsoft.com/ja-jp/office/vba/api/excel.range.sort
2022/12/14(水) 19:15:27.04ID:8W0NbET2d
戻り値が必要ない呼び出しするならcallでもいいでしょ
ただし引数指定する時にカッコでくくる必要がある
自分のところでもソートされない現象が再現するんだけど、なぜか一度ソートすると次回以降はソートされるようになるね
ちなみにこんな感じに修正すればソートされるようにならない?
Call Range(Cells(i, 1), Cells(i, 6)).Sort(key1:=Cells(i, 1), Orientation:=xlSortRows)
・「key1:=」をつける
・「, Orientation:=xlSortRows」をつける
2022/12/14(水) 20:03:28.98ID:zpvPwogV0
>>382
このやり方で無事できました。ありがとうございました。

>>383
このやり方も試しましたが、できませんでした。
やっぱりcallは使わない方がいいんでしょうか。
拾ったコードをよくわからずに使っていました。
2022/12/14(水) 20:05:33.98ID:Q900W+A40
Let と Call は使わないなあ...
2022/12/15(木) 08:41:16.03ID:iAaI5rJJa
え?VBA本職の人がこのスレにいたような??
過去スレで見たような
387デフォルトの名無しさん (ワッチョイ 7fda-UXa/)
垢版 |
2022/12/15(木) 12:16:56.32ID:xwhwlfZy0
質問者が本職では?
2022/12/15(木) 12:19:05.46ID:E+nMgP0Z0
そんな訳ないじゃん
本職が初級者みたいな質問するわけないし。
389デフォルトの名無しさん (ワッチョイ 7fda-UXa/)
垢版 |
2022/12/15(木) 14:39:58.62ID:xwhwlfZy0
初心者でも本職っているだろ
2022/12/15(木) 17:34:15.89ID:psAmgpbl0
なんのお仕事をされているんですか
2022/12/15(木) 18:06:00.77ID:E+nMgP0Z0
引きこもり
2022/12/15(木) 18:08:25.94ID:zS2qEH43a
ネット検索で出てきたコードを参考にして、あるシートから別のシートへ PageSetup オブジェクトのプロパティを引き継ぐ汎用コードを作ったのですが、 Application.printcommunication を触ると何故か処理がコケてしまいます
別のコード(プロパティの順番や数が違う)を試してみると Application.printcommunication = True のところで 1004 エラーが
調べてみると Application.printcommunication は法則性のないエラーを吐くことが多いらしいんですが、上手く安定して動作させる方法はないでしょうか
なお Application.printcommunication の操作を省くと重すぎて使い物になりません
393デフォルトの名無しさん (ワッチョイ bf19-TX1J)
垢版 |
2022/12/15(木) 22:51:51.95ID:SZeJUdRk0
VBAが本職ではないけど
他言語を含めてプログラマーってことなら
意外と本職の人いそう
2022/12/16(金) 03:10:13.03ID:43IDYg4Z0
本職の定義が不明
2022/12/16(金) 06:44:51.24ID:lvCG6MuKa
VBA で金貰ってる(=給料の一部)と言うだけならかなり多くの会社員が該当しそう
2022/12/16(金) 07:34:05.36ID:KlD5oueT0
VBAだけで生計を立てている、としたら・・・?
397デフォルトの名無しさん (ワッチョイ 47da-u86g)
垢版 |
2022/12/16(金) 07:47:34.39ID:nXqIC3mr0
>>392
解決方法じゃなくてすまんけど。
trueを設定してこけるということはその前にfalseを設定してるのだと思うけど、
falseとtrueの間の処理でなんの設定を変更するとこけるのかを地道に探し出すしかないような気がする。
プリンタ関係だとページ設定あたりかと思うけど思わぬところが影響してることもあるし、プリンタ環境は千差万別だしね。
398デフォルトの名無しさん (ワッチョイ 4fda-ZR1D)
垢版 |
2022/12/17(土) 11:54:26.33ID:RQDgBjgc0
>>392
こんなブログ見つけたけどこれがほんとなら確かにクセつよ
https://ubuntu84.blogspot.com/2014/12/excelvba-pagesetup-printcomminucateion.html
2022/12/17(土) 13:51:53.17ID:MTNASajBd
>>392
マクロの記録で実際に設定したい値をまずは取得してみて
そのコードをそのまま使ってみてもエラーになるわけ?
2022/12/17(土) 14:34:09.55ID:rC46nFCS0
>>392,398
ちょっと気になって試したけど、それ、ほんとは
.Zoom = False の行でエラーになってるな

ステップ実行させてみればそこでちゃんとエラーになるんだが
普通に実行させるとそこでそのエラーが発生しないで、
PrintCommunicationで予期せぬエラーとなってるんじゃないか
(うちの環境では順番入れ替えて同じだった)

VBAのバグっぽいしマイクロソフトに問い合わせるのがよさげだが
一度ステップ実行で1行ずつ試してみれば?
2022/12/17(土) 14:46:45.42ID:MTNASajBd
そのブログのコードは拡大縮小の部分についてみたいだけど
通常であれば有効にする動作を書くようなコードが必要なのに無効にするようなコードを書くから
当該エラーがでてるような感じにも見えるけどね
実際にエラーになる「.Zoom = False」を「.Zoom = 150」の様に修正するとエラーはでなくなるから
そういう書き方を心掛けないとだめなんじゃないかと思うわ

なので自分としては実際に設定したいページレイアウトをマクロの記録で取得してみたらといっている
402デフォルトの名無しさん (ワッチョイ 4fda-ZR1D)
垢版 |
2022/12/17(土) 14:59:41.69ID:RQDgBjgc0
>>400
なるほど。
そうなると.PrintCommunicationが認識出来ないプロパティがいくつかあるのかもしれないね。
ステップだとその時々で確認しにいくけど走らせるとPrintCommunication=trueで一括設定しようとするからそこでエラーって感じかな?
1004エラーってコードに不備があるときに出る印象があったから個人的に納得。

なんか参考になった。試してくれてありがと。
いや質問者じゃないんだけどw
403デフォルトの名無しさん (ワッチョイ 4fda-ZR1D)
垢版 |
2022/12/17(土) 15:03:53.79ID:RQDgBjgc0
>>401
ああ、それもそうだね。
『ズームを有効にするか無効にするか』
じゃなくて
『拡大縮小率をどのくらいにするか』
を具体的に指定するプロパティなら確かにその通りだわw
2022/12/18(日) 18:40:43.65ID:EVD3BPiK0
A1の数字が10以上で、B1の文字がたた、なな、はは、まま、やや、ららが含まれている場合に、D1にプレゼントと書きたいんですけど、どういうvbaか教えて頂きたいです。
B1の候補が50個以上あって、COUNTIFとかで全部入れるのが大変なんです…
A列B列には、それぞれ100行くらいあります。
405デフォルトの名無しさん (スッップ Sd8a-g3+u)
垢版 |
2022/12/18(日) 18:47:30.46ID:dVPwMTg0d
馬鹿って仕様すらまともに書けないから馬鹿なんだよな
2022/12/18(日) 18:50:14.49ID:aFtf8S9Da
その候補を別のシートに並べればワークシート関数で一発では
407デフォルトの名無しさん (ワッチョイ 377d-VwZX)
垢版 |
2022/12/18(日) 20:52:35.12ID:ik+0WLv80
特定のフォルダにある一番新しいファイルを
開いて、内容をクリップボードにコピーした
いのですが、どう書いたらいいですか?

その後DBアプリで処理する流れです。
408デフォルトの名無しさん (スッップ Sd8a-g3+u)
垢版 |
2022/12/18(日) 21:23:56.35ID:dVPwMTg0d
ファイルをそのまま変換してdbに読み込ませればいいだろ

馬鹿って仕様すらまともに考えられないから馬鹿なんだよな
409デフォルトの名無しさん (JP 0H96-ZR1D)
垢版 |
2022/12/18(日) 21:31:13.42ID:WS1FCRK3H
>>408
それってあなたの思い込みですよね
410デフォルトの名無しさん (JP 0H96-ZR1D)
垢版 |
2022/12/18(日) 21:32:30.15ID:WS1FCRK3H
バカっていう方も悪いけど、それに対して韓国人呼ばわりはさすがにひどすぎると思う
いくら何でも言いすぎだろ
2022/12/18(日) 21:51:13.95ID:ciqdCn4z0
>>407
動かしてないからタイポとかあるかも

Dim FS As Object
Set FS = CreateObject("Scripting.FileSystemObject")
Dim Newest As Object
Set Newest = Nothing
Dim File As Object
For Each File In FS.GetFolder("特定のフォルダ").Files
If Newest Is Nothing Then
Set Newest = File
ElseIf Newest.DateLastModified < File.DateLastModified Then
Set Newest = File
End If
Next
Dim S As Object
Set S = Newest.OpenAsTextStream(1, -2)
With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
.SetText S.ReadAll
.PutInClipboard
End With
S.Close

Bug: ファイルが存在しない時はエラーになります
Bug: 一番新しいファイルが複数あるとどれが開かれるかはわからない
2022/12/19(月) 01:57:07.11ID:6OeO29Qx0
お前らすぐバカバカって言うけど、人を見下せるほど大した人間なのか?
2022/12/19(月) 02:08:16.14ID:m5eY3pz4M
スキルと人間性は別なんだなあ
優秀な人間の性格がひどいとか割とよくある話
競争社会では他人を蹴落とさないと上に行けないし
2022/12/19(月) 08:20:47.46ID:RL7A/3g/M
>>413
人間性が最低ってことやね
スキルがあっても敬遠したいな
2022/12/19(月) 08:58:43.85ID:UIs1Ip/rr
人間性よかったらこんなとこいないで普通の生活で満ち足りるやろしな
416デフォルトの名無しさん (スッップ Sd8a-g3+u)
垢版 |
2022/12/19(月) 13:01:38.97ID:mXgw/9zbd
他人に馬鹿と指摘するのは事実だから仕方ない
本当のことを指摘されて何が問題なのか
己が馬鹿と指摘されると怒るのは本物の馬鹿
2022/12/19(月) 13:15:44.25ID:eiDZy5960
まさに馬鹿の理屈
2022/12/19(月) 15:06:14.17ID:6OeO29Qx0
本当の事だから言っているだけ
はいはい、そういう理屈ね?
もし逆の立場だったら不快な気分にならないのかな??
419デフォルトの名無しさん (スッップ Sd8a-g3+u)
垢版 |
2022/12/19(月) 16:42:50.56ID:mXgw/9zbd
ならないよ?俺は馬鹿だもの
2022/12/19(月) 16:51:32.03ID:6OeO29Qx0
~終了~
421デフォルトの名無しさん (ワッチョイ 1f5f-JDfe)
垢版 |
2022/12/19(月) 16:56:24.98ID:4PT5wSnn0
いまさらなんだが・・・

もしかして、件数がそれなりにあるエクセル処理の場合、VBAでDictionary処理できるやつは、いちどDictionaryにデータ格納してから処理したほうが圧倒的に速い?
2022/12/19(月) 17:25:10.73ID:1gqjjPgXa
何をやるかによるだろう
前から順に処理するだけならDictionaryへの格納は余計なオーバーヘッドでしかなく、確実に遅くなる
423デフォルトの名無しさん (ワッチョイ 7eda-pE1b)
垢版 |
2022/12/19(月) 18:11:27.44ID:Q9Z7wkA40
質問投げて回答待つほうが圧倒的に遅い
2022/12/19(月) 18:16:20.09ID:b6fxVMaNM
回答が付くまでの間は別の作業をしてるんだよ
トータルの作業時間は丸投げのが短い
2022/12/19(月) 18:36:14.21ID:7Pox60+BM
>>424
俺たちは箱の中の小人さんかよ
2022/12/19(月) 18:50:28.09ID:Q9Z7wkA40
>>424
それなら処理が遅くても別の作業してればいい
2022/12/19(月) 22:06:24.01ID:Dg3+0nUYa
処理遅かったらマクロの意味ないじゃん
2022/12/19(月) 23:02:14.70ID:U+dm2FUka
俺はdictionaryが好きでよく使うなあ
「ソートキーを格納したdictionaryを受け取って任意のシートをソートするコード」とか、「キーワードを格納したdictionaryを受け取って任意の配列からそのワード以外の要素を取り除くコード」とか、そういう汎用モジュールを作りまくってる
「その引数、配列でよくね?」って自分でも思うのだけれど、なんとなくdictionaryにしちゃう
2022/12/20(火) 00:27:32.59ID:12sT8XrZ0
>>428
それって文字列をオブジェクトに変換するとかできるの?
2022/12/20(火) 03:27:40.96ID:TyME3A0jM
ソートならキーの順番は大事だろ
もしかして
1:いち、2:にい、3:さん
みたいなヤバイことしてるの?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況