!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑2行に減ってるけど、同じ内容を3行に増やして貼り付けること
ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
Excel VBA 質問スレ Part75
https://mevius.5ch.net/test/read.cgi/tech/1644384272/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part76
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ブーイモ MMff-XZ6m)
2022/05/01(日) 02:23:41.78ID:2t63WK/jM182デフォルトの名無しさん (ワッチョイ 93ac-OVn5)
2022/05/23(月) 17:51:32.07ID:KArKRscP0 何の表示だよ
183デフォルトの名無しさん (アウアウクー MMfb-RA6z)
2022/05/23(月) 17:58:05.38ID:KrqlZBhkM セルに挿入です
for文を挟んでいるとどうもすべて止まって一括表示されてしまいます
for文を挟んでいるとどうもすべて止まって一括表示されてしまいます
184デフォルトの名無しさん (エアペラ SDbf-Rbs1)
2022/05/23(月) 18:38:04.00ID:nw7KfNpjD ループ内で都度再表示させればいいんじゃねーの
185デフォルトの名無しさん (ワッチョイ da59-Z+Po)
2022/05/23(月) 18:45:16.94ID:S7FOVsdv0 excelのシートのA列に◎オプションボタンActiveXを付けた、B列には商品名(3000件くらいある)を入れた。
◎ りんご
◎ みかん
◎ ぶどう
◎ ばなな
ぶどうを選んだら、TRUEになった番号は「3番」って返ってきているのですが、3000件を設定するのが大変で一括で設定できる方法があれば何かヒントを教えてください。
◎ りんご
◎ みかん
◎ ぶどう
◎ ばなな
ぶどうを選んだら、TRUEになった番号は「3番」って返ってきているのですが、3000件を設定するのが大変で一括で設定できる方法があれば何かヒントを教えてください。
186デフォルトの名無しさん (ワッチョイ 9768-A7oz)
2022/05/23(月) 20:02:47.45ID:BtAHO3WV0 >>181
なんのためのラグかを書けばもう少しマシなやり方を教えてくれるかも
なんのためのラグかを書けばもう少しマシなやり方を教えてくれるかも
187デフォルトの名無しさん (ワッチョイ 7fce-eugl)
2022/05/23(月) 20:48:26.86ID:e/WRg45j0 >>183
DoEvents
DoEvents
188デフォルトの名無しさん (ワッチョイ 9768-A7oz)
2022/05/23(月) 20:58:57.01ID:BtAHO3WV0 Sub foo()
Range("a1:z100").Formula = "=rand()"
End Sub
こういうのを徐々に表示したいってなら、無理だ
Range("a1:z100").Formula = "=rand()"
End Sub
こういうのを徐々に表示したいってなら、無理だ
189デフォルトの名無しさん (ワッチョイ 8b01-dx0l)
2022/05/23(月) 21:43:20.23ID:2/Utrmz50 Do Eventsってイマイチちゃんと意味を理解しない状態で使ってる気がする
なんか図形でアニメみたいな動きさせるとか
入れると安定したり
なんか図形でアニメみたいな動きさせるとか
入れると安定したり
190デフォルトの名無しさん (ワッチョイ 7fce-eugl)
2022/05/23(月) 23:30:03.20ID:e/WRg45j0 >>189
WindowsというOSの(ほぼ)すべてがイベントで動いてる
キー入力も画面表示もディスクアクセスも、何をするにもイベントが必ず使われる
普通に使ってるだけで、ユーザーの関知してないところで毎秒数十万回以上のイベントが発生してて、その一部は溜めたり無視することもできる
そこで溜まったイベントをまとめて処理するのがDoEvents
WindowsというOSの(ほぼ)すべてがイベントで動いてる
キー入力も画面表示もディスクアクセスも、何をするにもイベントが必ず使われる
普通に使ってるだけで、ユーザーの関知してないところで毎秒数十万回以上のイベントが発生してて、その一部は溜めたり無視することもできる
そこで溜まったイベントをまとめて処理するのがDoEvents
191デフォルトの名無しさん (ワッチョイ 9a02-5LfH)
2022/05/23(月) 23:44:03.30ID:lhQpV8J50 肥溜めの水で流すボタンだな
192デフォルトの名無しさん (スップ Sdba-LYQt)
2022/05/23(月) 23:54:22.46ID:hvqO78Q3d193デフォルトの名無しさん (ワッチョイ abda-ZFfB)
2022/05/24(火) 00:04:30.71ID:voOeNnQV0 そうか?
194デフォルトの名無しさん (ワッチョイ da59-Z+Po)
2022/05/24(火) 01:52:28.78ID:KUFh4POM0 ググって読んでもさっぱりわからんがプロシージャの共通化(´・ω・`)これかも。
195デフォルトの名無しさん (ワントンキン MM8a-oOyK)
2022/05/24(火) 02:50:59.45ID:iiO+sB1VM196デフォルトの名無しさん (ワッチョイ 372f-tVBN)
2022/05/24(火) 06:09:04.44ID:VAh5gH+20 >>195
話せ。
話せ。
197デフォルトの名無しさん (ワッチョイ 0eda-yjPv)
2022/05/24(火) 06:13:25.21ID:3Lu4tPby0 タスク
198デフォルトの名無しさん (ワッチョイ abda-ZFfB)
2022/05/24(火) 13:00:25.03ID:voOeNnQV0 60歳70歳の古参プログラマーじゃないんだからさ
199デフォルトの名無しさん (ワッチョイ 63da-u/kF)
2022/05/24(火) 21:38:10.53ID:ylp1zOdx0 Loop中など他からの割り込みの余地入れる=DoEventsかと思ってました
厳密な意味は知らずに使ってました
厳密な意味は知らずに使ってました
200デフォルトの名無しさん (スッップ Sdba-WhUL)
2022/05/24(火) 22:07:09.92ID:kwRZndg1d 昔はWindowsのイベントループそのものだったけど、今は>>199くらいの認識の方が正しいよ
今のExcelは裏でスレッド使いまくってるから複雑
今のExcelは裏でスレッド使いまくってるから複雑
201デフォルトの名無しさん (ワッチョイ 8b01-dx0l)
2022/05/24(火) 22:24:18.97ID:L7ubAEHL0 少しまだ難しいですが、とりあえずはwindowsの処理で無視していた分を一旦返してあげるみたいな処理なのだと認識しました。
202デフォルトの名無しさん (ワッチョイ 9768-A7oz)
2022/05/24(火) 22:30:40.02ID:1UrgJSe10 昔はシングルコアで激重だったから適度に返さないとすぐに応答なしになった
今はマルチタスクで割と重い処理も平気
今はマルチタスクで割と重い処理も平気
203デフォルトの名無しさん (ワッチョイ 33b1-4kT2)
2022/05/25(水) 05:02:47.05ID:1b7KkSYk0 個人用マクロブックのプロシージャからシートに挿入されているマクロのボタンを押す方法を教えて下さい
204デフォルトの名無しさん (ワッチョイ 33da-PZpu)
2022/05/25(水) 06:07:16.42ID:BON/kfv30 privateを削除するんじゃなくて?
物理的にクリック?
物理的にクリック?
205デフォルトの名無しさん (ワッチョイ 33b1-4kT2)
2022/05/25(水) 06:43:21.13ID:1b7KkSYk0 物理的にではなくシート側のボタンのクリックイベントのプロシージャを個人用マクロブックのプロシージャから動かしたいです。
206デフォルトの名無しさん (ワッチョイ 33b1-4kT2)
2022/05/25(水) 06:45:16.14ID:1b7KkSYk0 application.runは駄目でした
207デフォルトの名無しさん (ワッチョイ 0eda-yjPv)
2022/05/25(水) 06:47:11.61ID:Vyx13HCI0 イベントとか言うから初心者が勘違いする
208デフォルトの名無しさん (オッペケ Srbb-OVn5)
2022/05/25(水) 07:53:58.12ID:SJVW4y9pr プロシージャの中身を外出ししようとか考えたのか?
209デフォルトの名無しさん (ワッチョイ 7fce-eugl)
2022/05/25(水) 08:31:27.12ID:2Cw1QSym0 >>203
Call
Call
210デフォルトの名無しさん (スフッ Sdba-ry9z)
2022/05/25(水) 09:47:51.39ID:rgUSKbgWd いやここはレイズだ
211デフォルトの名無しさん (ワッチョイ 97a5-dx0l)
2022/05/25(水) 18:45:23.11ID:cRKMftFU0 >>206
呼び出し先のブック名は入れてるのかもしれないけどモジュールが複数あってモジュール名は入れてない、とか?
呼び出し先のブック名は入れてるのかもしれないけどモジュールが複数あってモジュール名は入れてない、とか?
212デフォルトの名無しさん (ワッチョイ 3336-4kT2)
2022/05/25(水) 19:54:25.66ID:ZQqE1PHN0 説明が少なくて申し訳ありません。
マクロボタンのついた会社の帳票のマクロボタンを押して処理をした上に自分の個人用マクロブックの処理がしたいです。私は会社の帳票のマクロを変更する技術も権限もないのでこのような形を取っています
マクロボタンのついた会社の帳票のマクロボタンを押して処理をした上に自分の個人用マクロブックの処理がしたいです。私は会社の帳票のマクロを変更する技術も権限もないのでこのような形を取っています
213デフォルトの名無しさん (アウアウウー Sac7-yjPv)
2022/05/25(水) 20:09:39.86ID:ySKajOtFa やっちゃいけないことじゃねーの
214デフォルトの名無しさん (スフッ Sdba-ry9z)
2022/05/25(水) 20:44:02.25ID:rgUSKbgWd 会社のマクロにパスワードが掛かってる、かつ起点となるマクロはその会社の方のマクロって事かな?
1. 会社のExcelと個人で用意したxlsm(個人用ブックである必要無し)を準備する
2. vbs やps1の外部ファイルから会社のVBA実行→個人で用意したxlsm内のVBA実行
これで行けるんでねえの?
1. 会社のExcelと個人で用意したxlsm(個人用ブックである必要無し)を準備する
2. vbs やps1の外部ファイルから会社のVBA実行→個人で用意したxlsm内のVBA実行
これで行けるんでねえの?
215デフォルトの名無しさん (ワッチョイ b717-dx0l)
2022/05/25(水) 20:52:50.14ID:D9uW2fk+0 変更する技術がないなら触らない方が良いと思うよ
216デフォルトの名無しさん (ワッチョイ 1a42-QU/V)
2022/05/25(水) 21:08:25.40ID:UbZSbjiw0 そもそも権限のないものを突破しようってのは倫理的にどうなのって気がするが
まずは上司なりなんなりに相談するところからじゃね
まずは上司なりなんなりに相談するところからじゃね
217デフォルトの名無しさん (オイコラミネオ MMe3-kv1D)
2022/05/25(水) 21:14:00.59ID:oImj9UUVM ややこことは辞めたほうがいいね
218デフォルトの名無しさん (ワッチョイ 8b01-dx0l)
2022/05/25(水) 22:29:41.62ID:BtdSsAyL0 パスワードかかってるマクロなんて適当な野良アプリでわかるけどな
219デフォルトの名無しさん (ワッチョイ 93ac-OVn5)
2022/05/26(木) 00:34:12.72ID:O+gRo7JH0 会社用のマクロ実行したあと、個人用マクロを実行するだけの作業なのに
あくまでも自分の分からない領域まで手を入れたいってのは分からんな
マクロ壊して分かりづらい変なトラブルになったら責任云々とかになりかねないかもしれんぞ
214のやり方がむりなら諦めるか上長に相談するべきやと思うで
あくまでも自分の分からない領域まで手を入れたいってのは分からんな
マクロ壊して分かりづらい変なトラブルになったら責任云々とかになりかねないかもしれんぞ
214のやり方がむりなら諦めるか上長に相談するべきやと思うで
220デフォルトの名無しさん (ワッチョイ 3336-4kT2)
2022/05/26(木) 06:53:49.33ID:FGzk4ul90 >>219
100個ぐらいあるエクセルファイルを開いて、そのエクセルファイルのマクロボタンを押して一回目の処理をして次に個人用マクロブックに作った処理をしてエクセルファイルを上書き保存して閉じるを繰り返さなくてはいけないのでマクロ化したいのです。エクセルファイル側のプロシージャを個人用マクロブック側に持たせるのが一番簡単かなと
100個ぐらいあるエクセルファイルを開いて、そのエクセルファイルのマクロボタンを押して一回目の処理をして次に個人用マクロブックに作った処理をしてエクセルファイルを上書き保存して閉じるを繰り返さなくてはいけないのでマクロ化したいのです。エクセルファイル側のプロシージャを個人用マクロブック側に持たせるのが一番簡単かなと
221デフォルトの名無しさん (ワッチョイ 9a4f-9R20)
2022/05/26(木) 06:58:26.73ID:5W+gZAxj0 その会社の帳票マクロとやらのファイルを開いてボタン押せるんならSendKeys使えば何とかなるんじゃねーの?(鼻ホジ)
222デフォルトの名無しさん (オッペケ Srbb-OVn5)
2022/05/26(木) 07:56:10.65ID:JEeygHRrr >>220
工夫するのは上長に100個もある無駄なExcelファイルについて改善を提案すべきじゃね
下手なやつの自動化は害にしかならない
それでだめなら自分の責任でこういうやり方していいかとか聞くとかそういう流れにはもうしたんやろ?
外部から呼ぶ214のやり方で無理なら諦めろ
改善して見込める君の給与メリットがそれほどの額じゃないんやろ
これ公務員とかならマジで税金の無駄やなw
工夫するのは上長に100個もある無駄なExcelファイルについて改善を提案すべきじゃね
下手なやつの自動化は害にしかならない
それでだめなら自分の責任でこういうやり方していいかとか聞くとかそういう流れにはもうしたんやろ?
外部から呼ぶ214のやり方で無理なら諦めろ
改善して見込める君の給与メリットがそれほどの額じゃないんやろ
これ公務員とかならマジで税金の無駄やなw
223デフォルトの名無しさん (ワッチョイ 7fce-eugl)
2022/05/26(木) 08:40:43.23ID:MTu1kK/A0 公務員なんて文系の仕事だから、効率のいいデータ整理やプログラミングができるやつなんてほぼいない
しかし理系の人材に役所仕事させるのは税金の浪費以上にもったいない
しかし理系の人材に役所仕事させるのは税金の浪費以上にもったいない
224デフォルトの名無しさん (ワッチョイ 8a3d-Td31)
2022/05/26(木) 14:50:09.50ID:6r93DwI70 >>206
wshでしょっちゅうやってるけど
Set fso = Wscript.CreateObject("Scripting.FileSystemObject")
CurrentDirectory = fso.getParentFolderName(WScript.ScriptFullName)
Set ExApp = Wscript.CreateObject("Excel.Application")
ExApp.Visible = True 'エクセル可視/不可視設定
ExApp.DisplayAlerts = False '警告メッセージをオフ
Set Wb = ExApp.Workbooks.Open(fso.BuildPath(CurrentDirectory,"Book1.xlsm"))
ExApp.Application.Run "Macro1"
wshでしょっちゅうやってるけど
Set fso = Wscript.CreateObject("Scripting.FileSystemObject")
CurrentDirectory = fso.getParentFolderName(WScript.ScriptFullName)
Set ExApp = Wscript.CreateObject("Excel.Application")
ExApp.Visible = True 'エクセル可視/不可視設定
ExApp.DisplayAlerts = False '警告メッセージをオフ
Set Wb = ExApp.Workbooks.Open(fso.BuildPath(CurrentDirectory,"Book1.xlsm"))
ExApp.Application.Run "Macro1"
225デフォルトの名無しさん (アウアウウー Sac7-yjPv)
2022/05/26(木) 15:48:41.66ID:5fQbWZ9ra 上司に黙ってデータ改竄とかしたら
会社の資産を横領できちまうな
会社の資産を横領できちまうな
226デフォルトの名無しさん (ワッチョイ 8b01-8jyA)
2022/05/26(木) 18:34:16.06ID:MJ/jCOeZ0 農協で30年勤めたOLがやりそうなイメージ。
227デフォルトの名無しさん (ワッチョイ 8b01-8jyA)
2022/05/26(木) 18:36:23.42ID:MJ/jCOeZ0 郵便局の場合、昭和のころから歴代の局長が引き継いでそう。
漁協の場合、いくつもの窃盗グループがありそう。
悪いこととは知らなかったって言いそう。
漁協の場合、いくつもの窃盗グループがありそう。
悪いこととは知らなかったって言いそう。
228デフォルトの名無しさん (HK 0Hca-ib4B)
2022/05/26(木) 22:05:05.56ID:KppvSZ/JH 今日いちにち会社で配列に関する記事を読んでましたがここ10年くらいVBAに触れてなかったせいもあり
よく理解できないためお力をお借りしたいです。
20万行くらいある空白の無いデータを処理したいのですが、私の書いたコードではどうしても速く処理できません。
F列が「Distribution (PCW; Sales value」とあったらその右のG列の数字を見に行き、3以下ならその行含め下に2行、合計3行削除したいです。
Sub TEST1()
Application.ScreenUpdating = False
Dim A
'セルの値を配列に格納
A = ActiveSheet.Range("A1").CurrentRegion
'配列をループ
For i = UBound(A, 1) To 2 Step -1
'「If」で検索
If A(i, 6) = "Distribution (PCW; Sales value)" Then
If A(i, 7) <= 3 Then
Cells(i, 1).Resize(3, 1).EntireRow.Delete Shift:=xlUp
End If
End If
Next
End Sub
よく理解できないためお力をお借りしたいです。
20万行くらいある空白の無いデータを処理したいのですが、私の書いたコードではどうしても速く処理できません。
F列が「Distribution (PCW; Sales value」とあったらその右のG列の数字を見に行き、3以下ならその行含め下に2行、合計3行削除したいです。
Sub TEST1()
Application.ScreenUpdating = False
Dim A
'セルの値を配列に格納
A = ActiveSheet.Range("A1").CurrentRegion
'配列をループ
For i = UBound(A, 1) To 2 Step -1
'「If」で検索
If A(i, 6) = "Distribution (PCW; Sales value)" Then
If A(i, 7) <= 3 Then
Cells(i, 1).Resize(3, 1).EntireRow.Delete Shift:=xlUp
End If
End If
Next
End Sub
229デフォルトの名無しさん (HK 0Hca-ib4B)
2022/05/26(木) 22:19:00.22ID:KppvSZ/JH 一応こんな感じのデータです
A列 B列 C列 D列 E列 F列 G列
CTM_ 12Area TM_2022 sku SKU Code Measure TOTAL 4.18- 4.25- 5.2- 5.9-
業態合算 Hokkaido その他 キヨウリツ ゼリ- 4901325124326 Distribution (PCW; Sales value) 8.64 7.03 6.63 9.19 11.70
業態合算 Hokkaido その他 キヨウリツ ゼリ- 4901325124326 Sales Store**** 2,386. 1,830 3,254. 2,244 2,460.5
業態合算 Hokkaido その他 キヨウリツ ゼリ- 4901325124326 Sales Store***** 666 7777 888 4444 7777
A列 B列 C列 D列 E列 F列 G列
CTM_ 12Area TM_2022 sku SKU Code Measure TOTAL 4.18- 4.25- 5.2- 5.9-
業態合算 Hokkaido その他 キヨウリツ ゼリ- 4901325124326 Distribution (PCW; Sales value) 8.64 7.03 6.63 9.19 11.70
業態合算 Hokkaido その他 キヨウリツ ゼリ- 4901325124326 Sales Store**** 2,386. 1,830 3,254. 2,244 2,460.5
業態合算 Hokkaido その他 キヨウリツ ゼリ- 4901325124326 Sales Store***** 666 7777 888 4444 7777
230デフォルトの名無しさん (HK 0Hca-ib4B)
2022/05/26(木) 22:19:48.67ID:KppvSZ/JH やっぱりずれた。。。(>_<)
231デフォルトの名無しさん (ワッチョイ cebb-A4LC)
2022/05/26(木) 22:28:17.29ID:dA4WjGxV0 >>228
Excelの行を1行1行Deleteするのはどうやっても重くなるから出力用の配列を作るのがいいかな
Excelの行を1行1行Deleteするのはどうやっても重くなるから出力用の配列を作るのがいいかな
232デフォルトの名無しさん (スフッ Sdba-ry9z)
2022/05/26(木) 22:30:55.09ID:6l5xx5Q8d 配列を使ってんなら配列の中で削除処理しないとそりゃあ意味無いでしょ
233デフォルトの名無しさん (HK 0Hca-ib4B)
2022/05/26(木) 22:46:06.64ID:KppvSZ/JH234デフォルトの名無しさん (ワッチョイ 768c-aDUG)
2022/05/26(木) 23:00:25.66ID:Wrt5fLCv0 いつもやる方法があるけどどのくらい早いのかはよくわからん
235デフォルトの名無しさん (スフッ Sdba-ry9z)
2022/05/26(木) 23:01:04.69ID:6l5xx5Q8d ユニークなキー列がもしあればディクショナリー使うのが速いよ
まあ難しければ配列でも全然良いけど
まあ難しければ配列でも全然良いけど
236デフォルトの名無しさん (HK 0Hca-ib4B)
2022/05/26(木) 23:26:48.34ID:KppvSZ/JH237デフォルトの名無しさん (ワッチョイ 768c-aDUG)
2022/05/26(木) 23:42:29.81ID:Wrt5fLCv0 >>236
じゃあこんな感じで作ったので10分以上がどのくらい早くなったか遅くなったか教えてください。
Sub TEST1()
Application.ScreenUpdating = False
Dim A
'セルの値を配列に格納
A = ActiveSheet.Range("A1").CurrentRegion
'配列をループ
For i = UBound(A, 1) To 2 Step -1
Debug.Print i
'「If」で検索
If A(i, 6) = "Distribution (PCW; Sales value)" Then
If A(i, 7) <= 3 Then
Cells(i, 6).Resize(3, 1).Interior.Color = RGB(255, 0, 0)
End If
End If
Next
'
ActiveSheet.Range("A1").CurrentRegion.Select
Selection.AutoFilter Field:=6, Criteria1:=RGB(255, 0, 0), Operator:=xlFilterCellColor
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
Selection.SpecialCells(xlCellTypeVisible).Select
Application.ScreenUpdating = True
Selection.Delete 'これはしないで目で確認して手動でDELETEしても良いかも
End Sub
じゃあこんな感じで作ったので10分以上がどのくらい早くなったか遅くなったか教えてください。
Sub TEST1()
Application.ScreenUpdating = False
Dim A
'セルの値を配列に格納
A = ActiveSheet.Range("A1").CurrentRegion
'配列をループ
For i = UBound(A, 1) To 2 Step -1
Debug.Print i
'「If」で検索
If A(i, 6) = "Distribution (PCW; Sales value)" Then
If A(i, 7) <= 3 Then
Cells(i, 6).Resize(3, 1).Interior.Color = RGB(255, 0, 0)
End If
End If
Next
'
ActiveSheet.Range("A1").CurrentRegion.Select
Selection.AutoFilter Field:=6, Criteria1:=RGB(255, 0, 0), Operator:=xlFilterCellColor
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
Selection.SpecialCells(xlCellTypeVisible).Select
Application.ScreenUpdating = True
Selection.Delete 'これはしないで目で確認して手動でDELETEしても良いかも
End Sub
238デフォルトの名無しさん (ワッチョイ bb5f-eugl)
2022/05/26(木) 23:50:53.02ID:HeWhwrio0 >>228
・最初にセルの内容をvariantの2次元配列に格納。
・そのvariantを弄くり倒す。
・ほしい結果になったvariantを最後に書き戻す。
セルはフォントだの背景色だの罫線だの表上のアドレスだのとにかくいろんな情報がてんこ盛りなので、valueみてりゃいい処理ならできるだけ書き換えない。
・最初にセルの内容をvariantの2次元配列に格納。
・そのvariantを弄くり倒す。
・ほしい結果になったvariantを最後に書き戻す。
セルはフォントだの背景色だの罫線だの表上のアドレスだのとにかくいろんな情報がてんこ盛りなので、valueみてりゃいい処理ならできるだけ書き換えない。
239デフォルトの名無しさん (ワッチョイ bb5f-eugl)
2022/05/27(金) 00:18:49.05ID:JbgC4v+W0 あと、蛇足なんだけどソースでやってることそのものをコメントで書いてもあまり意味が…。
'配列をループ
For i = UBound(A, 1) To 2 Step -1
とか
'「If」で検索
If A(i, 6) = "Distribution (PCW; Sales value)" Then
は、いらないのではと。
もひとつ、削除系処理は下からループさせたほうが無難な気がしないでもない。
'配列をループ
For i = UBound(A, 1) To 2 Step -1
とか
'「If」で検索
If A(i, 6) = "Distribution (PCW; Sales value)" Then
は、いらないのではと。
もひとつ、削除系処理は下からループさせたほうが無難な気がしないでもない。
240デフォルトの名無しさん (ワッチョイ bb5f-eugl)
2022/05/27(金) 00:19:25.67ID:JbgC4v+W0 あ。ループは俺の読み間違いだ。ごめんなさない。
241デフォルトの名無しさん (ワッチョイ cebb-A4LC)
2022/05/27(金) 00:22:08.18ID:5SJXPRgg0242デフォルトの名無しさん (ワッチョイ cebb-A4LC)
2022/05/27(金) 00:30:45.85ID:5SJXPRgg0 ちなみに行削除は、DeleteTargetRowみたいなRange型の変数を使って、削除対象の行が出たらその変数にUnionしていってまとめて削除、がまだ速いかな
243デフォルトの名無しさん (ワッチョイ 768c-aDUG)
2022/05/27(金) 01:16:57.81ID:+979Xq8C0 >>237
自分で15万行のデータで試したらDebug.Print i を外しても遅すぎたので作り直し
うちでは5秒でした (Core2Duo E7500 RAM8G win10 Excel2010) 元データのF列に色がないことが条件ですけどね
Sub TEST1()
Dim startTime As Double: startTime = Timer
Application.ScreenUpdating = False
Dim A
A = ActiveSheet.Range("A1").CurrentRegion
For i = UBound(A, 1) To 2 Step -1
If A(i, 6) = "Distribution (PCW; Sales value)" Then
If A(i, 7) <= 3 Then
Cells(i, 6).Resize(3, 1).Interior.Color = RGB(255, 0, 0)
End If
End If
Next
'
Application.ScreenUpdating = True
Dim mySheet As Worksheet: Set mySheet = ActiveSheet
Dim tempSheet As Worksheet: Set tempSheet = Worksheets.Add
Dim myRange As Range: Set myRange = mySheet.Range("A1").CurrentRegion
myRange.AutoFilter Field:=6, Operator:=xlFilterNoFill
myRange.Offset(1, 0).Resize(myRange.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Copy tempSheet.Range("A1")
mySheet.ShowAllData
myRange.Clear
tempSheet.Range("A1").CurrentRegion.Copy mySheet.Range("A1")
Application.DisplayAlerts = False
tempSheet.Delete
Application.DisplayAlerts = True
MsgBox (Timer - startTime & "秒でした")
End Sub
自分で15万行のデータで試したらDebug.Print i を外しても遅すぎたので作り直し
うちでは5秒でした (Core2Duo E7500 RAM8G win10 Excel2010) 元データのF列に色がないことが条件ですけどね
Sub TEST1()
Dim startTime As Double: startTime = Timer
Application.ScreenUpdating = False
Dim A
A = ActiveSheet.Range("A1").CurrentRegion
For i = UBound(A, 1) To 2 Step -1
If A(i, 6) = "Distribution (PCW; Sales value)" Then
If A(i, 7) <= 3 Then
Cells(i, 6).Resize(3, 1).Interior.Color = RGB(255, 0, 0)
End If
End If
Next
'
Application.ScreenUpdating = True
Dim mySheet As Worksheet: Set mySheet = ActiveSheet
Dim tempSheet As Worksheet: Set tempSheet = Worksheets.Add
Dim myRange As Range: Set myRange = mySheet.Range("A1").CurrentRegion
myRange.AutoFilter Field:=6, Operator:=xlFilterNoFill
myRange.Offset(1, 0).Resize(myRange.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Copy tempSheet.Range("A1")
mySheet.ShowAllData
myRange.Clear
tempSheet.Range("A1").CurrentRegion.Copy mySheet.Range("A1")
Application.DisplayAlerts = False
tempSheet.Delete
Application.DisplayAlerts = True
MsgBox (Timer - startTime & "秒でした")
End Sub
244デフォルトの名無しさん (ワッチョイ 768c-aDUG)
2022/05/27(金) 02:06:50.25ID:+979Xq8C0 myRange.Offset(1, 0).Resize(myRange.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Copy tempSheet.Range("A1")
を下に修正
myRange.SpecialCells(xlCellTypeVisible).Copy tempSheet.Range("A1")
を下に修正
myRange.SpecialCells(xlCellTypeVisible).Copy tempSheet.Range("A1")
245デフォルトの名無しさん (スフッ Sdba-ry9z)
2022/05/27(金) 06:53:03.71ID:0WSlRFUXd246デフォルトの名無しさん (ワッチョイ c3a5-ib4B)
2022/05/27(金) 06:53:21.55ID:XEPyrX550247デフォルトの名無しさん (ワッチョイ c3a5-ib4B)
2022/05/27(金) 07:26:42.06ID:XEPyrX550 >>243
えっ!!何が起こったの?
こっちも5秒で終わりましたっっ!!!えええぇ信じられないスゴイスゴイ!!!(笑)
ちょっと後でゆっくりF8で動かしてみようと思います!!!
本当に助かりました!ありがとうございました!!!
(´;ω;`)
えっ!!何が起こったの?
こっちも5秒で終わりましたっっ!!!えええぇ信じられないスゴイスゴイ!!!(笑)
ちょっと後でゆっくりF8で動かしてみようと思います!!!
本当に助かりました!ありがとうございました!!!
(´;ω;`)
248デフォルトの名無しさん (ワッチョイ c3a5-ib4B)
2022/05/27(金) 07:28:44.47ID:XEPyrX550249デフォルトの名無しさん (ワッチョイ c3a5-ib4B)
2022/05/27(金) 08:09:16.73ID:XEPyrX550 >>244のは見出しが消えるのを修正したコードでしたね(;^_^A
あと、会社のPCで動かしてみたら2秒もかかりませんでした。
素晴らしいコード、本当にありがとうございましたm(__)m 配列の勉強したいと思います。
あと、会社のPCで動かしてみたら2秒もかかりませんでした。
素晴らしいコード、本当にありがとうございましたm(__)m 配列の勉強したいと思います。
250デフォルトの名無しさん (スフッ Sdba-ry9z)
2022/05/27(金) 08:25:54.12ID:0WSlRFUXd 質問者の要望事項がクリアだったしサンプルコードや表のイメージを出してくれたから回答がしやすかったと思います
殆どの質問者はそんな事までしないクレクレちゃんだから
殆どの質問者はそんな事までしないクレクレちゃんだから
251デフォルトの名無しさん (ワッチョイ c3a5-ib4B)
2022/05/27(金) 08:34:33.43ID:XEPyrX550252デフォルトの名無しさん (ワッチョイ df49-OVn5)
2022/05/27(金) 10:41:33.58ID:X2EnXYhx0253デフォルトの名無しさん (ワッチョイ 97f6-8jyA)
2022/05/27(金) 11:15:34.63ID:S0cy91Tb0 エクセルで10万行以上とか設計が間違ってる
254デフォルトの名無しさん (ワッチョイ 37da-eugl)
2022/05/27(金) 12:57:26.47ID:fJfHid2B0 定常業務としてはExcelではやらなくなるにしても、
10万行相手に、最初の試行錯誤をExcelでやってみる
というのはよくある話かと。
設計云々はそれが分かってから。
10万行相手に、最初の試行錯誤をExcelでやってみる
というのはよくある話かと。
設計云々はそれが分かってから。
255デフォルトの名無しさん (ワッチョイ df49-OVn5)
2022/05/27(金) 13:09:45.71ID:X2EnXYhx0 ワイの感覚では数百行とかでもExcel脱却したいし、
こんなんSQLと適当なスクリプトですぐ済むやろ
Excelになってるから重くなったりしちゃうだけで
Accessはしらん
みんなExcel万能思想すぎるんだよなあ
こんなんSQLと適当なスクリプトですぐ済むやろ
Excelになってるから重くなったりしちゃうだけで
Accessはしらん
みんなExcel万能思想すぎるんだよなあ
256デフォルトの名無しさん (ワッチョイ a37c-Rbs1)
2022/05/27(金) 13:45:31.62ID:x8n9vcRZ0 職場で与えられた環境でどうにかしようとすると、
結果的にVBAやバッチファイル、PSスクリプトになる気がする
結果的にVBAやバッチファイル、PSスクリプトになる気がする
257デフォルトの名無しさん (ワントンキン MM8a-+hKh)
2022/05/27(金) 14:07:07.28ID:s+hQ4v9CM SQL書けるんだったら
そもそも質問主はこのスレに来とらんことに気付かない、
ただのマウンテンゴリラはウセヤガレ
そもそも質問主はこのスレに来とらんことに気付かない、
ただのマウンテンゴリラはウセヤガレ
258デフォルトの名無しさん (ブーイモ MMb6-WhUL)
2022/05/27(金) 14:16:48.65ID:pbjQK1XdM VBAもできないからこのスレにいるわけで、間違った道に進む前に正してあげるのは良い
259デフォルトの名無しさん (ワッチョイ 33b1-4kT2)
2022/05/27(金) 20:25:14.34ID:e5D1B4Eg0 個人用マクロブックからエクセルのシートのマクロを動かす方法がわかりました。ファィル名をtest.xlsm、シートのボタンに登録してあるマクロをsub test()~end subとして
Application.Run"'test.xlsm'!Sheet1.test"
これで動きました。Run以下をダブルクォーテーション、ファイル名をシングルクォーテーションで囲むのがポイントです。
Application.Run"'test.xlsm'!Sheet1.test"
これで動きました。Run以下をダブルクォーテーション、ファイル名をシングルクォーテーションで囲むのがポイントです。
260デフォルトの名無しさん (ワッチョイ abda-CQbZ)
2022/05/28(土) 02:17:11.31ID:wx0k8mom0 そもそも個人用ってオマ環
261デフォルトの名無しさん (ワッチョイ abda-yO3c)
2022/05/28(土) 03:26:15.21ID:wx0k8mom0 権限のない新入社員が勝手にマクロ作って社内のデータ壊したらどうなるかわかっているのかな?
そのデータほんとに削除していいのですか?
条件ミスって消してはいけないデータ削除してしまったら・・・
やろうと思えばできるけど俺は怖くて自前のマクロなんか動かしたいとは思わんのだがな
そのデータほんとに削除していいのですか?
条件ミスって消してはいけないデータ削除してしまったら・・・
やろうと思えばできるけど俺は怖くて自前のマクロなんか動かしたいとは思わんのだがな
262デフォルトの名無しさん (ワッチョイ 937c-KtHc)
2022/05/28(土) 03:40:33.21ID:Yook3X5e0 >>261
データいじる前にバックアップしないのか?
データいじる前にバックアップしないのか?
263デフォルトの名無しさん (ワッチョイ a1b1-N3kL)
2022/05/28(土) 05:54:52.90ID:2n2fc/gL0 >>261
間違えてデータを削除するプログラムを書いてしまうなんて普通ありえるのだろうか?AIが暴走するといかんからパソコンやスマホを使うのもやめたほうがいいレベルの発言だな
間違えてデータを削除するプログラムを書いてしまうなんて普通ありえるのだろうか?AIが暴走するといかんからパソコンやスマホを使うのもやめたほうがいいレベルの発言だな
264デフォルトの名無しさん (アウアウウー Sac5-AEoY)
2022/05/28(土) 06:07:09.43ID:PBRR2XJta >>261
なんでこんなスレ見てるんだ?
なんでこんなスレ見てるんだ?
265デフォルトの名無しさん (オッペケ Sr8d-A9Gv)
2022/05/28(土) 08:04:53.73ID:oqZ/P1Bcr これをループで100個くらいのブックに処理するらしいから漏れのほうが怖いね、ワイ的には
「自動化したから漏れたんだ」とか言われたら今後やりづらくなる
「自動化したから漏れたんだ」とか言われたら今後やりづらくなる
266デフォルトの名無しさん (ワッチョイ c17c-BpIg)
2022/05/28(土) 09:48:04.57ID:PJ5ZLRH80 他の.xlsxのファイルの中身を、新たにExcelの画面を開かずに、
配列などに読み込む方法はありますか?
読み込みたいファイルのレコード数は毎回違うのですが、
可能なのでしょうか
配列などに読み込む方法はありますか?
読み込みたいファイルのレコード数は毎回違うのですが、
可能なのでしょうか
267デフォルトの名無しさん (スフッ Sdb3-ibZ+)
2022/05/28(土) 09:52:31.71ID:SCHew0ynd マクロ4.0
もしくはアドレス直指定
visible=False だと実際は開いてても見えないように出来たんだっけか?
もしくはアドレス直指定
visible=False だと実際は開いてても見えないように出来たんだっけか?
268デフォルトの名無しさん (ワッチョイ b33d-jM8o)
2022/05/28(土) 11:35:21.85ID:4vP5xCiD0 aに16進数のABを代入するときは
a=&HAB
だけど、
aに2進数の100を代入するときはどう書く?
a=&B100
だとエラーになるんだが・・・・
a=&HAB
だけど、
aに2進数の100を代入するときはどう書く?
a=&B100
だとエラーになるんだが・・・・
269デフォルトの名無しさん (ワッチョイ 2b2c-2OYr)
2022/05/28(土) 11:39:37.94ID:81XaDMLN0270デフォルトの名無しさん (ワッチョイ 4949-A9Gv)
2022/05/28(土) 12:20:10.23ID:XKEF46cS0 そも2進数なんてvbaにあったっけ
271デフォルトの名無しさん (ワッチョイ 0949-YXv9)
2022/05/28(土) 13:12:36.54ID:bNMWJIq90 2進数を表すリテラルはないので、16進数や8進数で代用。
変換できればいいのならワークシート関数にある。
変換できればいいのならワークシート関数にある。
272デフォルトの名無しさん (ワッチョイ 937c-KtHc)
2022/05/28(土) 13:19:54.56ID:Yook3X5e0 >>268
専用の命令はないことも関数のサンプルもググったらすぐ見つかったが他人を辞書代わりにするつもりとかか?
専用の命令はないことも関数のサンプルもググったらすぐ見つかったが他人を辞書代わりにするつもりとかか?
273デフォルトの名無しさん (ワッチョイ 934f-XmKI)
2022/05/28(土) 14:33:33.04ID:K6Jk35Ar0 旧BASICやアセンブラ扱ってた奴なら
少なくとも1バイト、多ければ2バイトまで表現出来る
2の倍数を覚えてるから無問題
少なくとも1バイト、多ければ2バイトまで表現出来る
2の倍数を覚えてるから無問題
274デフォルトの名無しさん (ワッチョイ abda-CQbZ)
2022/05/28(土) 15:36:05.64ID:wx0k8mom0 >>263
初心者が作ったマクロなめんなw
初心者が作ったマクロなめんなw
275デフォルトの名無しさん (ワッチョイ 99da-yO3c)
2022/05/28(土) 16:00:35.49ID:gUD13Ggk0 マーカー付折れ線グラフで、マーカーの色と透明度を変えるマクロがなんかうまく行かなくて、
折れ線の線種や色、透明度は素直に変更出来ても、
マーカーの色がデフォルトに戻ったり、透明度を変更出来なかった。
マクロの記録を取ると何やら不可解なコードになり、
再実行すると余計なコード?でエラーになったり。
日本語サイトではなかなか解決策を見つけられず、
英語サイトを漁ってみたら、だいぶ昔に整理がなされていた。
なんと、なぜか唐突に「前景色」と「背景色」をセットで指定してから
透明度を指定すると上手くいくんだと。
https://www.andypope.info/tips/tip015.htm
他にも、マーカーのスタイルを最後に指定しないと上手くいかない説(Mac版固有?)とか。
https://forum.ozgrid.com/forum/index.php?thread/78831-set-transparency-of-individual-chart-points-mac/
VBAの中で、グラフの線種やマーカー種類、色のプロパティに対して、
マーカーの体系は取って付けたというか、
なんか入り組んでて把握しにくい。
Excelの歴史の中で、これは後付けだったのかしら?
折れ線の線種や色、透明度は素直に変更出来ても、
マーカーの色がデフォルトに戻ったり、透明度を変更出来なかった。
マクロの記録を取ると何やら不可解なコードになり、
再実行すると余計なコード?でエラーになったり。
日本語サイトではなかなか解決策を見つけられず、
英語サイトを漁ってみたら、だいぶ昔に整理がなされていた。
なんと、なぜか唐突に「前景色」と「背景色」をセットで指定してから
透明度を指定すると上手くいくんだと。
https://www.andypope.info/tips/tip015.htm
他にも、マーカーのスタイルを最後に指定しないと上手くいかない説(Mac版固有?)とか。
https://forum.ozgrid.com/forum/index.php?thread/78831-set-transparency-of-individual-chart-points-mac/
VBAの中で、グラフの線種やマーカー種類、色のプロパティに対して、
マーカーの体系は取って付けたというか、
なんか入り組んでて把握しにくい。
Excelの歴史の中で、これは後付けだったのかしら?
276デフォルトの名無しさん (ワッチョイ 49da-pgQP)
2022/05/28(土) 16:15:07.22ID:2QSEcnRR0 >>274
お前がその新入社員とやらに苦しめられた経験があるのは分かったから、このスレから消えろ。
お前がその新入社員とやらに苦しめられた経験があるのは分かったから、このスレから消えろ。
277デフォルトの名無しさん (ワッチョイ a1b1-N3kL)
2022/05/28(土) 17:51:43.48ID:2n2fc/gL0 >>274
初心者が作ったマクロで危険度が高いやつの具体例をあげてみて。今日中に書き込みがなければ、その程度とみなすから
初心者が作ったマクロで危険度が高いやつの具体例をあげてみて。今日中に書き込みがなければ、その程度とみなすから
278デフォルトの名無しさん (ワッチョイ d901-2OYr)
2022/05/28(土) 19:18:12.47ID:6Sv+ENTH0 タコペッティのユーチューブチャンネルより
・週2日出社、週2日在宅の週4日勤務が最高の働き方だと提唱したい
・週休3日制になったら給料を減らされる??そんな考えだからいつまで経っても貧乏なんだよ...
・【朗報】「在宅勤務OK」の求人、コロナ前と比べて7 7倍に上昇!
・【驚愕】リモートワーク求人が13倍に増加w
リモートワークができる人とできない人とでますます格差は広がる...
・【悲報】「会社員に戻りたい!」というフリーランス、全体の3%しかいないw
・【悲報】副業が解禁されても、副業を見つけられずに困窮する会社員が続出...
日頃から副業をやっておくことの重要性を再認識しよう
・【驚愕】5人に1人は本業よりも副業収入の方が多いことが判明w
本業よりも稼げる副業とはなんなのか??
・週2日出社、週2日在宅の週4日勤務が最高の働き方だと提唱したい
・週休3日制になったら給料を減らされる??そんな考えだからいつまで経っても貧乏なんだよ...
・【朗報】「在宅勤務OK」の求人、コロナ前と比べて7 7倍に上昇!
・【驚愕】リモートワーク求人が13倍に増加w
リモートワークができる人とできない人とでますます格差は広がる...
・【悲報】「会社員に戻りたい!」というフリーランス、全体の3%しかいないw
・【悲報】副業が解禁されても、副業を見つけられずに困窮する会社員が続出...
日頃から副業をやっておくことの重要性を再認識しよう
・【驚愕】5人に1人は本業よりも副業収入の方が多いことが判明w
本業よりも稼げる副業とはなんなのか??
279デフォルトの名無しさん (ワッチョイ 518e-95+F)
2022/05/28(土) 20:21:06.97ID:/6Rfh39q0280デフォルトの名無しさん (ワッチョイ 937c-KtHc)
2022/05/28(土) 20:58:43.99ID:Yook3X5e0281デフォルトの名無しさん (ワッチョイ a1b1-N3kL)
2022/05/28(土) 21:54:10.82ID:2n2fc/gL0 初心者の作ったマクロに悩まされたエピソードがいくらでも出てくるかと思いきや単なる作り話かい?なめてたのはお前の方だったな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- トランプ大統領 エヌビディア製AI半導体の中国輸出許可 安全保障重視の方針転換 [蚤の市★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【悲報】高市早苗の擬人化がXで大バズりwwwwwwwwwwww [455031798]
- 高市が早くあの発言を撤回しないと、中国からもっと大きな制裁が飛んでくるぞ [805596214]
- 【動画】ファッションモデルまんこ、裸でランウェイを歩く。これがファッションだと言われて [749674962]
- 【画像】髙市さん「無職のシンママ支援を手厚くするため、世帯年収900万円以上の控除をカットします🙂」 [881878332]
- 早大名誉教授「高市内閣の高支持率はデータ操作か、支持している日本人がアホなのか」👈核心を突いてしまう [868050967]
- こんぺこ!こんぺこ!こんぺこ!🐰🏡
