!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付けるナリ
ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ
※前スレ
Excel VBA 質問スレ Part70
https://mevius.5ch.net/test/read.cgi/tech/1616072923/
Excel VBA 質問スレ Part71
https://mevius.5ch.net/test/read.cgi/tech/1621914481/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
Excel VBA 質問スレ Part73
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 4668-xJJl)
2021/09/13(月) 07:29:59.47ID:GNx0xRRz0233デフォルトの名無しさん (ワッチョイ de8c-ysz4)
2021/09/30(木) 23:00:52.63ID:sFWbYEj80 AAA(i) って中身はなんだ
234デフォルトの名無しさん (ワッチョイ 1e68-wYsx)
2021/09/30(木) 23:03:17.67ID:50MfSZL40 >232
i=i-1
や
i=3
みたいにiが永久に10を超えない動作が入るとそうなる
i=i-1
や
i=3
みたいにiが永久に10を超えない動作が入るとそうなる
235デフォルトの名無しさん (ワッチョイ 0349-PXWQ)
2021/09/30(木) 23:04:37.72ID:Vp0fi7DV0 普通に動いていると思っていただけで元々普通に動いてなかったとかはある
こんな感じのって言ってるから、そのソースそのまま受け取るわけには
いかんのだろうなって思った
こんな感じのって言ってるから、そのソースそのまま受け取るわけには
いかんのだろうなって思った
236デフォルトの名無しさん (アウアウウー Sa43-E/Tk)
2021/09/30(木) 23:16:32.92ID:VHGvetdVa 初心者の頃は手動でセル入力してた方が早く終わってしまうのが、もどかしくもあるけど
それでもvbaは覚えるべきだと思っていろいろ頑張ってます
それでもvbaは覚えるべきだと思っていろいろ頑張ってます
237デフォルトの名無しさん (ワッチョイ de8c-ysz4)
2021/09/30(木) 23:22:00.84ID:sFWbYEj80238232 (ワッチョイ ffad-2jfQ)
2021/10/01(金) 00:46:48.32ID:85aYXoDy0 AAAはリストボックスです。
わかりにくかったので、listAとします。
中身はTRUEかFALSEです。
listA.list(0)がTRUEなら、A1セルにOKを入力
listA.list(1)がFALSEなら何もしない。
listA.list(2)がTRUEなら、A3セルにOKを入力
…
という処理でした。
debug.printを入れる前に動かした時は、画面が固まることもなく正常に終了しました。
debug.printを入れた後に動かしたらループが止まらなくなりました。
debug.printで出力されたiは、0→1→…→9→10→0→1→…というループではなくて、
0→1→…→9→10→6→7→8→9→10→6→…→10→6→…というループでした。
「debug.print i」がiの値に影響を与える、ということはないですもんね。
他の部分を明日あらためて確認してみます。
ありがとうございました。
わかりにくかったので、listAとします。
中身はTRUEかFALSEです。
listA.list(0)がTRUEなら、A1セルにOKを入力
listA.list(1)がFALSEなら何もしない。
listA.list(2)がTRUEなら、A3セルにOKを入力
…
という処理でした。
debug.printを入れる前に動かした時は、画面が固まることもなく正常に終了しました。
debug.printを入れた後に動かしたらループが止まらなくなりました。
debug.printで出力されたiは、0→1→…→9→10→0→1→…というループではなくて、
0→1→…→9→10→6→7→8→9→10→6→…→10→6→…というループでした。
「debug.print i」がiの値に影響を与える、ということはないですもんね。
他の部分を明日あらためて確認してみます。
ありがとうございました。
239デフォルトの名無しさん (アウアウアー Saff-gIpp)
2021/10/01(金) 17:55:16.70ID:fQjrPzOfa クラスを使うメリットってなに?
240デフォルトの名無しさん (ワッチョイ ff42-Q9Gn)
2021/10/01(金) 19:26:10.62ID:aPfKzK/z0 見た目が美しい
241デフォルトの名無しさん (ワッチョイ cf68-2jfQ)
2021/10/01(金) 19:29:13.73ID:AYkrwA2S0 自己満足
242デフォルトの名無しさん (ワッチョイ 6f68-UmxQ)
2021/10/01(金) 19:45:19.68ID:3/37uweO0243デフォルトの名無しさん (ワッチョイ 8301-8myK)
2021/10/01(金) 19:47:27.08ID:4jCtmjal0 >>239
色々あるが、VBAのクラス機能はゴミなのでマジで自己満が多いと思う
解説サイトで玄人の技・隠し機能みたいなノリで紹介されてるので、使えるとプロっぽく見える。
@イベントやデフォルトメンバーみたいなオブジェクトモジュール専用の機能が使える
イベントをまとめたいとかで、仕方なしに、これ目的で使ってる人が多いと思う
A変数に値を入れて、その変数を色んな関数の引数にするっていう事が多々あるけど、
そういう「変数と関数」が常にペアになっているなら纏めた方が分かりやすい
B標準モジュールではモジュールレベルで宣言した変数は実行中保存される。
なので、ある関数でモジュールレベルの変数に値を保存して、別の関数で再利用みたいな使い方が出来る。
でも標準モジュールだと当然その変数に保存できる値は一つなので使い勝手が悪い。
クラスモジュールならインスタンスごとに別の値を保存できる
色々あるが、VBAのクラス機能はゴミなのでマジで自己満が多いと思う
解説サイトで玄人の技・隠し機能みたいなノリで紹介されてるので、使えるとプロっぽく見える。
@イベントやデフォルトメンバーみたいなオブジェクトモジュール専用の機能が使える
イベントをまとめたいとかで、仕方なしに、これ目的で使ってる人が多いと思う
A変数に値を入れて、その変数を色んな関数の引数にするっていう事が多々あるけど、
そういう「変数と関数」が常にペアになっているなら纏めた方が分かりやすい
B標準モジュールではモジュールレベルで宣言した変数は実行中保存される。
なので、ある関数でモジュールレベルの変数に値を保存して、別の関数で再利用みたいな使い方が出来る。
でも標準モジュールだと当然その変数に保存できる値は一つなので使い勝手が悪い。
クラスモジュールならインスタンスごとに別の値を保存できる
244デフォルトの名無しさん (ワッチョイ 8301-8myK)
2021/10/01(金) 19:51:30.36ID:4jCtmjal0 この手の話題には「お前らは使いこなしてないからメリットを把握できてないが、俺は使いこなせてる」おじさんが来る
245デフォルトの名無しさん (ワッチョイ f35f-1D0T)
2021/10/01(金) 19:59:58.89ID:jrcl2rEY0 処理高速化するクラスくらいは単純だし使いまわせるし使ってもいいんじゃない
246デフォルトの名無しさん (ワッチョイ f35f-ZUrU)
2021/10/01(金) 20:12:23.33ID:HK8CLsAI0 ただ単にすっきりして可読性がよい
クラスにしてると他人のコード化したときに何をしてるかもう一度把握するのが容易
自分でメソッドやプロパティを作るとファイルシステムオブジェクトやコレクションを扱い易くなる
クラスにしてると他人のコード化したときに何をしてるかもう一度把握するのが容易
自分でメソッドやプロパティを作るとファイルシステムオブジェクトやコレクションを扱い易くなる
247デフォルトの名無しさん (ワッチョイ 8301-8myK)
2021/10/01(金) 20:33:12.85ID:4jCtmjal0 JSとかと違ってモジュール内に構文で記述できない(単体のモジュールファイルとしてしか書けない)から、
クラスモジュールを書くこと自体が億劫に感じて余り印象よくないわ
プロジェクト内だとどこからでも呼び出せるから、どこでどう使われてるのかサッパリだし
イベント機能とか状態保存を有効に使いたい、コレクションを自作したい、
みたいな特別な理由がない限り使わない方がいいんじゃないかなぁと思ってる
クラスモジュールを書くこと自体が億劫に感じて余り印象よくないわ
プロジェクト内だとどこからでも呼び出せるから、どこでどう使われてるのかサッパリだし
イベント機能とか状態保存を有効に使いたい、コレクションを自作したい、
みたいな特別な理由がない限り使わない方がいいんじゃないかなぁと思ってる
248デフォルトの名無しさん (ドコグロ MMa7-E/uf)
2021/10/01(金) 20:46:27.80ID:g1N/sLwpM 継承までは望まないとしてもせめてInitializeに引数を持てるようにして欲しかった
249デフォルトの名無しさん (ワッチョイ 8301-8myK)
2021/10/01(金) 20:53:23.76ID:4jCtmjal0 >>248
Initializeはコンストラクタじゃなくてイベントだから、
仮に引数があってもオブジェクトモジュール内じゃないと使えない上に、
インスタンスごとにイベントハンドラ用のモジュールレベル変数が必要になって面倒だと思う
Initializeはコンストラクタじゃなくてイベントだから、
仮に引数があってもオブジェクトモジュール内じゃないと使えない上に、
インスタンスごとにイベントハンドラ用のモジュールレベル変数が必要になって面倒だと思う
250デフォルトの名無しさん (ドコグロ MMa7-E/uf)
2021/10/01(金) 21:49:30.27ID:j+Pc2S4XM イベントに引数渡せる言語はいくらでもあるのに何を言ってるんだ?w
251デフォルトの名無しさん (ワッチョイ 8301-8myK)
2021/10/01(金) 22:01:08.86ID:4jCtmjal0252デフォルトの名無しさん (ドコグロ MMa7-E/uf)
2021/10/01(金) 22:07:37.29ID:CXdVtwXkM253デフォルトの名無しさん (ワッチョイ cfda-2jfQ)
2021/10/01(金) 22:11:26.60ID:CmFZe7Ct0 質問者の環境や能力を無視すんなよ
254デフォルトの名無しさん (ワッチョイ 8301-8myK)
2021/10/01(金) 22:24:35.99ID:4jCtmjal0 >>252
何をどう解釈したのか言ってくれれば対応できるけど、最早返答が意味不明過ぎるんだわ
何に対して「イベントに引数渡せる言語はいくらでもあるのに何を言ってるんだ?w」と疑問が沸いたのか説明して?
何をどう解釈したのか言ってくれれば対応できるけど、最早返答が意味不明過ぎるんだわ
何に対して「イベントに引数渡せる言語はいくらでもあるのに何を言ってるんだ?w」と疑問が沸いたのか説明して?
255デフォルトの名無しさん (ワッチョイ 8301-8myK)
2021/10/01(金) 22:34:31.13ID:4jCtmjal0 >>252
あと、VBAのクラスに「引数が付いたコンストラクタが欲しいな」っていう希望から
「Initializeに引数を持てるようにして欲しかった」っていう要望が出たのは明白だろう
で、イベントに引数を渡すのは面倒だよねって話をしたら「コンストラクタにすればいい」ってのもよくわからん。
だったらイベント関係なしに、初めから使いやすいコンストラクタ相当の言語機能が定義されてた方がいいだろう
あと、VBAのクラスに「引数が付いたコンストラクタが欲しいな」っていう希望から
「Initializeに引数を持てるようにして欲しかった」っていう要望が出たのは明白だろう
で、イベントに引数を渡すのは面倒だよねって話をしたら「コンストラクタにすればいい」ってのもよくわからん。
だったらイベント関係なしに、初めから使いやすいコンストラクタ相当の言語機能が定義されてた方がいいだろう
256デフォルトの名無しさん (ワッチョイ ff4f-P/uO)
2021/10/01(金) 22:55:44.73ID:f1R1MoFX0 一般のObject指向言語で言うところの継承が使えないとか色々あるから普通にデザインパターンを考慮して作ろうとするとそこそこ制限受けるよね。
例えば継承が使えないからテンプレートメソッドパターンが使えないとか、
VB.Netで言うSharedが使えないからキチンとシングルトンパターン使おうとすると結構厄介だったりとか。
インターフェースが使えるから継承の代わりにストラテジーパターンでも使って組もうとか考えても限界あるし。
あ?コンストラクタに引数?
そんなのは初期化用のメソッド作って呼びゃいいだろうと俺は思うけどね。
まあでもそういうのに頭使って組むからVBAは面白いんだと思うよ。
他のObject指向言語やってる人って結構インターフェースの概念を疎かにしたりするしね。
例えば継承が使えないからテンプレートメソッドパターンが使えないとか、
VB.Netで言うSharedが使えないからキチンとシングルトンパターン使おうとすると結構厄介だったりとか。
インターフェースが使えるから継承の代わりにストラテジーパターンでも使って組もうとか考えても限界あるし。
あ?コンストラクタに引数?
そんなのは初期化用のメソッド作って呼びゃいいだろうと俺は思うけどね。
まあでもそういうのに頭使って組むからVBAは面白いんだと思うよ。
他のObject指向言語やってる人って結構インターフェースの概念を疎かにしたりするしね。
257デフォルトの名無しさん (ワッチョイ b32f-/JM3)
2021/10/02(土) 02:59:35.03ID:xagjL2JO0 イベントに引数渡す(というか受け取る)のは別に面倒でもなんでないから
コンストラクタの引数をInitializeイベントに渡せたらまあそれもいいんだが
VBAだとInitializeイベントがオーバーロードできないからなぁ
まあもともとのVBがオブジェクト指向でもなんでもなかったとこからスタートしてるからな
俺はVBAのクラスは自作イベント使いたいときに使うものと思ってる
コンストラクタの引数をInitializeイベントに渡せたらまあそれもいいんだが
VBAだとInitializeイベントがオーバーロードできないからなぁ
まあもともとのVBがオブジェクト指向でもなんでもなかったとこからスタートしてるからな
俺はVBAのクラスは自作イベント使いたいときに使うものと思ってる
258デフォルトの名無しさん (ドコグロ MMa7-E/uf)
2021/10/02(土) 06:05:15.61ID:g1EUYVpxM259デフォルトの名無しさん (ドコグロ MMa7-E/uf)
2021/10/02(土) 06:08:02.24ID:g1EUYVpxM >>256
> あ?コンストラクタに引数?
> そんなのは初期化用のメソッド作って呼びゃいいだろうと俺は思うけどね。
> まあでもそういうのに頭使って組むからVBAは面白いんだと思うよ。
そういうのは頭使うとは言わない
単に面倒(かつバグの元)なだけ
無い物ねだりすんなと言うならわかるけど
> あ?コンストラクタに引数?
> そんなのは初期化用のメソッド作って呼びゃいいだろうと俺は思うけどね。
> まあでもそういうのに頭使って組むからVBAは面白いんだと思うよ。
そういうのは頭使うとは言わない
単に面倒(かつバグの元)なだけ
無い物ねだりすんなと言うならわかるけど
260デフォルトの名無しさん (ワッチョイ b3e6-SE+q)
2021/10/02(土) 07:21:09.62ID:f83gGEH/0 VB7を待て!
261デフォルトの名無しさん (ワッチョイ ff4f-P/uO)
2021/10/02(土) 07:44:35.99ID:PmOXqFk20262デフォルトの名無しさん (ワッチョイ 6f68-UmxQ)
2021/10/02(土) 07:49:32.43ID:i6pQYLUQ0 それ言い出すとどんな言語でも「だけ」になるぞ
263デフォルトの名無しさん (ワッチョイ ff4f-P/uO)
2021/10/02(土) 07:52:52.17ID:PmOXqFk20 それにポリモーフィズムを理解している奴ならむしろバグやUTケースを減らせるコードが書ける。
でなければObject指向なんてここまで浸透しなかっただろうよ。
でなければObject指向なんてここまで浸透しなかっただろうよ。
264デフォルトの名無しさん (ワッチョイ ff4f-P/uO)
2021/10/02(土) 07:53:44.67ID:PmOXqFk20 >>262
例えば?
例えば?
265デフォルトの名無しさん (ドコグロ MMa7-E/uf)
2021/10/02(土) 08:50:27.63ID:7sXji/t3M むしろ>>263の方に例えば?って言いたいわw
266デフォルトの名無しさん (ワッチョイ ff4f-P/uO)
2021/10/02(土) 09:59:20.90ID:PmOXqFk20267デフォルトの名無しさん (ドコグロ MMa7-E/uf)
2021/10/02(土) 10:26:50.08ID:SSNRs28sM268デフォルトの名無しさん (ワッチョイ cf10-P/uO)
2021/10/02(土) 10:45:25.61ID:l9bGJwl90269デフォルトの名無しさん (ドコグロ MMa7-E/uf)
2021/10/02(土) 11:55:15.97ID:SSNRs28sM 勉強?
からかわれてることぐらいは理解した方がいいぞw
からかわれてることぐらいは理解した方がいいぞw
270デフォルトの名無しさん (ワッチョイ d3da-4VCj)
2021/10/02(土) 11:56:22.57ID:h3OHY9Ln0 まあまあ、通りがかりの者だけど、お前ら仲良くやれや
271デフォルトの名無しさん (ササクッテロラ Sp47-P/uO)
2021/10/02(土) 12:17:57.73ID:4Bm9Y75Jp まったく最近のじじいは
マウントどうのとかほざくくせに
負けず嫌いで困る
マウントどうのとかほざくくせに
負けず嫌いで困る
272デフォルトの名無しさん (ブーイモ MMe7-JsPX)
2021/10/02(土) 12:26:19.80ID:s0PycLWJM 5chはじじいの巣窟ですよ。
子供は他所で遊んだ方が良いですよ。
子供は他所で遊んだ方が良いですよ。
273デフォルトの名無しさん (ワッチョイ 6f68-UmxQ)
2021/10/02(土) 17:44:59.50ID:i6pQYLUQ0 >>264
クラスにコンストラクタがない
→newの後にメソッドなりで中身かえればいい「だけ」
それを言い出すとクラスそのものもなくてもどうにでもできるだろって話になる
そうじゃなくて、そんなめんどくさいことを「今更」したくないって話なんだ
それが苦にならないor自分で既にそれらを自動化するライブラリがある!ってなら問題ないと思うよ
君の言ってる事は間違いではない。単に感覚の違いだ
ただ、俺はやだなぁ
ついでに言うとarrayにpushはマジで欲しい
クラスにコンストラクタがない
→newの後にメソッドなりで中身かえればいい「だけ」
それを言い出すとクラスそのものもなくてもどうにでもできるだろって話になる
そうじゃなくて、そんなめんどくさいことを「今更」したくないって話なんだ
それが苦にならないor自分で既にそれらを自動化するライブラリがある!ってなら問題ないと思うよ
君の言ってる事は間違いではない。単に感覚の違いだ
ただ、俺はやだなぁ
ついでに言うとarrayにpushはマジで欲しい
274デフォルトの名無しさん (ワッチョイ cfb0-k9+P)
2021/10/02(土) 17:50:29.29ID:ffSwt3TR0 >>273
したくないのは自由だが、いまさらVBAが更新されることはないから、諦めて他の言語に行ってくれ
したくないのは自由だが、いまさらVBAが更新されることはないから、諦めて他の言語に行ってくれ
275デフォルトの名無しさん (ワッチョイ b32f-slNU)
2021/10/02(土) 18:23:04.84ID:xagjL2JO0 >>263
ちゃんとしたオブジェクト指向言語使えば減らせるってならともかく
VBAでオブジェクト指向でやってUTケース減らせると思えんが
ちょっとVBA関係ない話になるが
お前の思うポリモーフィズムと引数付きコンストラクタの使いどころ教えてくれ
ちゃんとしたオブジェクト指向言語使えば減らせるってならともかく
VBAでオブジェクト指向でやってUTケース減らせると思えんが
ちょっとVBA関係ない話になるが
お前の思うポリモーフィズムと引数付きコンストラクタの使いどころ教えてくれ
276デフォルトの名無しさん (ドコグロ MMa7-E/uf)
2021/10/02(土) 18:24:23.99ID:yfSowQXWM277デフォルトの名無しさん (ワッチョイ cfb0-k9+P)
2021/10/02(土) 18:35:12.83ID:ffSwt3TR0278デフォルトの名無しさん (ドコグロ MMa7-E/uf)
2021/10/02(土) 19:02:41.91ID:/B20gKTEM ああ確かにそうだな
そりゃすまん
そりゃすまん
279デフォルトの名無しさん (ワッチョイ ff4f-P/uO)
2021/10/02(土) 21:28:02.67ID:PmOXqFk20 >>275
そうだな、ちょっとその前に
例えば一つの例としてゲームを作ったとしよう。
それは簡単なシューティングゲームだったとして、
キャラクターの中に自機、弾、敵、ヒットマークがあったとする。
キャラクター数の上限は考えないものとし、敵は幾つか種類がいるものとして、ひとつは地形判定を行う、一つは弾を打つ、等の違いがあった場合、
君ならどう作るか聞いてもいいかな?
質問を質問で返すようなことするなと言っておいて悪いが最初に認識を合わせるために聞いておきたい。
そうだな、ちょっとその前に
例えば一つの例としてゲームを作ったとしよう。
それは簡単なシューティングゲームだったとして、
キャラクターの中に自機、弾、敵、ヒットマークがあったとする。
キャラクター数の上限は考えないものとし、敵は幾つか種類がいるものとして、ひとつは地形判定を行う、一つは弾を打つ、等の違いがあった場合、
君ならどう作るか聞いてもいいかな?
質問を質問で返すようなことするなと言っておいて悪いが最初に認識を合わせるために聞いておきたい。
280デフォルトの名無しさん (ワッチョイ ff4f-P/uO)
2021/10/02(土) 21:48:51.07ID:PmOXqFk20 >>273
そもそも論として、クラスを使わなければ何か出来ないことがあるかと言われれば、それはあまり思い付かない。
ただ、VBAでクラスのコンストラクタに引数を持ってないという程度であればそれで代用が効くだろうという話。
それも面倒だというのであれば、クラスを生成して初期化するメソッドを作ってそれに引数を持たせるようにして呼び出せばいくつそういう場所があっても一回書いておけばいいということになる。
そもそも論として、クラスを使わなければ何か出来ないことがあるかと言われれば、それはあまり思い付かない。
ただ、VBAでクラスのコンストラクタに引数を持ってないという程度であればそれで代用が効くだろうという話。
それも面倒だというのであれば、クラスを生成して初期化するメソッドを作ってそれに引数を持たせるようにして呼び出せばいくつそういう場所があっても一回書いておけばいいということになる。
281デフォルトの名無しさん (ワッチョイ b32f-slNU)
2021/10/03(日) 05:20:08.91ID:fyf/YlYy0 >>279
認識あわせの例がシューティングゲームとかその時点でお前とは合わんわ
シューティングゲームとか作らんし、その想定でどう作るとか言われてもな
まあ一から全部作ることはないし、何らかのフレームワークに従って作るんじゃね
そんな細かい実装的な話を聞きたいんじゃないんだよ
認識あわせの例がシューティングゲームとかその時点でお前とは合わんわ
シューティングゲームとか作らんし、その想定でどう作るとか言われてもな
まあ一から全部作ることはないし、何らかのフレームワークに従って作るんじゃね
そんな細かい実装的な話を聞きたいんじゃないんだよ
282デフォルトの名無しさん (ササクッテロ Sp47-P/uO)
2021/10/03(日) 07:39:28.72ID:8uofczFap283デフォルトの名無しさん (ワッチョイ 6f8c-GArm)
2021/10/03(日) 11:58:59.58ID:Lx3l1CXP0 ガンダムで例えてくれ
284デフォルトの名無しさん (ワッチョイ cfda-vizG)
2021/10/03(日) 12:18:23.19ID:PztuncMq0 坊やだからさ
285デフォルトの名無しさん (アウアウウー Sa27-jOtc)
2021/10/03(日) 12:51:23.55ID:oCTMWA/sa excel+vbaでマインスイーパーは造れますか?
どこかにソースありますか?
どこかにソースありますか?
286デフォルトの名無しさん (ブーイモ MMff-Ig7M)
2021/10/03(日) 12:54:45.72ID:cPfMe0TfM287デフォルトの名無しさん (ドコグロ MMa7-E/uf)
2021/10/03(日) 13:18:38.78ID:PZL9KPgcM vba minesweeper code でググれ
288デフォルトの名無しさん (ワッチョイ e301-QRk2)
2021/10/03(日) 22:35:03.42ID:x8fdTISD0 教えて下さい
ガンチャート形式の日程表で
日付の色塗りだけじゃなくて
タスク表示(その日の予定)もさせたいんだけど
どう関数組んだらいい?
ガンチャート形式の日程表で
日付の色塗りだけじゃなくて
タスク表示(その日の予定)もさせたいんだけど
どう関数組んだらいい?
289デフォルトの名無しさん (ワッチョイ f35f-1D0T)
2021/10/03(日) 23:22:18.21ID:VDfIFkhd0 >>288
ガントチャート形式の日程表とやらの構成はどうなっている?
日付の色塗りとは、何を指している?
タスク表示とは、タスク名?をどこに表示させることを言っている?
このへん予め提示しないと解決が長引くよ
ガントチャート形式の日程表とやらの構成はどうなっている?
日付の色塗りとは、何を指している?
タスク表示とは、タスク名?をどこに表示させることを言っている?
このへん予め提示しないと解決が長引くよ
290デフォルトの名無しさん (ワッチョイ 435f-JGFc)
2021/10/04(月) 00:04:37.41ID:j9cfwAH/0 >>288
セルサイズを大きくしてタスクを入力すればいい
セルサイズを大きくしてタスクを入力すればいい
291デフォルトの名無しさん (ワッチョイ 6f8c-GArm)
2021/10/04(月) 01:17:19.95ID:BaE5qGe00 excel ガントチャート フリーで検索
292デフォルトの名無しさん (ワッチョイ 435f-P/uO)
2021/10/04(月) 09:25:56.63ID:dlhTdODc0 質問失礼します
タイマーで二つのマクロを順番に実行したいのですが
ひとつめのマクロ実行が長引いてしまい
マクロ実行中にApplication.OnTimeのcallで次のマクロが動くとエラーになってしまいます
Application.OnTimeの時間になっても前のマクロが終わるまで待つやぶつからなくする方法はあるでしょうか?
タイマーで二つのマクロを順番に実行したいのですが
ひとつめのマクロ実行が長引いてしまい
マクロ実行中にApplication.OnTimeのcallで次のマクロが動くとエラーになってしまいます
Application.OnTimeの時間になっても前のマクロが終わるまで待つやぶつからなくする方法はあるでしょうか?
293デフォルトの名無しさん (ワッチョイ ff4f-P/uO)
2021/10/04(月) 09:37:56.41ID:X/RNGavO0294292 (ワッチョイ 435f-P/uO)
2021/10/04(月) 10:15:29.97ID:dlhTdODc0295デフォルトの名無しさん (ブーイモ MMe7-Ig7M)
2021/10/04(月) 10:57:06.41ID:JQlH+vDNM ontimeの第3引数も調べてね
296デフォルトの名無しさん (アウアウアー Saff-3pxB)
2021/10/04(月) 12:27:18.56ID:kyO84GtQa 関数に引数が七つも八つもあるとわかりにくくなるから、それならクラスにしておけば、可読性が良くなるのかな
297デフォルトの名無しさん (ワッチョイ ff4f-P/uO)
2021/10/04(月) 12:54:51.17ID:X/RNGavO0 >>296
そうね。
ただVBAのクラスは1クラス1モジュール使ってしまうのと、クラスが格納されているフォルダが一階層しか使えないからネーミングに気を付けて後でそれがそういう意味を持つクラスだって分かるようにしておかないとね。
後、あれやこれやと引数のクラス作らなくても、引数として格納する変数が一意でいい場合は標準モジュールでも同じように作れば使えるよ。
ただしこの場合は引数として渡すんじゃなくてその標準モジュール側に作ったプロパティを直接読みに行くことになるけどね。まぁ使い分けだね。
そうね。
ただVBAのクラスは1クラス1モジュール使ってしまうのと、クラスが格納されているフォルダが一階層しか使えないからネーミングに気を付けて後でそれがそういう意味を持つクラスだって分かるようにしておかないとね。
後、あれやこれやと引数のクラス作らなくても、引数として格納する変数が一意でいい場合は標準モジュールでも同じように作れば使えるよ。
ただしこの場合は引数として渡すんじゃなくてその標準モジュール側に作ったプロパティを直接読みに行くことになるけどね。まぁ使い分けだね。
298デフォルトの名無しさん (ワッチョイ bf3d-kB/c)
2021/10/04(月) 13:39:00.82ID:1MgeDxIh0 マクロを実行させると、Excelが落ちてしまい、
ステップ実行させるとマクロが正常終了orExcelが落ちない
ていう事になってるんだが、
どこで異常終了してるか調べる方法ある?
ステップ実行させるとマクロが正常終了orExcelが落ちない
ていう事になってるんだが、
どこで異常終了してるか調べる方法ある?
299デフォルトの名無しさん (ワッチョイ ff4f-P/uO)
2021/10/04(月) 13:41:09.43ID:X/RNGavO0300デフォルトの名無しさん (ワッチョイ ff4f-P/uO)
2021/10/04(月) 13:54:27.50ID:X/RNGavO0 上記のやり方が大変だというのであれば
Logをどこかのtxtファイルにはく、という手もある。
Logをどこかのtxtファイルにはく、という手もある。
301デフォルトの名無しさん (ワッチョイ bf3d-kB/c)
2021/10/04(月) 14:13:00.80ID:1MgeDxIh0 >>299,300
ブレイクポイントを貼ると落ちない。
なんとなくやばい場所は分かってるんだけど、on errorでもcatchできないんだよな。
やってることは、 uiautomationを使ってコンボボックス叩く(Expand)てことやってるんだが、
おそらくその行で落ちるんだが、
落ちずに成功する場合もあるんだよな。
ブレイクポイントを貼ると落ちない。
なんとなくやばい場所は分かってるんだけど、on errorでもcatchできないんだよな。
やってることは、 uiautomationを使ってコンボボックス叩く(Expand)てことやってるんだが、
おそらくその行で落ちるんだが、
落ちずに成功する場合もあるんだよな。
302デフォルトの名無しさん (ワッチョイ cf68-2jfQ)
2021/10/04(月) 14:34:03.70ID:AbV0YbaI0 >>301
WinAPIで似たような事があった
本来待ち時間が必要な処理を待たずに次へ行くからブレイクポイント無しだと落ちるってケースね
怪しい所にSleep関数使って500ミリ秒待たせたら落ちなくなった事があるよ
WinAPIで似たような事があった
本来待ち時間が必要な処理を待たずに次へ行くからブレイクポイント無しだと落ちるってケースね
怪しい所にSleep関数使って500ミリ秒待たせたら落ちなくなった事があるよ
303デフォルトの名無しさん (ワッチョイ bf3d-kB/c)
2021/10/04(月) 15:02:49.67ID:1MgeDxIh0 298です。
いろいろ試してみると、マクロを実行じゃなくてステップインボタン押してF5で実行させると落ちない事がわかった。
ならば、待ち時間の問題かと思って、sleepとかDoEventsを入れてみても、落ちる。
今の所唯一の回避策がステップイン+F5だな。
ググるとステップインだとうまくいくていう記事は散見されるが、合理的な説明はない。
いろいろ試してみると、マクロを実行じゃなくてステップインボタン押してF5で実行させると落ちない事がわかった。
ならば、待ち時間の問題かと思って、sleepとかDoEventsを入れてみても、落ちる。
今の所唯一の回避策がステップイン+F5だな。
ググるとステップインだとうまくいくていう記事は散見されるが、合理的な説明はない。
304デフォルトの名無しさん (ブーイモ MMff-Ig7M)
2021/10/04(月) 15:29:55.92ID:NBSFfuMDM コンボボックスって表示したときにはテータは入ってなくて
クリックされたときにデータを読みに行くとかじゃなかったかな
クリックされたときにデータを読みに行くとかじゃなかったかな
305デフォルトの名無しさん (ワッチョイ cfda-2jfQ)
2021/10/04(月) 18:42:56.09ID:CJXp4LD30 タイマーの間隔が短すぎなんじゃね
306デフォルトの名無しさん (アウアウウー Sa27-1D0T)
2021/10/04(月) 19:42:11.08ID:2sXWsmVMa ワークブック開きすぎ(それも容量やシートが多すぎ)や、複数アプリケーション開きながらマクロ動かすと遅くなるからそういうところからも気をつけるといいかもしれない事例
307デフォルトの名無しさん (ワッチョイ ff4f-P/uO)
2021/10/04(月) 20:35:24.21ID:X/RNGavO0 >>303
当たりをつけるというフィジカルな部分ももちろん大事だけれど、本当に自分が当たりをつけたところが原因なのか切り分けを行った方がいいね。
その為にもどこで落ちているかを確定するのが一番先にやることだよね。やっぱりLogをtxtファイルか何かに出力するのが遠回りになるようで一番近道かもしれないよ。
箇所箇所で吐き出すロジック組み込んで、毎回書き込んでセーブしておけばどこで途切れたかで分かると思うからそれで絞り込んでどの命令で落ちたかを確定出来れば儲けもの。
もっとも、都度落ちる箇所が違う場合もあるかもだろうけど、そうなったらそうなったでそれから当たりをつけて調べればいいのであって、まず落ちている箇所が特定出来れば原因もある程度絞れるよね。
当たりをつけるというフィジカルな部分ももちろん大事だけれど、本当に自分が当たりをつけたところが原因なのか切り分けを行った方がいいね。
その為にもどこで落ちているかを確定するのが一番先にやることだよね。やっぱりLogをtxtファイルか何かに出力するのが遠回りになるようで一番近道かもしれないよ。
箇所箇所で吐き出すロジック組み込んで、毎回書き込んでセーブしておけばどこで途切れたかで分かると思うからそれで絞り込んでどの命令で落ちたかを確定出来れば儲けもの。
もっとも、都度落ちる箇所が違う場合もあるかもだろうけど、そうなったらそうなったでそれから当たりをつけて調べればいいのであって、まず落ちている箇所が特定出来れば原因もある程度絞れるよね。
308デフォルトの名無しさん (ドコグロ MMa7-E/uf)
2021/10/04(月) 20:43:05.82ID:TWw1hYLnM >>296
たいていはユーザー定義型で十分
たいていはユーザー定義型で十分
309デフォルトの名無しさん (ワッチョイ 3349-rn75)
2021/10/04(月) 22:16:21.62ID:YLhov1R00 For i = 1 to 10
Call Sleep(200)
DoEvents
Next i
Call Sleep(200)
DoEvents
Next i
310デフォルトの名無しさん (ワッチョイ e38e-6V0L)
2021/10/05(火) 00:51:53.00ID:AqVIusQn0 >>296
お前の知能が足りなくてアウアウしてるだけだろ
お前の知能が足りなくてアウアウしてるだけだろ
311デフォルトの名無しさん (アウアウキー Sa87-Kp1k)
2021/10/05(火) 15:40:04.36ID:dJ3N05Swa ちょっと教えてください
コントロール上にマルチページ「Multipage1」があるとき、下を実行するとエラーが出るんですが、何故か分からんのです
Private Sub UserForm_Initialize()
Dim buf As String
buf = "D3"
Set MP = MultiPage1
MP.Pages.Add
MP.Pages("Page3").Name = buf
MP.Pages(buf).Name = "X3" ←ここ。「13:型が一致しません」
End Sub
コントロール上にマルチページ「Multipage1」があるとき、下を実行するとエラーが出るんですが、何故か分からんのです
Private Sub UserForm_Initialize()
Dim buf As String
buf = "D3"
Set MP = MultiPage1
MP.Pages.Add
MP.Pages("Page3").Name = buf
MP.Pages(buf).Name = "X3" ←ここ。「13:型が一致しません」
End Sub
312デフォルトの名無しさん (アウアウキー Sa87-Kp1k)
2021/10/05(火) 15:45:39.37ID:dJ3N05Swa 補足ながら>>311はMPもマルチページとして宣言するか該当箇所をMP.Pages("D3").Name = "X3"に書き換えれば期待通り動くんですよね
どういう仕組みなのか
どういう仕組みなのか
313デフォルトの名無しさん (オッペケ Sr47-Ug22)
2021/10/05(火) 15:56:25.07ID:hS5WuwV9r worksheetfunctionの引数に配列入れるときって数に上限があるな
警告も出さないしほんまクソ
警告も出さないしほんまクソ
314デフォルトの名無しさん (オッペケ Sr47-PY+R)
2021/10/05(火) 15:56:31.46ID:hS5WuwV9r worksheetfunctionの引数に配列入れるときって数に上限があるな
警告も出さないしほんまクソ
警告も出さないしほんまクソ
315デフォルトの名無しさん (ワッチョイ ff4f-P/uO)
2021/10/05(火) 16:15:51.73ID:2oqKIsmm0316デフォルトの名無しさん (ワッチョイ ff4f-P/uO)
2021/10/05(火) 16:19:44.73ID:2oqKIsmm0 あ、でもこっちはOption Explicit 付けてたから
MPはキチンと型宣言してたな。
でもそこはあまり関係ないよね?
MPはキチンと型宣言してたな。
でもそこはあまり関係ないよね?
317デフォルトの名無しさん (アウアウキー Sa87-Kp1k)
2021/10/05(火) 16:21:29.24ID:dJ3N05Swa318デフォルトの名無しさん (ワッチョイ ff4f-P/uO)
2021/10/05(火) 16:29:34.84ID:2oqKIsmm0319デフォルトの名無しさん (アウアウキー Sa87-Kp1k)
2021/10/05(火) 16:32:02.05ID:dJ3N05Swa variant/object/multipageでした
320デフォルトの名無しさん (ワッチョイ ff4f-P/uO)
2021/10/05(火) 16:36:45.31ID:2oqKIsmm0321デフォルトの名無しさん (アウアウキー Sa87-Kp1k)
2021/10/05(火) 16:39:04.47ID:dJ3N05Swa そうですね、とりあえず急ぎとか困りではないので一旦これで…
ご回答ありがとうございました
ご回答ありがとうございました
322デフォルトの名無しさん (ブーイモ MM1f-Ig7M)
2021/10/05(火) 18:26:27.16ID:jAVyPZWcM 型推論するのに失敗してるんじゃね
323デフォルトの名無しさん (ワッチョイ b32f-slNU)
2021/10/05(火) 21:37:47.06ID:LdUtAYwX0 Pagesの引数に変数渡すと数字として解釈しようとしてるっぽいな
buf = "2" とかにするとIndex=2のページを参照してるようだ
文字列リテラルならちゃんと名称として解釈してるっぽい
ちな365の64ビット
これ以上はサポートにでも問い合わせるしかねぇんじゃね
buf = "2" とかにするとIndex=2のページを参照してるようだ
文字列リテラルならちゃんと名称として解釈してるっぽい
ちな365の64ビット
これ以上はサポートにでも問い合わせるしかねぇんじゃね
324デフォルトの名無しさん (アウアウウー Sa27-4HLA)
2021/10/07(木) 18:28:58.89ID:p9itA/YXa マクロの記録機能使ってマクロの作成したいんだがピボットテーブルのプルダウンから任意の値だけを抜き出すのってどうやってやればいいの?
毎回モジュール見直すとvisible farceになってて要するに抜き出したいもの以外を表示しないようにしてる構文て事だよね?
こうなると仮に次回このマクロを使う時にvisible farceになってない値が新しく出てくるとそれも表示されちゃうって事だよね?
じゃなくていくら値が増えても決められた値だけを抜き出すように作りたいんだ
どなたか教えて下さい
毎回モジュール見直すとvisible farceになってて要するに抜き出したいもの以外を表示しないようにしてる構文て事だよね?
こうなると仮に次回このマクロを使う時にvisible farceになってない値が新しく出てくるとそれも表示されちゃうって事だよね?
じゃなくていくら値が増えても決められた値だけを抜き出すように作りたいんだ
どなたか教えて下さい
325デフォルトの名無しさん (ワッチョイ c310-eIP4)
2021/10/07(木) 20:11:24.24ID:70iiidwq0 >>324
記録してみてどうなってるか見てみれば分かるじゃん
記録してみてどうなってるか見てみれば分かるじゃん
326デフォルトの名無しさん (ワッチョイ f35f-1D0T)
2021/10/07(木) 21:05:39.19ID:D5dO/oMJ0327デフォルトの名無しさん (ワッチョイ 435f-nDZW)
2021/10/07(木) 21:29:48.70ID:AykPZAFh0 ActiveSheet.PivotTables("ぴぼっとてーぶる").PivotFields("ふぃーるど").ClearAllFilters
ActiveSheet.PivotTables("ぴぼっとてーぶる").PivotFields("ふぃーるど").PivotFilters.Add Type:=xlCaptionEquals, Value1:="表示したいもの"
ActiveSheet.PivotTables("ぴぼっとてーぶる").PivotFields("ふぃーるど").PivotFilters.Add Type:=xlCaptionEquals, Value1:="表示したいもの"
328デフォルトの名無しさん (ワッチョイ e301-RzFA)
2021/10/07(木) 23:55:42.12ID:P9pCLiyt0 VBAで最適化したら仕事増やされた話ってよく聞くけど
そいつが辞めたらそいつに回されてた膨大な仕事はどうなるん
そいつが辞めたらそいつに回されてた膨大な仕事はどうなるん
329デフォルトの名無しさん (アウアウキー Sacb-h0Ad)
2021/10/08(金) 00:17:45.54ID:sJT5Ti/qa うちの職場は適当にvbaでつくったやつをちゃんとしたアプリに置き換えてるよ
330デフォルトの名無しさん (ワッチョイ cb01-VEx9)
2021/10/08(金) 00:31:33.80ID:GXvDbP/z0 アプリだろうがvbaだろうが作った人間がやめたらメンテできなくて終わるんじゃないの
開発者が大勢いるようなレアな職場ならともかく
vba使ってるところなんてたいてい事務で
エクセル職人が少数いるだけだろ
開発者が大勢いるようなレアな職場ならともかく
vba使ってるところなんてたいてい事務で
エクセル職人が少数いるだけだろ
331デフォルトの名無しさん (テテンテンテン MM86-Rkqs)
2021/10/08(金) 00:37:30.31ID:d3eTt0zpM 実際にはそういうときには業務そのものが消滅するケースも多いよ
そもそもVBAで簡単に自動化できるような業務はもともと無意味であるものが多いからな
そもそもVBAで簡単に自動化できるような業務はもともと無意味であるものが多いからな
332デフォルトの名無しさん (ワッチョイ 9eda-JSxF)
2021/10/08(金) 02:32:08.41ID:KEaimES90 人がやめた後に職場がどうなるかはその職場の責任者が決めるんじゃね
下っ端が気にすることじゃない
下っ端が気にすることじゃない
■ このスレッドは過去ログ倉庫に格納されています
