ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK
次スレは>>980が立てること
無理なら細かく安価指定
関連スレ
Excel VBA 質問スレ Part79(ワッチョイあり)
https://mevius.5ch.net/test/read.cgi/tech/1674875532/
※前スレ
Excel VBA 質問スレ Part79
https://mevius.5ch.net/test/read.cgi/tech/1674874007/
探検
Excel VBA 質問スレ Part80
■ このスレッドは過去ログ倉庫に格納されています
2023/05/31(水) 08:23:38.97ID:4RV1IxmB
184デフォルトの名無しさん
2023/11/01(水) 03:12:36.26ID:H7+Ix2LY 仕様に応じて価格は変わります
価格に応じて仕様も変わります
色々突っ込みどころが多すぎる
価格に応じて仕様も変わります
色々突っ込みどころが多すぎる
185デフォルトの名無しさん
2023/11/01(水) 03:27:01.62ID:Q2iQ3kej バージョンすらまともに書けない馬鹿に何を期待するのか
186デフォルトの名無しさん
2023/11/08(水) 17:47:52.62ID:TYSKNLfT 初歩的な質問ですみません
例えばですがセルA2の型が標準だったとして、標準だった場合は色を付けたいです
どうやってセルが標準かどうか判断すれば良いか教えて頂けませんでしょうか
例えばですがセルA2の型が標準だったとして、標準だった場合は色を付けたいです
どうやってセルが標準かどうか判断すれば良いか教えて頂けませんでしょうか
187デフォルトの名無しさん
2023/11/08(水) 18:14:40.14ID:TYSKNLfT 186です
自己解決しました
自己解決しました
188デフォルトの名無しさん
2023/11/08(水) 19:53:31.21ID:7oppFyNo >>187
どうやったの?
どうやったの?
189デフォルトの名無しさん
2023/11/10(金) 00:50:32.41ID:VwCFMbHh 俺も気になる。
NumberFormatLocalじゃない奇想天外な解決策だったらウケる。
NumberFormatLocalじゃない奇想天外な解決策だったらウケる。
190デフォルトの名無しさん
2023/11/21(火) 22:58:20.04ID:AR1yXI4p If (a = 1) Then
'{
b = 1 ';
'}
Else
'{
b = 2 ';
'}
End If
どう?
'{
b = 1 ';
'}
Else
'{
b = 2 ';
'}
End If
どう?
191デフォルトの名無しさん
2023/11/21(火) 23:58:40.18ID:xeomrwBy それVBAか?
192デフォルトの名無しさん
2023/11/22(水) 00:34:59.56ID:byPvCzkk バレバレだと思ったらバレてなくてワロタ
193デフォルトの名無しさん
2023/11/26(日) 13:42:56.19ID:8a4yzyW0 >>190
どうでもいい
どうでもいい
194デフォルトの名無しさん
2023/11/26(日) 20:04:28.62ID:bZOTy+QC VBEで-キーを押すとExcelが落ちる
何で?
何で?
195デフォルトの名無しさん
2023/11/27(月) 19:55:15.09ID:IFAh3DJf 床に置いたら落ちないんじゃね
196デフォルトの名無しさん
2023/11/27(月) 20:06:45.93ID:y0lY01bz 俺もそう思う
197デフォルトの名無しさん
2023/11/27(月) 20:19:28.03ID:wYp6UIkr なにごとも
低い位置においておけば落ちることはない
低い位置においておけば落ちることはない
198デフォルトの名無しさん
2023/11/29(水) 05:31:22.23ID:0nQJ/yPv Uiautomationでアプリに表示されてる文字を3万行くらい読み取ったら落ちた
エクセルじゃなくてアプリの方が
どういう理屈?
エクセルじゃなくてアプリの方が
どういう理屈?
199デフォルトの名無しさん
2023/11/29(水) 09:05:11.59ID:F9HVG0++ イベントビューアーで何が起きたかぐらいは確かめなさい
再現性あるならタスクマネージャーのパフォーマンスでメモリなのかCPUなのか
とかも アプリの表示文字3万行だけで、アバウト過ぎる
再現性あるならタスクマネージャーのパフォーマンスでメモリなのかCPUなのか
とかも アプリの表示文字3万行だけで、アバウト過ぎる
200デフォルトの名無しさん
2023/11/29(水) 10:10:43.50ID:sD7VzCeS 昔はintの最大が32767 だからそれ越える数を扱うと落ちるソフトがよくあったな
201デフォルトの名無しさん
2023/11/30(木) 09:29:06.87ID:vgaDfHiB 変数の値がマイナスとか変な数字になるだけじゃないの?
その程度のことで落ちるの?
その程度のことで落ちるの?
202デフォルトの名無しさん
2023/11/30(木) 10:14:04.34ID:uCTIv0ls マイナスの場所がアクセスできなかったり
永遠にloopの終了条件に達しないとか
結果が大きくなりすぎてメモリ不足とかなる
永遠にloopの終了条件に達しないとか
結果が大きくなりすぎてメモリ不足とかなる
203デフォルトの名無しさん
2023/11/30(木) 12:17:27.34ID:3oFcABR+ 古いexcelも最下行が少なかった
204デフォルトの名無しさん
2023/12/01(金) 02:42:24.09ID:xLT/7JKF このスレも落ちる
205デフォルトの名無しさん
2023/12/01(金) 16:31:31.03ID:7wVpTT+J 落ちないで
206デフォルトの名無しさん
2023/12/01(金) 17:06:11.81ID:fwRU51B8 ハゲないで
207デフォルトの名無しさん
2023/12/02(土) 09:27:15.99ID:gVhM2KTB 戦えよ
208デフォルトの名無しさん
2023/12/02(土) 09:57:19.84ID:vycJbAdX Excel VBAって長時間経過すると一定間隔で一時的にCPU割り当てが止まったりする仕様ですか?
プログレスバーもどきやマクロ経過時間を10秒毎に表示させているんですが、毎回2万件を超えたあたりから一時的に処理が停止しているみたいなんですが。
プログレスバーもどきやマクロ経過時間を10秒毎に表示させているんですが、毎回2万件を超えたあたりから一時的に処理が停止しているみたいなんですが。
209デフォルトの名無しさん
2023/12/02(土) 09:58:41.46ID:vycJbAdX 訂正。10秒毎にではなく10件処理する毎にです。
210デフォルトの名無しさん
2023/12/02(土) 10:01:01.61ID:OwcK4uEB セルコピーの繰返しで条件付書式設定が多大になってるとか
211デフォルトの名無しさん
2023/12/02(土) 10:11:47.98ID:0tC7Yjqi excelで一万件以上のデータを扱わないで下さい
212デフォルトの名無しさん
2023/12/02(土) 10:11:58.70ID:vycJbAdX 変数の価をセルへ記入する処理は繰り返し行っていますが条件付書式は設定していないしセルからセルへのコピー処理はしていません。
処理開始から20000件あたりまではスルスルと進んで行って20000件を超えたあたりから休み休みになるのが謎です。
ソース的には同じことを繰り返しているだけなんですけどね。
セルへ記入されていく行数は増えていくのでそのあたりが原因なんでしょうか。
処理開始から20000件あたりまではスルスルと進んで行って20000件を超えたあたりから休み休みになるのが謎です。
ソース的には同じことを繰り返しているだけなんですけどね。
セルへ記入されていく行数は増えていくのでそのあたりが原因なんでしょうか。
213デフォルトの名無しさん
2023/12/02(土) 10:29:12.94ID:gVhM2KTB pcの性能じゃね
毎回起きるなら条件を変えてテストし発生条件をはっきりさせる
毎回起きるなら条件を変えてテストし発生条件をはっきりさせる
214デフォルトの名無しさん
2023/12/02(土) 10:55:39.59ID:5w2fWXOw 計算式が2万行あるとか
215デフォルトの名無しさん
2023/12/02(土) 10:58:44.05ID:5w2fWXOw 実行前に以下弄って画面更新を抑制してる?
Application.ScreenUpdating
Application.Calculation
Application.ScreenUpdating
Application.Calculation
216デフォルトの名無しさん
2023/12/02(土) 11:01:53.10ID:vycJbAdX いえ、単なる文字列を上から下に向かってひたすら記入していくだけです。
記入する文字列を決めるためにVlookup関数の結果をフィルターして抽出された1行を文字列としてセルに記入してますが、Vlookup関数の数は固定で増えるわけでは無いのでCPU負荷も一定なんじゃないかと思います。
記入する文字列を決めるためにVlookup関数の結果をフィルターして抽出された1行を文字列としてセルに記入してますが、Vlookup関数の数は固定で増えるわけでは無いのでCPU負荷も一定なんじゃないかと思います。
217デフォルトの名無しさん
2023/12/02(土) 11:02:50.91ID:vycJbAdX >>215
Vlookup関数の結果を利用するのでそれはできないです。
Vlookup関数の結果を利用するのでそれはできないです。
218デフォルトの名無しさん
2023/12/02(土) 11:03:58.36ID:vycJbAdX あ、すみません
Application.ScreenUpdating
は抑止したり解除したりを繰り返してました。
Application.ScreenUpdating
は抑止したり解除したりを繰り返してました。
219デフォルトの名無しさん
2023/12/02(土) 12:25:52.64ID:dC73Xol+ 原因追及したいのなら
出力データを増やさずに同じ行に書き出すとか
出力データを増やさずに同じ行に書き出すとか
220デフォルトの名無しさん
2023/12/02(土) 13:23:33.03ID:gVhM2KTB そのうち前の担当が作ったとか言い出すんじゃね
221デフォルトの名無しさん
2023/12/02(土) 17:03:47.70ID:H7HADDQf Windowsの仕様として、重たい処理をさせてるときは中の人が勝手に一休みするようにできている
アプデがいくつもある時など、進捗の%が進んだり止まったりなのを目にしたこともあるだろう
エロ動画を何本もDLしてる時に同サイズなのにすぐ落ちるのといつまでも落ちないのがあるように
基本的にExcelは同じディレクトリにテンポラリーファイルを自動的に作る(Excelに限らないが
そのファイルと相互に連携して「戻る」だの「処理を取り消す」だの「保存しない」だのを可能にしている
システムファイルなので敢えて表示する指定をしないと通常は目に見えない
処理は目の前のファイルだけで無くそのシステムファイルにも反映されている
いっぺんに大量の仕事をさせると「さすがに休ませろよ」と両方のファイルがブー垂れる←チンタラし出す
for−nextとかLoopの中にDoEventを盛り込むと、多少は改善されるかも知れないしされないかも知れない
https://www.tipsfound.com/vba/05doevents-vba
https://qiita.com/nekohei/items/3fb066e267866bcae96c
正直なハナシ、おれには何が何だかさっぱり理解できないが呪文みたいなものなんだろう(違う
アプデがいくつもある時など、進捗の%が進んだり止まったりなのを目にしたこともあるだろう
エロ動画を何本もDLしてる時に同サイズなのにすぐ落ちるのといつまでも落ちないのがあるように
基本的にExcelは同じディレクトリにテンポラリーファイルを自動的に作る(Excelに限らないが
そのファイルと相互に連携して「戻る」だの「処理を取り消す」だの「保存しない」だのを可能にしている
システムファイルなので敢えて表示する指定をしないと通常は目に見えない
処理は目の前のファイルだけで無くそのシステムファイルにも反映されている
いっぺんに大量の仕事をさせると「さすがに休ませろよ」と両方のファイルがブー垂れる←チンタラし出す
for−nextとかLoopの中にDoEventを盛り込むと、多少は改善されるかも知れないしされないかも知れない
https://www.tipsfound.com/vba/05doevents-vba
https://qiita.com/nekohei/items/3fb066e267866bcae96c
正直なハナシ、おれには何が何だかさっぱり理解できないが呪文みたいなものなんだろう(違う
222デフォルトの名無しさん
2023/12/02(土) 17:12:50.25ID:hwp9WWnB デフォルト10分に一回の自動回復用データの保存か
223デフォルトの名無しさん
2023/12/02(土) 19:21:37.99ID:FUL/sgR0 >>221
馬鹿の妄想
馬鹿の妄想
224デフォルトの名無しさん
2023/12/02(土) 19:43:05.04ID:UnnytQXE >>221
バカの長文ってホント的を得てるな
応答なしってのは文字通りマウス操作やキー操作に応答がない状態で、
なぜそれが起きるかは操作に応答する余裕もないくらい全集中して処理してるから
リンク先に書いてあるのは定期的にマウスだのキーボードだの気にしろよって指示
ID:vycJbAdXが書いてることとは根本的に違う事象
バカの長文ってホント的を得てるな
応答なしってのは文字通りマウス操作やキー操作に応答がない状態で、
なぜそれが起きるかは操作に応答する余裕もないくらい全集中して処理してるから
リンク先に書いてあるのは定期的にマウスだのキーボードだの気にしろよって指示
ID:vycJbAdXが書いてることとは根本的に違う事象
225デフォルトの名無しさん
2023/12/02(土) 21:20:16.63ID:gVhM2KTB 内容を理解しないで ○○すると速くなるとか、エラーを出なくするとかを検索で見つけたのを
鵜呑みにして呪文のように至る所に無意味なコードを貼るタイプかな
鵜呑みにして呪文のように至る所に無意味なコードを貼るタイプかな
226デフォルトの名無しさん
2023/12/02(土) 22:41:07.55ID:H7HADDQf 「詳細設定」−「ハードウェア グラフィック アクセラレータを無効にする」にチェックしOK
使っていないアドインがあったらチェックを外す
可能性が高いのが、GPUがレッドゾーン タスクマネージャーのパフォーマンスでCPU・メモリ・ディスク
辺りはまったりと余裕ぶっこいてるのに、GPUがパンパン状態 これは増設できないマシンなら
どうしようもない 一行目の処理の前後でこれを比較してみて変わったら原因はそこ
フリーズする訳でも無くちゃんと完走するなら「こういうもんだ」で済ますのも大人の対応
高性能ギンギン!のマシンとCeleronマシンでも現象一緒とかなら尚更コチラ側では対処のしようも無い
使っていないアドインがあったらチェックを外す
可能性が高いのが、GPUがレッドゾーン タスクマネージャーのパフォーマンスでCPU・メモリ・ディスク
辺りはまったりと余裕ぶっこいてるのに、GPUがパンパン状態 これは増設できないマシンなら
どうしようもない 一行目の処理の前後でこれを比較してみて変わったら原因はそこ
フリーズする訳でも無くちゃんと完走するなら「こういうもんだ」で済ますのも大人の対応
高性能ギンギン!のマシンとCeleronマシンでも現象一緒とかなら尚更コチラ側では対処のしようも無い
227デフォルトの名無しさん
2023/12/03(日) 01:31:41.80ID:MKV2NgOh >Windowsの仕様として、重たい処理をさせてるときは中の人が勝手に一休みするようにできている
そもそもこれが嘘
そんな仕様ねーよ
そもそもこれが嘘
そんな仕様ねーよ
228デフォルトの名無しさん
2023/12/03(日) 06:53:42.28ID:xZHPSaOR229デフォルトの名無しさん
2023/12/03(日) 06:55:03.43ID:xZHPSaOR >>227
アイドリング中はデータの先読みをしているから、彼は勘違いして反対のことを言ってしまっているんだろうな。
アイドリング中はデータの先読みをしているから、彼は勘違いして反対のことを言ってしまっているんだろうな。
230デフォルトの名無しさん
2023/12/03(日) 09:55:11.40ID:5HcnYZkn 重たい処理で休むってCPU温度が上がったせいで速度落とすあれのことかと
231デフォルトの名無しさん
2023/12/03(日) 11:08:35.63ID:QTewqrs7 >>221
これはひどい
これはひどい
232デフォルトの名無しさん
2023/12/03(日) 11:10:09.56ID:QTewqrs7 >>225
script kiddie
script kiddie
233デフォルトの名無しさん
2023/12/04(月) 15:12:23.07ID:Nbpgvbo/ for each で処理するときにI列は処理を飛ばしたかったので
for each rng in range
if rng.column = 9 then
goto skip
処理内容
という風にしたところすべての処理がスキップされてしまったので
以下のようにしたらうまくいきました。解決したんでよかったんですが
どういった理由で結果が違うのでしょうか?
if rng.column <> 9 then
処理内容
for each rng in range
if rng.column = 9 then
goto skip
処理内容
という風にしたところすべての処理がスキップされてしまったので
以下のようにしたらうまくいきました。解決したんでよかったんですが
どういった理由で結果が違うのでしょうか?
if rng.column <> 9 then
処理内容
234デフォルトの名無しさん
2023/12/04(月) 15:18:26.28ID:+hRuE00u skip,endif,next の位置関係を省略すんな
235デフォルトの名無しさん
2023/12/04(月) 16:25:34.26ID:xc8M7hCZ まーたどっかから質問パクって来た?
https://oshiete.goo.ne.jp/qa/12821811.html
若干改変してるか RangeとCellsについて、小一時間問い詰められてみるのもいいかも
https://sugoikaizen.com/excelvba/2_80/
ここでこうだよって書かれても身に付かないだろうし(おれもだし
https://oshiete.goo.ne.jp/qa/12821811.html
若干改変してるか RangeとCellsについて、小一時間問い詰められてみるのもいいかも
https://sugoikaizen.com/excelvba/2_80/
ここでこうだよって書かれても身に付かないだろうし(おれもだし
236デフォルトの名無しさん
2023/12/04(月) 16:43:57.28ID:Nbpgvbo/ 質問パクったわけではないですが確かに似てますね
省略しないと以下になります
処理の内容は同じです
■うまくいく方
For Each rng In Range(Cells(3, 7), Cells(m, n))
If rng.Column <> 9 Then
If rng.Value = "-" Then
dataEx.Cells(j, i) = ThisWorkbook.Sheets(dataEx.Cells(1, i).Value).Cells(rng.Row, 3).Value
dataEx.Cells(j, i + 1) = ThisWorkbook.Sheets(dataEx.Cells(1, i).Value).Cells(2, rng.Column).Value
j = j + 1
End If
End If
-----------------------------------------------------------------
■すべてスキップされてしまう方
For Each rng In Range(Cells(3, 7), Cells(m, n))
If rng.Column = 9 Then
GoTo skipCol
If rng.Value = "-" Then
dataEx.Cells(j, i) = ThisWorkbook.Sheets(dataEx.Cells(1, i).Value).Cells(rng.Row, 3).Value
dataEx.Cells(j, i + 1) = ThisWorkbook.Sheets(dataEx.Cells(1, i).Value).Cells(2, rng.Column).Value
j = j + 1
End If
skipCol:
End If
省略しないと以下になります
処理の内容は同じです
■うまくいく方
For Each rng In Range(Cells(3, 7), Cells(m, n))
If rng.Column <> 9 Then
If rng.Value = "-" Then
dataEx.Cells(j, i) = ThisWorkbook.Sheets(dataEx.Cells(1, i).Value).Cells(rng.Row, 3).Value
dataEx.Cells(j, i + 1) = ThisWorkbook.Sheets(dataEx.Cells(1, i).Value).Cells(2, rng.Column).Value
j = j + 1
End If
End If
-----------------------------------------------------------------
■すべてスキップされてしまう方
For Each rng In Range(Cells(3, 7), Cells(m, n))
If rng.Column = 9 Then
GoTo skipCol
If rng.Value = "-" Then
dataEx.Cells(j, i) = ThisWorkbook.Sheets(dataEx.Cells(1, i).Value).Cells(rng.Row, 3).Value
dataEx.Cells(j, i + 1) = ThisWorkbook.Sheets(dataEx.Cells(1, i).Value).Cells(2, rng.Column).Value
j = j + 1
End If
skipCol:
End If
237デフォルトの名無しさん
2023/12/04(月) 16:46:57.68ID:Nbpgvbo/ すみません最後両方とも「Next」付け忘れました
238デフォルトの名無しさん
2023/12/04(月) 17:25:36.52ID:IJgpRS5M239デフォルトの名無しさん
2023/12/04(月) 20:44:12.36ID:iY+/6ufA >>236
落ち着いてよく考えてみ
落ち着いてよく考えてみ
240デフォルトの名無しさん
2023/12/04(月) 21:18:11.46ID:1Ww5lLLM ネタだろうな
241デフォルトの名無しさん
2023/12/05(火) 01:23:49.48ID:9BlMohwu よく知らないけど、この= は代入演算子か
j = j + 1
この= は比較演算子か
If rng.Column = 9 Then
こんな= を、2つの意味で使う言語ってあるの?
Ruby では、= は代入演算子で、== は比較演算子だけど
j = j + 1
この= は比較演算子か
If rng.Column = 9 Then
こんな= を、2つの意味で使う言語ってあるの?
Ruby では、= は代入演算子で、== は比較演算子だけど
242デフォルトの名無しさん
2023/12/05(火) 01:30:03.25ID:+1t+2z4I Rubyの話にしたい例のキチガイ
243デフォルトの名無しさん
2023/12/05(火) 06:54:56.45ID:i0GvpvVS244デフォルトの名無しさん
2023/12/05(火) 10:53:58.86ID:3p/65ALc 客観的にこの人はVBAができる人だと思ってもらうのに、VBAエキスパートのスタンダードを取るのは効果あり?
受験料高い上に対して難しくもない資格なんだけど、知らん人から見れば勘違いしてくれるかねぇ
受験料高い上に対して難しくもない資格なんだけど、知らん人から見れば勘違いしてくれるかねぇ
245デフォルトの名無しさん
2023/12/05(火) 11:03:15.47ID:3GhQ7B+D あんなハリボテみたいな資格で勘違いしてくれるような会社に入りたいのか?
246デフォルトの名無しさん
2023/12/05(火) 11:03:58.32ID:0D+v86FO 名刺に書くには恥ずかしくない?
247デフォルトの名無しさん
2023/12/05(火) 11:21:20.84ID:3p/65ALc248デフォルトの名無しさん
2023/12/05(火) 20:07:16.92ID:R0TA+AvY >>236
自分でステップ実行してどのように処理されているか確認してみては。本当に分からないならif文の仕組みを勉強するところから始める必要があるかと。
自分でステップ実行してどのように処理されているか確認してみては。本当に分からないならif文の仕組みを勉強するところから始める必要があるかと。
249デフォルトの名無しさん
2023/12/06(水) 23:52:59.21ID:Y0R/nynM250デフォルトの名無しさん
2023/12/07(木) 01:27:12.14ID:J0zHJsHa >>249
ちゃんとインデントついてるぞ
ちゃんとインデントついてるぞ
251デフォルトの名無しさん
2023/12/10(日) 09:52:24.49ID:b059r/QR フィルターの設定について質問させてください。各年の1月のデータを取得したいのですがうまくいきません。
手動だと、[日付フィルタ]から[期間内の全日付で1月を選んでできます。同じようにしたいのですがどうすればよいでしょうか?
ws.Rows("1:1").AutoFilter
' C列日付のフィルター条件を設定
Dim oldestYear As Integer
oldestYear = 2021 ' 最も古い年を指定
' 1月のデータを含むフィルター条件を設定
Dim filterCriteria As String
filterCriteria = ">=01/01/" & oldestYear & " AND <02/01/" & (oldestYear + 1)
' C列で条件に基づいてフィルタリング
ws.Columns("C:C").AutoFilter Field:=3, Criteria1:=filterCriteria
手動だと、[日付フィルタ]から[期間内の全日付で1月を選んでできます。同じようにしたいのですがどうすればよいでしょうか?
ws.Rows("1:1").AutoFilter
' C列日付のフィルター条件を設定
Dim oldestYear As Integer
oldestYear = 2021 ' 最も古い年を指定
' 1月のデータを含むフィルター条件を設定
Dim filterCriteria As String
filterCriteria = ">=01/01/" & oldestYear & " AND <02/01/" & (oldestYear + 1)
' C列で条件に基づいてフィルタリング
ws.Columns("C:C").AutoFilter Field:=3, Criteria1:=filterCriteria
252デフォルトの名無しさん
2023/12/10(日) 11:43:28.11ID:/HCFQ2uK 手動でうまくいくなら
マクロの記録→手動操作→記録終了
とすればマクロできてないか
マクロの記録→手動操作→記録終了
とすればマクロできてないか
253デフォルトの名無しさん
2023/12/10(日) 22:40:23.08ID:sT365tcs Stringなの?日付は
254デフォルトの名無しさん
2023/12/11(月) 20:35:30.67ID:bj1MKtN8 Integerじゃね?(適当
255デフォルトの名無しさん
2023/12/11(月) 20:37:58.60ID:dC/0oU5n 以外にもDecimal
256デフォルトの名無しさん
2023/12/11(月) 23:17:25.43ID:D21ZDkpy 意外?
257デフォルトの名無しさん
2023/12/12(火) 07:24:28.25ID:oC/8xaVQ >>251
そのフィルター条件の書き方はどこかで紹介されてたもの?
Criteria1に複数条件を入れず、分ける必要があるみたい
ws.Columns("C:C").AutoFilter Field:=3, Criteria1:=">=01/01/" & oldestYear, Operator:=xlAnd, Criteria2:="<02/01/" & (oldestYear + 1)
そのフィルター条件の書き方はどこかで紹介されてたもの?
Criteria1に複数条件を入れず、分ける必要があるみたい
ws.Columns("C:C").AutoFilter Field:=3, Criteria1:=">=01/01/" & oldestYear, Operator:=xlAnd, Criteria2:="<02/01/" & (oldestYear + 1)
258デフォルトの名無しさん
2023/12/12(火) 11:29:55.50ID:TixshqYj ユーザーフォームをワークブックから指定するにはどのようにすればいいですか?
セルだとこんな書き方をしてます
Workbooks(”book1”).Worksheets("Sheet1").Cells(1,1)
そこで
Workbooks(”book1”).UserForm1.Label1
のように書いたらエラーです
検索しても、ブックを指定せず単にUserForm1とだけ書いている事例しか見当たりませんでした
セルだとこんな書き方をしてます
Workbooks(”book1”).Worksheets("Sheet1").Cells(1,1)
そこで
Workbooks(”book1”).UserForm1.Label1
のように書いたらエラーです
検索しても、ブックを指定せず単にUserForm1とだけ書いている事例しか見当たりませんでした
259デフォルトの名無しさん
2023/12/12(火) 18:44:33.33ID:isBhbmiY 「やまぶきいろ」って
ヤマブ黄色かと思ってたら
山吹色だったんですね。
まあそれだと「ヤマブ」というのが意味不明なんだけど。
ヤマブ黄色かと思ってたら
山吹色だったんですね。
まあそれだと「ヤマブ」というのが意味不明なんだけど。
260デフォルトの名無しさん
2023/12/12(火) 18:47:07.92ID:EvQ2Bvwd お馬鹿自慢要らない
261デフォルトの名無しさん
2023/12/12(火) 21:52:49.64ID:FzkyMEiq まあ将来はマクロVBAは廃止されると予想されるからデカイ顔できるのも今のうちだぞ
262デフォルトの名無しさん
2023/12/13(水) 09:34:17.90ID:0IbkX0L9 VBベースじゃないほうがこれからは良いだろうしなあ
263デフォルトの名無しさん
2023/12/13(水) 10:08:54.21ID:fb2rzu10 仮にマクロ無くなってもでかい顔するやつはする
264デフォルトの名無しさん
2023/12/13(水) 10:20:57.24ID:ZzGWLSGP >>258
開いてるファイルからVBAを使って他のファイルのユーザーフォームを操作したい
みたいな要望に読めるけど、こういうことかな?
https://www.chishikinosoukonoseiri.com/entry/2019/06/02/excelvba-designer-another-book-userform-operation
この人も苦労したみたいだけど、結果が正しいのか正統派の記述方式なのかもよくわからん
Designer なんて今まで食べたこと無いし
しかもバージョンが若干古い? IE絡みのオブジェクトっぽいし、IE亡き今、通用するのか
どうかも不明 ま、サイトは今年の春に更新されてるから使えなくなったなら泣き言も
書かれていそうだがそれは無いからだいじょぶか?
行き詰ってるなら試してみる価値はありそう
開いてるファイルからVBAを使って他のファイルのユーザーフォームを操作したい
みたいな要望に読めるけど、こういうことかな?
https://www.chishikinosoukonoseiri.com/entry/2019/06/02/excelvba-designer-another-book-userform-operation
この人も苦労したみたいだけど、結果が正しいのか正統派の記述方式なのかもよくわからん
Designer なんて今まで食べたこと無いし
しかもバージョンが若干古い? IE絡みのオブジェクトっぽいし、IE亡き今、通用するのか
どうかも不明 ま、サイトは今年の春に更新されてるから使えなくなったなら泣き言も
書かれていそうだがそれは無いからだいじょぶか?
行き詰ってるなら試してみる価値はありそう
265デフォルトの名無しさん
2023/12/13(水) 10:52:16.86ID:+QBADPFJ VBA廃止でpowerqueryの時代が来る?
266デフォルトの名無しさん
2023/12/13(水) 11:21:09.91ID:bFxo3E2h >>264 レスありがとうございます
質問の意図はもっと単純で、複数ブックが開いているとき、Book1のマクロでcells(1.1).value=1みたいなコードを実行したとして、
実はBook2がアクティブだとBook1じゃなくてBook2の方が書き換わっちゃう
けど、操作したいセルをワークブック、ワークシートの順で書いとけば特定できる
ならば、複数ブックが開いていて、各ブックに同名のUserForm1があるとどうなるの?
どのブックかの明示は必要?書き方は? ということでした
(これを書いた方が良かったですね)
んで、カキコした後、試しにBook1、Book2にそれぞれ同名のUserForm1を作ってブックが2つ開かれてる状態にしても特に何も起きない
Book2をセル選択状態にして、Book1でUserForm1.ShowとやるとBook1側のユーザーフォームが開く
じゃあ、どのブックかの明示は不要?ほかの問題は起きないの?というのが現在の疑問です
マイクロソフトのリファレンスくらいは見ているのですけど理解できていません・・ 以前、オブジェクト階層樹形図のようなものがあった気がするけど、それも見つけられず・・
https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/userform-object
質問の意図はもっと単純で、複数ブックが開いているとき、Book1のマクロでcells(1.1).value=1みたいなコードを実行したとして、
実はBook2がアクティブだとBook1じゃなくてBook2の方が書き換わっちゃう
けど、操作したいセルをワークブック、ワークシートの順で書いとけば特定できる
ならば、複数ブックが開いていて、各ブックに同名のUserForm1があるとどうなるの?
どのブックかの明示は必要?書き方は? ということでした
(これを書いた方が良かったですね)
んで、カキコした後、試しにBook1、Book2にそれぞれ同名のUserForm1を作ってブックが2つ開かれてる状態にしても特に何も起きない
Book2をセル選択状態にして、Book1でUserForm1.ShowとやるとBook1側のユーザーフォームが開く
じゃあ、どのブックかの明示は不要?ほかの問題は起きないの?というのが現在の疑問です
マイクロソフトのリファレンスくらいは見ているのですけど理解できていません・・ 以前、オブジェクト階層樹形図のようなものがあった気がするけど、それも見つけられず・・
https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/userform-object
267デフォルトの名無しさん
2023/12/13(水) 11:21:15.74ID:hoISaMFl >>265
このハゲ!
このハゲ!
268デフォルトの名無しさん
2023/12/13(水) 11:26:50.73ID:bFxo3E2h269デフォルトの名無しさん
2023/12/13(水) 13:47:39.13ID:b26gKOXL >>266
ブックじゃなくてプロジェクトのメンバー
例えばプロジェクト名がVBAProject1で、UserForm1っていうフォームモジュールがあるとして
dim a as VBAProject1.UserForm1
set a = new VBAProject1.UserForm1
で指定できる
プロジェクト名はメニューのツール→(プロジェクト名)のプロパティとかから設定可能
ブックじゃなくてプロジェクトのメンバー
例えばプロジェクト名がVBAProject1で、UserForm1っていうフォームモジュールがあるとして
dim a as VBAProject1.UserForm1
set a = new VBAProject1.UserForm1
で指定できる
プロジェクト名はメニューのツール→(プロジェクト名)のプロパティとかから設定可能
270デフォルトの名無しさん
2023/12/13(水) 13:51:08.21ID:b26gKOXL こういうのはオブジェクトブラウザから見ると簡単に確認できるよ
今回なら適当なモジュール内で
dim a as UserForm1
と書いてUserForm1を右クリック→オブジェクトブラウザを選択すると
「Private Class UserForm1
VBAProject1 のメンバー」
と下部の説明欄に表示される
今回なら適当なモジュール内で
dim a as UserForm1
と書いてUserForm1を右クリック→オブジェクトブラウザを選択すると
「Private Class UserForm1
VBAProject1 のメンバー」
と下部の説明欄に表示される
271デフォルトの名無しさん
2023/12/13(水) 14:05:40.64ID:ZzGWLSGP >>266
じゃあ、みんな大好きオフィスTANAKAさんのこれで
http://officetanaka.net/excel/vba/tips/tips103.htm
変数に入れとけば他のファイルには影響出ないんじゃないかな、と
>Book2をセル選択状態にして、Book1でUserForm1.ShowとやるとBook1側のユーザー
フォームが開く
これは、Book1で・・の時点で選択状態が移行しちゃってるんじゃないのか?
あと、このページの中ほどで説明してるけど
https://www.kurumico.com/excel-vba-userform-show-2/4065/
>・実は、事前にメモリにロードされていないまま Showメソッドで UserForm を
>表示する場合、自動的にメモリにロードされているんです。
ここがミソか
いくつもファイルを開いて作業することが多いケースなら、Show では無く Load を使えと
最後にちゃんとUnLoadするのも忘れずに
じゃあ、みんな大好きオフィスTANAKAさんのこれで
http://officetanaka.net/excel/vba/tips/tips103.htm
変数に入れとけば他のファイルには影響出ないんじゃないかな、と
>Book2をセル選択状態にして、Book1でUserForm1.ShowとやるとBook1側のユーザー
フォームが開く
これは、Book1で・・の時点で選択状態が移行しちゃってるんじゃないのか?
あと、このページの中ほどで説明してるけど
https://www.kurumico.com/excel-vba-userform-show-2/4065/
>・実は、事前にメモリにロードされていないまま Showメソッドで UserForm を
>表示する場合、自動的にメモリにロードされているんです。
ここがミソか
いくつもファイルを開いて作業することが多いケースなら、Show では無く Load を使えと
最後にちゃんとUnLoadするのも忘れずに
272デフォルトの名無しさん
2023/12/13(水) 15:19:48.92ID:bFxo3E2h 皆さんありがとうございます
>>271
>選択状態が移行しちゃってるんじゃないの
それはないと判断してます、というのは
Book1に下記コードをかいておき、Book2のセルB2とかを選択した状態で、VBエディタの三角ボタンで実行すると、同名のユーザーフォームのうちBook1側が表示されるが、セル(1,1)はBook2側が操作されるからです
Sub 試験用()
UserForm1.Show
Cells(1,1).Value=1
End Sub
>>269
VBAProjectの下にあることは分かりました
オブジェクトブラウザも見ましたし、VBAProject1. と打ち込んで、入力サジェストにUserFormが出てくることも確認しました
で、2つのブックのプロジェクトも同名のVBAProject1にして、先ほどのコードのshowの行を下記に変えて実行しても結果は同じでした
VBAProject1.UserForm1.Show
つまり、指定が無いとシートやセルはその時アクティブなものを操作するけど、ユーザーフォームは(サブプロシージャとかも?)プロジェクト内から選択されるので、別ブックが開いていて、偶然同名のものがあっても問題ない、ということですかね
>>271
>選択状態が移行しちゃってるんじゃないの
それはないと判断してます、というのは
Book1に下記コードをかいておき、Book2のセルB2とかを選択した状態で、VBエディタの三角ボタンで実行すると、同名のユーザーフォームのうちBook1側が表示されるが、セル(1,1)はBook2側が操作されるからです
Sub 試験用()
UserForm1.Show
Cells(1,1).Value=1
End Sub
>>269
VBAProjectの下にあることは分かりました
オブジェクトブラウザも見ましたし、VBAProject1. と打ち込んで、入力サジェストにUserFormが出てくることも確認しました
で、2つのブックのプロジェクトも同名のVBAProject1にして、先ほどのコードのshowの行を下記に変えて実行しても結果は同じでした
VBAProject1.UserForm1.Show
つまり、指定が無いとシートやセルはその時アクティブなものを操作するけど、ユーザーフォームは(サブプロシージャとかも?)プロジェクト内から選択されるので、別ブックが開いていて、偶然同名のものがあっても問題ない、ということですかね
273デフォルトの名無しさん
2023/12/13(水) 15:24:52.44ID:bFxo3E2h >>271
xボタンで閉じても「メモリ上から削除」されるんですよね、もう一度落ち着いて読み返して見ますけど
xボタンで閉じても「メモリ上から削除」されるんですよね、もう一度落ち着いて読み返して見ますけど
274デフォルトの名無しさん
2023/12/13(水) 22:46:03.48ID:b26gKOXL >>272
>>プロジェクト内から選択されるので、別ブックが開いていて、偶然同名のものがあっても問題ない
その通りです。
参照設定やApplication.Runなどで明示的に他プロジェクトのメンバーを呼び出さない限り、
そのプロジェクト内では自らのプロジェクトのメンバーしか呼ばれません。
ちなみに UserForm1 が変数名ではなくクラス名の場合、自動的にインスタンス化されたフォームを参照します。
プロジェクトのメンバーはあくまでクラス(≒型レベル)であり、インスタンス(≒値レベル)ではないという事は注意してください。
また、「指定が無いとシートやセルはその時アクティブなものを操作する」は厳密には、省略されたと判断されたら親オブジェクトを補完しようとすると考えた方がいいです。
例えばそのスコープ内でCellsという名前を定義した場合、 Cells(1,1).Value と書いても省略されたと判断されずにその定義したオブジェクトが参照されます。
定義されていない場合は省略されたと判断され Application.ActiveSheet. が頭に追加されます。
>>プロジェクト内から選択されるので、別ブックが開いていて、偶然同名のものがあっても問題ない
その通りです。
参照設定やApplication.Runなどで明示的に他プロジェクトのメンバーを呼び出さない限り、
そのプロジェクト内では自らのプロジェクトのメンバーしか呼ばれません。
ちなみに UserForm1 が変数名ではなくクラス名の場合、自動的にインスタンス化されたフォームを参照します。
プロジェクトのメンバーはあくまでクラス(≒型レベル)であり、インスタンス(≒値レベル)ではないという事は注意してください。
また、「指定が無いとシートやセルはその時アクティブなものを操作する」は厳密には、省略されたと判断されたら親オブジェクトを補完しようとすると考えた方がいいです。
例えばそのスコープ内でCellsという名前を定義した場合、 Cells(1,1).Value と書いても省略されたと判断されずにその定義したオブジェクトが参照されます。
定義されていない場合は省略されたと判断され Application.ActiveSheet. が頭に追加されます。
275デフォルトの名無しさん
2023/12/14(木) 09:05:18.07ID:3Jt9wkWi >>274
詳しくありがとうございます
疑問だった同名ユーザーフォームの件はまずは解決です
後半の「スコープ内でCellsという名前を定義・・」の部分を練習問題と思って、
Book2選択状態でもBook1でCells(1,1).Value=1を実行してBook1側セルが操作されるコードを考えてみます
ご説明頂きながらこちらの理解が足らない状態です,もし、そーじゃねーよ、ということなら恐縮ですがご指摘頂ければ幸いです
詳しくありがとうございます
疑問だった同名ユーザーフォームの件はまずは解決です
後半の「スコープ内でCellsという名前を定義・・」の部分を練習問題と思って、
Book2選択状態でもBook1でCells(1,1).Value=1を実行してBook1側セルが操作されるコードを考えてみます
ご説明頂きながらこちらの理解が足らない状態です,もし、そーじゃねーよ、ということなら恐縮ですがご指摘頂ければ幸いです
276デフォルトの名無しさん
2023/12/21(木) 07:46:49.25ID:VfXlm8CZ 会社の先輩が
「サーバーがコケた」と言って魔した。
これはどういう意味なんですか?擬人法だとは思うけど。
「サーバーがコケた」と言って魔した。
これはどういう意味なんですか?擬人法だとは思うけど。
277デフォルトの名無しさん
2023/12/21(木) 07:46:58.32ID:VfXlm8CZ ま
278デフォルトの名無しさん
2023/12/21(木) 08:07:57.44ID:5xKtyKw4 >>276
板違い
板違い
279デフォルトの名無しさん
2023/12/21(木) 08:44:41.65ID:VfXlm8CZ Excelの先輩が
「サーバーがコケた」と言ってました。
これはどういう意味なんですか?擬人法だとは思うけど。
「サーバーがコケた」と言ってました。
これはどういう意味なんですか?擬人法だとは思うけど。
280デフォルトの名無しさん
2023/12/21(木) 08:45:07.84ID:VfXlm8CZ >>278
このハゲ!
このハゲ!
281デフォルトの名無しさん
2023/12/21(木) 10:36:38.99ID:xlAPeSS0 >>276
ウォーターサーバーかな?
ウォーターサーバーかな?
282デフォルトの名無しさん
2023/12/21(木) 11:39:20.36ID:VfXlm8CZ283デフォルトの名無しさん
2023/12/21(木) 15:11:32.27ID:UFnvFSs2 現在計算が自動なのか手動なのかを判断する変数は見つけたのですが、これをリアルタイムで画面に出力する方法ってありますでしょうか?
イメージとしては条件付き書式で現在の計算が自動なら青、手動なら赤を表示するみたいなのを実装したいです
イメージとしては条件付き書式で現在の計算が自動なら青、手動なら赤を表示するみたいなのを実装したいです
284デフォルトの名無しさん
2023/12/21(木) 19:59:01.09ID:3GSHThlW その変数の値をセルに表示するサブルーチンを作って1秒毎に実行する
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市内閣、支持率横ばい75% (日経・テレ東 世論調査) ★3 [少考さん★]
- 【調査】クレジットカード、1人何枚持つのが「平均的」?★3 [ひぃぃ★]
- 【テレビ】池上彰氏 報道の自由度が高い国の特徴「どんどん政府を批判する。政治家は受け入れる」 一方独裁国家は… [冬月記者★]
- 【国防】防空ミサイル(中SAM) 輸出検討へ 政府、フィリピンと非公式協議 [シャチ★]
- 【作家】高市総理支持の背景に見えるヤンキー的「ケンカ上等!」と「日本人は特別だ」感がとても怖い 北原みのり [少考さん★]
- 「ヘイトスピーチをやめろ」 各地の「移民反対デモ」に抗議活動 [蚤の市★]
- 2025年出来事 八潮陥没、備蓄米放出、統一教会解散命令、大阪万博、パンダ返還、戦後80年、石破退陣、高市内閣発足、株価5万、26年前事件解決 [219241683]
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ174
- 高市が首相になってからSNSの雰囲気変わったよな。少しでも批判しようなら数の暴力で擁護、そして反論者へのデマ拡散 [472617201]
- 地震キタ━━━━(゚∀゚)━━━━!! [828897501]
- フィフィ「「歌唱強制中断」騒動、この時期に中国でライブ公演しようとするアーティストの方にも問題があるのでは?」 [377482965]
- 【菅悲報】発達チーズ、新幹線でマックを食し大炎上🐮 [559744496]
