- 1 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 02:23:41.78 ID:2t63WK/jM.net]
- !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
- 752 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 00:04:39.14 ID:41/DPGawd.net]
- ソルバーってカタカナで書くの余計分からないよ
素直にSolverで良いだろうに 上の困ってるのは一旦マクロの記録で動作確認お薦め
- 753 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 00:07:49.75 ID:bUNh/khy0.net]
- >>742
2行目はよく解る www
- 754 名前:デフォルトの名無しさん [2022/06/28(火) 05:51:37.94 ID:kKObdKOQ0.net]
- オレオレ詐欺の手伝い?
- 755 名前:デフォルトの名無しさん [2022/06/28(火) 07:36:23.45 ID:XbsSoqMza.net]
- >>736
なんで会計ソフト使わないの?
- 756 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 07:54:25.17 ID:2SIMEAUf0.net]
- Excelは万能ではないから会計ソフトでやるべき事柄
- 757 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 08:48:25.11 ID:8yuWSL180.net]
- この世で最高のコードを見かけた
With Range("F27:F56") .Value = .Value End With
- 758 名前:デフォルトの名無しさん [2022/06/28(火) 09:10:04.94 ID:3ZxXgE6I0.net]
- >>748
それの意味解る? ちょっと前に同じ様なコード載せてた人いたけど 複数範囲は一度に設定できないって嘆いていたよ
- 759 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 09:10:36.27 ID:a//tJk240.net]
- >>732
solverを使うときのパラメーターの設定の方法が間違ってんじゃない。多分値渡しではなくsetを使うと思うよ。 まずマクロの記録もう使ってなんでもいいからsolverで問題を解いてみて、solverを使うときの正しいVBA の書き方を確認しなさい。
- 760 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 09:52:29.46 ID:qOxYqvDuM.net]
- >>698
Ifなんたらかんたらを使わないで B2になんか文字が入っていたらC2を B3になんか文字が入っていたらC3を… をスマートに書くならどう書きます? https://i.imgur.com/5VtTNti.jpg
- 761 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 11:02:29.10 ID:1UWi0IGcd.net]
- >>751
こんな質問してマウントとりたいんだろうか・・・ こんな質問するならそのスマートな回答も書いておけばいいのに
- 762 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 11:15:10.25 ID:cqDrGvOU0.net]
- VBA使わなくてもセルに関数書いときゃいいんじゃね
- 763 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 12:14:32.96 ID:S7aFTH1NM.net]
- >>751
お前Access VBAスレにExcelの質問書き込みするんじゃねーよ 迷惑だ
- 764 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 17:20:05.57 ID:mlWlUbMB0.net]
- すみません、神様達、教えてください
エクセルVBAでは 関数内関数はどうやって作れますか? また複数の関数を目的別に整理する方法として パッケージやモジュール単位にまとめたり マップに収納したりはできるのでしょうか?
- 765 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 17:52:33.73 ID:fjXXNeRNM.net]
- >>755
できる vbeエディタウインドウを凝視しているとやり方が判るはず
- 766 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 17:59:52.62 ID:8yuWSL180.net]
- >>756
具体的にやり方を教えてあげなよ
- 767 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 18:51:45.14 ID:gpLDnVSMr.net]
- >>755
関数内関数ってこれのこと? https://www.sejuku.net/blog/28904
- 768 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 19:15:28.84 ID:+0CREnk7H.net]
- >>756
ちょっと凝視してみます >>758 疑似コードですけど例えば、 Function out() Function in1() End Function Dim a=Function in2() End Function out=Array(in1,a) End Function みたいな感じで 関数outの中に関数in1を宣言したり 変数に関数を代入して、returnしたりしたいのです
- 769 名前:デフォルトの名無しさん [2022/06/28(火) 19:22:25.73 ID:EFCYXnQm0.net]
- ローカル関数もサポートされてないし
関数をオブジェクトとして扱えないので変数への代入も無理です
- 770 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 19:22:27.90 ID:+0CREnk7H.net]
- >>756
標準モジュール単位で関数をまとめればいいってことでしょうか?
- 771 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 19:29:24.91 ID:+0CREnk7H.net]
- >>760
ありがとうございます なるほどです すっきりしました、神様ありがとう モジュールを使いながら関数を整理するか 関数用にファイルを作って管理するかします
- 772 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 20:14:33.61 ID:a//tJk240.net]
- >>761
正解です
- 773 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 20:14:53.99 ID:a//tJk240.net]
- それからモジュールには適当に名前を付けることができますので
- 774 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 20:17:06.37 ID:8yuWSL180.net]
- 関数内関数ってのは、関数の中で定義する関数のこと
phpだと sub foo1 if a = b then sub foo2 foo2=1 end sub else if sub foo2 foo2=2 end sub end sub みたいなことができる あんまやらんけど
- 775 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 20:22:34.06 ID:a//tJk240.net]
- >>759
関数内関数をそこで書いているようなやり方ではできないけれど、どうしてもやりたければ vbe オブジェクトを定義してそこにコードを書き込むという疑似なやり方はできる。あるいはコードを作成するプロシージャを作成してそのプロシージャを呼び出して引数を渡してコード作った後、そのコードを呼び出すみたいなことはできるのかもしれない。 コードを実行中に別のコードを作成するという経験がないんでエラーが出るかどうかは分からない。 ただ面倒だし見通しも悪くなるんで外側で関数を定義した方が簡単だと思うんだけれどなぜ関数の中で関数を定義したいのでしょうか。
- 776 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 20:32:39.05 ID:+0CREnk7H.net]
- >>766
ありがとうございます vbaがエクセル前提の言語と考えると 私が考えているような関数は使うべきでもないのだなって思いました 神様たちのアドバイスに感謝です ありがとうございました
- 777 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 20:42:12.06 ID:+0CREnk7H.net]
- >>765
ありがとうございます
- 778 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 20:50:26.07 ID:+0CREnk7H.net]
- >>766
なぜ関数の中で関数を定義したいのか すべての関数を同列に記載すると見通しが悪い気がして 例えば数式に関するものなら、calcurationでまとめ 出力に関するものなら、printでまとめ 保存に関するものなら、saveでまとめ っていうように、目的別、機能別、階層別に関数をまとめると 後で見直したときに分かりやすいかなって さらにfacadeみたいに間口を作れば 拡張も修正もしやすいかなって思いまして
- 779 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 20:56:44.33 ID:8yuWSL180.net]
- >>755
>関数内関数はどうやって作れますか? 関数内関数はない classは貧弱だけど、ある ただvbaそもそもの概念として、エクセルのスクリプトであるという点がある あんまり大きなclass作りたいなら、別言語の方が良いと思う エクセルvbaはゲームとかもキツイ(メインloopが超貧弱でvbaを起動しっぱなしだとよく落ちる) >また複数の関数を目的別に整理する方法として >パッケージやモジュール単位にまとめたり >マップに収納したりはできるのでしょうか? 標準モジュール単位でまとめられるけど・・・ エクセルvbaの標準モジュールは「どのシートにも共通する処理」のような意味合いで用いられる よくも悪くも、vbaはエクセルのためにあるので あまり壮大な事をするのには向いていない
- 780 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 20:59:53.87 ID:+0CREnk7H.net]
- >>770
class調べてみます! モジュールとclassが使えれば 見やすいコードかけるかも! そんな壮大なプログラムを作るつもりなないのですけど 一処理、一関数にしたいとなると ある程度の単位で処理をまとめていきたいなって ご丁寧なご解説に感謝です ありがとう、神様!
- 781 名前:デフォルトの名無しさん (ワッチョイ ff02-tQxS) [2022/06/28(火) 21:13:22 ID:i28fB/zi0.net]
- >>750
アドバイスありがとうございます! 入金消し込みの自動化をせよと上司からの指示で、初心者なりになんとかやってるんですが、会計ソフトの会社でもお手上げな仕組みの売掛金管理のようです。 setとcellsでなんとか、試行錯誤してやってみようと思います! またわからなくなったら、質問させて頂きます。
- 782 名前:デフォルトの名無しさん (アウアウウー Sad3-/ybv) mailto:sage [2022/06/28(火) 21:26:40 ID:WQvDBuzoa.net]
- 十年近くぶりに触るし上級者だったとかじゃないけど
VBAで 今開いてるPhotoshopの選択しているレイヤーを基準にExcelの指定セル範囲(例:A1からA20)を1セルごとにレイヤーを1枚作りセルの中身を文字ツール(テキスト)でレイヤーを作成。 例:ExcelのA1に「あいう」、A2に「えお」、A3に「123」が入力されていたとし、指定範囲選択(A1〜A3)を、開いてるPhotoshopにレイヤー追加しながらテキストレイヤー「あいう」、「えお」、「123」を作る(計3枚)。その際、Excelに近い見た目の形で…この場合、横に少し間隔を空けて「あいう」「えお」「123」が並ぶように作成する。(文字の大きさや色は直前に使ったpxサイズ、色とする) って出来ますか?
- 783 名前:デフォルトの名無しさん (ワッチョイ 3f4f-60CD) [2022/06/28(火) 21:45:50 ID:3ZxXgE6I0.net]
- いや、関数内関数?
まぁ似たようなものはあるよ。 GOSUBってのが。 ただ、これも負の遺産のひとつだから あまり使うことはお勧め出来ないけど。
- 784 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 21:52:47.26 ID:/U22FX/80.net]
- gosubは全然違うでしょ
- 785 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 22:11:43.10 ID:GB8Zx7jKM.net]
- 関数内関数いわゆる高階関数について、VBA関数には高階関数のための機能は無いけどワークシート関数のLAMBDAが該当する
- 786 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 22:18:47.50 ID:8yuWSL180.net]
- 確かに!その発想は正解だが・・・だが・・・
- 787 名前:デフォルトの名無しさん [2022/06/28(火) 23:36:42.40 ID:EFCYXnQm0.net]
- >>773
COM経由で操作できるっぽい。こんなのが引っかかった https://minatoya.work/419/
- 788 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 07:26:36.96 ID:f9LCV9hba.net]
- >>776
お前名前に騙されやすいタイプだろw LAMBDA は単なる関数定義で VBA スレ的にはユーザー定義関数と変わらんぞ ユーザー定義関数はマクロブックにしか入れられないから LAMBDA が作られた
- 789 名前:デフォルトの名無しさん (ワッチョイ 7fda-eqyh) mailto:sage [2022/06/29(水) 08:15:54 ID:SMNkprrA0.net]
- 他のプログラミングと同じだと思われているのかな LAMBDA 関数は
- 790 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 08:48:09.67 ID:sZpGYWcf0.net]
- ユーザー定義関数では(コーディング時に)関数を自作することはできるが、(実行中に)関数内で関数を定義したり
(実行中の)関数の引数に関数そのものを与えるたりすることはできない そもそもユーザー定義関数とLAMBDA関数はまったく別のもの Excelの新関数「LAMBDA」(ラムダ)が一般提供開始 ~Excel数式が本格的なプログラミング言語に https://forest.watch.impress.co.jp/docs/news/1387035.html
- 791 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 08:51:20.38 ID:GuRBEGnka.net]
- >>778
ありがとう そこのページ起点に頑張ってみる
- 792 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 08:55:02.95 ID:8rr9zLPCM.net]
- 関数型パラダイムをサポートしている言語か、最低でもC言語などで関数ポインタを使ったことがある人でないと高階関数の概念は理解が難しい
- 793 名前:デフォルトの名無しさん [2022/06/29(水) 10:34:47.30 ID:7c8LgVFIa.net]
- privateで良くないか
- 794 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 12:27:16.10 ID:f9LCV9hba.net]
- >>781
高階関数の話ならそこに書いてあるMAPとかSCANがLAMBDAを受けられる様になったことを言うべき あと関数内関数と高階関数は全く別物だし実行中に定義できるか
- 795 名前:かどうかも関係がない []
- [ここ壊れてます]
- 796 名前:デフォルトの名無しさん [2022/06/29(水) 13:48:20.01 ID:Es0nfTu8a.net]
- 記者がアホなんやで
- 797 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 14:05:01.02 ID:SMNkprrA0.net]
- ネットの記事って怪しかったり間違っているのが多々あるよね
- 798 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 14:22:16.06 ID:3IrndTU40.net]
- ネットの記事だけがそうだと思ってる?
- 799 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 14:30:17.44 ID:par7A0IW0.net]
- はい次の方
- 800 名前:デフォルトの名無しさん [2022/06/29(水) 14:59:30.13 ID:0RCF24VI0.net]
- .Netでもひとつの壁と言われているラムダ式が
VBAどころかEXCELで使えるようになるのか。 胸熱だが脱落者も増えるだろうな。
- 801 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 15:07:56.16 ID:Ajq9RLSRM.net]
- 一般的な意味での高階関数は数学的な抽象概念としての話ではあるけど、プログラム言語としては第一級関数の実装のことを言う場合が多い
(C言語の関数ポインタのように擬似的に実現する方法もある) 高階関数 https://ja.wikipedia.org/wiki/%E9%AB%98%E9%9A%8E%E9%96%A2%E6%95%B0 第一級関数 https://ja.wikipedia.org/wiki/%E7%AC%AC%E4%B8%80%E7%B4%9A%E9%96%A2%E6%95%B0
- 802 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 15:09:05.56 ID:JurptZkT0.net]
- 脱落者なんて増えないさ
世の中にエクセルの全機能使いこなしてる奴なんていないからな 理解できない機能は使われないだけだよ
- 803 名前:デフォルトの名無しさん [2022/06/29(水) 17:35:51.56 ID:0RCF24VI0.net]
- >>791
読んでてよく分からんかったけど 要はアセンブラでいうところのアドレスの間接参照とか 間接修飾とか言われているやつで .NetではDelegate、VBAではCallByNameによるコールバックって理解でいい?
- 804 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 17:43:32.68 ID:8wQcCZ0gd.net]
- VBAでできない事をダラダラと話さず別スレいけばいいのに
- 805 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 17:56:17.53 ID:vfJ3sAv3M.net]
- Excelで例えるなら関数を特定のオブジェクトのメソッドとしてではなく、それ自体を実体のあるオブジェクト(あるいはコレクション)と見做すようなもの
利用側の関数内で関数オブジェクト(のようなもの)を参照する手段として関数そのものをラムダとして扱う
- 806 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 18:54:09.74 ID:zPLPBKg6H.net]
- エクセルもVBAも詳しくないんですけど
VBAは非同期処理でコールバック関数を使わないんですか?
- 807 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 19:06:05.99 ID:tW8kR1cqM.net]
- イベント駆動型ですから
- 808 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 19:13:20.08 ID:i0xj9Opya.net]
- >>794
高階関数っていうのを最近覚えたんだろうな 関数内関数に1mmも関係ないのにしつこく語ってる 他の言語スレだと瞬殺されるレベルだからこんなスレで管巻くしか無いんだろうw
- 809 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 19:15:29.13 ID:uu2mw40gD.net]
- >>796
使おうと思えば使える
- 810 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 21:47:59.24 ID:zPLPBKg6H.net]
- >>799
コールバック関数を使えるのなら 引数に関数参照できるということです? なら変数に関数を代入できそう
- 811 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 21:55:21.60 ID:zPLPBKg6H.net]
- >>797
非同期処理はイベント処理に依存してるってことでしょうか? コメントありがとうございました VBA初心者なのでいろいろ勉強していきます
- 812 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 22:13:03.71 ID:sZpGYWcf0.net]
- >>800
特定のオブジェクトやクラスに所属する関数やAPIなどシステムで定義された関数(メソッド)であればコールバック関数で参照することはできる グローバルのユーザー定義の関数はラムダ式で記述するなどの手段を使わない限りは無理
- 813 名前:デフォルトの名無しさん (ワッチョイ 4f2f-BYhf) mailto:sage [2022/06/29(水) 22:45:43 ID:JurptZkT0.net]
- コールバック「関数」とはなにを指してるんだろうかねぇ
コールバックを実現する手段はイベント以外に CallByNameとかApplication.Runとかでまあ実現できなくはない
- 814 名前:デフォルトの名無しさん (JP 0Ha3-tCSL) mailto:sage [2022/06/29(水) 22:55:30 ID:zPLPBKg6H.net]
- コールバック関数は何を指しているのか
なぜラムダ式が存在するのか 即時関数とラムダはどこから分岐していったのか 関数プログラミングは本当に有益なのか 本当に変数は悪者で動的型付けは悪なのか それらはもはや哲学なのかもしれません
- 815 名前:デフォルトの名無しさん (ワッチョイ ff68-TsA2) mailto:sage [2022/06/29(水) 23:01:15 ID:L0Xzxy470.net]
- 慣れれば別にどっちでも・・・って感じになるけどな
- 816 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 23:50:10.86 ID:HQQahVZ60.net]
- >>783
自作の階乗作らせりゃ一発だろ。Cの関数へのポインタとか、可読性0に近い。組んでて楽しいけど、1ヶ月後の自分はこれを理解できるだろうかという疑問が湧くw
- 817 名前:デフォルトの名無しさん [2022/06/30(木) 05:47:49.15 ID:P7B/AZjs0.net]
- まぁでもあんまりVBAでコールバック使う機会ないかな
呼び出しや生成元のモジュール側の関数を 呼び出された側や生成された側から呼び出すときに 密結合になるのを避けるためくらいにしか使ってない
- 818 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 07:16:43.81 ID:1TbRNwlJH.net]
- >>807
エクセルVBAでDBのデータやファイルデータを読み込むとき 非同期にならないように処理するってことなんでしょうか? 例えばフラグを立ててdo-while、breakで処理待ちしてから次の処理に進むとか? webのように処理と表示のタイムラグを気にするようなことがないのかもしれませんね
- 819 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 07:32:44.20 ID:wDIpT9iQ0.net]
- それすんごい資源食わないか?
- 820 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 07:37:53.64 ID:1TbRNwlJH.net]
- >>809
vbaはコールバックを使わないということらしいのですが コールバックを使わずに非同期処理する方法があるのでしょうか?
- 821 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 07:47:00.24 ID:NKnrqd7g0.net]
- ない(もしくはめちゃ面倒だ)から諦めろ
非同期やりたいなら他の言語使え
- 822 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 07:59:35.80 ID:wyi1xEzY0.net]
- VBA走らせている間に漫画でも読んどけよ
- 823 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 08:04:39.54 ID:1TbRNwlJH.net]
- え、昨夜のレスでは非同期使えるって言われたので
多言語と同じようにpromise的な処理があるのかと思いました 非同期めちゃくちゃ面倒ってことは エクセル処理で非同期を使うという発想が間違っているのですね なんかいろいろ勘違いしていたみたいでした 神様、先輩方、すみませんでした
- 824 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 08:14:56.75 ID:CdZVH0NpM.net]
- vbsとか使って外部プロセスに追い出すのが簡単だな
で、何を並列処理したいのかな?
- 825 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 09:30:19.73 ID:TLf+rFOod.net]
- JavaScriptの経験があるなら今更VBAなんかに手を出さなくてもOfficeスクリプト使えばいいでしょ
デスクトップでもサポートされたからもうVBAいらないよ
- 826 名前:デフォルトの名無しさん [2022/06/30(木) 10:09:22.67 ID:P7B/AZjs0.net]
- >>815
え、マジ? もう企業や教育者向けのじゃなくても開発出来るの?
- 827 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 10:36:29.60 ID:3IHNP7gZd.net]
- ブック1開いてマクロ実行
待ってる間にブック2開いて手作業 ブック2保存して閉じたら、そのタイミングでブック1のマクロが停止 これって仕様?
- 828 名前:デフォルトの名無しさん (アウアウウー Sad3-sbT5) [2022/06/30(木) 11:24:18 ID:l3rHcZB/a.net]
- 排他処理なにそれおいしいの?
ファイル保存したらマクロが止まるのは仕様
- 829 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 15:49:46.55 ID:RZ5lqdEjd.net]
- VBAいじっている間にいつの間にかボタン表面が白くなって
userformの背景色や、userformで使われているボタン表面のも同じ白色に変色 まったく新しくファイルを作っても同じ現象が起きる オフィスをインストールし直しても同じ 例外的にいつもの正常なボタンの表面色で表示されるケースがある https://i.imgur.com/t5RFNKa.png この現象が起きる前に作ったファイルのコピーを作る。このコピーを開く。 このとき、セキュリティ警告が出てる間はなぜか正常なボタン表面色 コンテンツ~のボタンを押した瞬間にボタンが白くなる Workbook_Openとかはそもそもない 今のおかしな状態が黒線の左側で、右側がセキュリティ警告が出ている状態 VBEでUserForm自体・ボタン・テキストボックス、これらの背景色BackColorの値は &H8000000F& これって正常な値ですよね? つまり内部的には正常な値なのに表示はいずれも真っ白 windowsやモニタの設定の影響であればセキュリティ警告が出てようが無関係に白色化しているはず 何か原因わかる方いますか? そもそもVBAが関係しているかどうかも分からないのですが。 ちなみに他のエクセルとは無関係のソフトウェアの色は特に変化はないように思います
- 830 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 15:56:36.78 ID:RZ5lqdEjd.net]
- >>819ですが、文章ちょっとおかしなところがありました
ユーザーフォーム上のボタンも、ワークシートに直接おくボタンも同じように白色になっているということです そもそもボタンだけじゃなくて&H8000000F&で色が表示されている部分は どれもおかしくなっているような状態です
- 831 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 16:27:38.04 ID:CdZVH0NpM.net]
- たいして白くない件
- 832 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 16:32:48.48 ID:RZ5lqdEjd.net]
- >>821
真っ白です →は例外的に正常に表示されるケース ←が現状 https://i.imgur.com/3Hy4Ot8.png
- 833 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 17:41:14.60 ID:1+oYjPxt0.net]
- >>810
非同期と並列処理の区別をつけろよ 非同期=コールバックでもないしな
- 834 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 17:47:02.54 ID:1+oYjPxt0.net]
- >>819
テーマが適用されてるだけな気がする
- 835 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 18:26:58.93 ID:m1ZMAziu0.net]
- システムカラーの値
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/system-color-constants
- 836 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 21:06:49.66 ID:1TbRNwlJH.net]
- >>823
そうですね コールバックがマルチスレッドって言ってるわけでも プロセスを分けるって言ってるわけでもないです 全ての非同期処理は並列処理でもないですし コールバックは処理なので、非同期でもないですし VBAは初めてなのでいろいろ勉強していきます なんか変なこと言っていたらごめんなさい
- 837 名前:デフォルトの名無しさん (スッップ Sd5f-gXkX) mailto:sage [2022/06/30(木) 22:28:19 ID:SUgmTyTCd.net]
- 自分はやりたい事の手段の一つにExcelVBAがあるだけでExcelVBAでどこまでできるかってのは気にしてない
別の言語を選択すれば可能ならExcelVBAにこだわることもないしね 勉強するあたりのレベルならExcelVBAだけでなくほかの言語も勉強したほうがいいかもね
- 838 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 23:19:39.52 ID:1TbRNwlJH.net]
- エクセルの参加人数はすごいと思います
参加人数の多いエクセルをプラットフォームとしてデータ処理できるVBAは 他の言語には見られない参加者人数の価値があります(これを英語で何と言ったか忘れましたが) ハードもプラットフォームも、潜在的な参加者の数で価値を測るという考え方が正しければ エクセルVBAは他の言語をはるかに凌ぐ学習価値があると思うのです 他の言語を学習しつつもVBAも使えるというのは とても素晴らしいことなのだと、VBA初学者としても感じています 先生方、これからもご指導いただける機会がありましたらよろしくです
- 839 名前:デフォルトの名無しさん [2022/07/01(金) 00:44:30.82 ID:iVoRsqHDd.net]
- >>828
お前は二度と来なくていいよ
- 840 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 00:49:35.03 ID:T8FFb7IX0.net]
- >>828
ちょっと何いってるか分からない
- 841 名前:デフォルトの名無しさん [2022/07/01(金) 01:26:43.65 ID:miA2ycF9M.net]
- 魔界に転生するとしたら、リザレクの次くらいに持っていたいスキルですもんね。
転生するまでに習得したいと思います。
- 842 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 01:41:24.35 ID:wxGP1WcO0.net]
- シート上に実行ボタンがあり、いろいろなBookから値を取得してメインのブックに張り付けるマクロがあるのですが、
Windows7+Excel2010とWindows10+Excel2016では、2016方が数倍動作が遅いです(数秒程度が10秒程度になる)。 ただし、時々2010と同程度で終わることがあり、原因がよくわかりません。 なんか、実行ボタンの押し方によって(クリックしてマウスポインタをすぐExcelのウィンドウ外に移動)、 速度が速くなるような気がしているのですが、そのようなことはあるのでしょうか? あるとすれば、なにか対策や原因はあるのでしょうか?
- 843 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 02:14:42.23 ID:u7q4KnhWd.net]
- >>832
2013あたりからExcelの内部構造が大幅に変わったらしい Windowsも新しいほど重くなってる マウスポインタの位置によって速度が変わるのは多いにあり得る 昔はボタンを押したままにするとアプリの動作が止まってたのが、いつのまにかずっと動き続けるようになったし
- 844 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 06:59:23.11 ID:JTFoUJU2H.net]
- >>829
DBシステムとしては 操作のバリエーション、検索、演算エンジンともに 最高峰の素晴らしい言語システムなのに 初心者に冷たいコミュニティなのですね >>830 ネットワーク経済性と似た発想の価値測定方法で ソフトやハードの経済価値を推定する思考方法です
- 845 名前:デフォルトの名無しさん [2022/07/01(金) 07:51:36.56 ID:m7rasyZv0.net]
- >>834
いやいや、DBシステムとして使うとすると シートにSQL投げようとしたとき インデックス貼れない時点で欠陥品だよ。 EXCELの本分はあくまで表計算。
- 846 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 08:45:57.76 ID:Dqsnfi220.net]
- >>834
まずDBシステムじゃないし COMから学んではどうか
- 847 名前:デフォルトの名無しさん (ブーイモ MM4f-2lfq) mailto:sage [2022/07/01(金) 09:01:55 ID:2BH0SskNM.net]
- 今どき簡易DBアプリはPowerAppsみたいなローコードツールを使えばよい
オンライン共有のAccessみたいなアプリがクソ簡単に作れてExcelやスプレッドシートとの連携も容易
- 848 名前:デフォルトの名無しさん [2022/07/01(金) 11:26:48.78 ID:MWfPFNZsa.net]
- >>832
気のせいだからほっとけ
- 849 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 11:27:33.06 ID:B1H2Mtvqd.net]
- 自分としては質問があればそれにこたえるだけでいいと思うが
技術者が他の事にも手を広げるならクソ簡単かもしれないが 一般ユーザーが背伸びしてVBAを理解しようとしてるなら保守なんかも含めてハードル高いと思うんだよね まあ言いたい人は好き勝手に言うだけだから止められないが
- 850 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 11:46:09.70 ID:Kpd5ohp2M.net]
- 自分としては質問があれば質問するだけでいいと思うが
一般ユーザーが背伸びして回答なんかハードル高いと思うんだよね まあ言いたい人は好き勝手に言うだけだから止められないが
- 851 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 15:15:30.41 ID:Bx5b0a9x0.net]
- 大事な事だから二度と言うな
- 852 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 15:46:06.01 ID:Ry4wIvAM0.net]
- どっちだよw
|

|