Excel VBA 質問スレ Part84 (126レス)
1-

1: 10/01(水)14:36 ID:lecUwKjm(1)調 AAS
ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK

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

※前スレ
Excel VBA 質問スレ Part83
2chスレ:tech
27: 10/05(日)09:28 ID:knUkubLb(6/14)調 AAS
会社で本格的なデータベースを構築しているとか、サーバーが使える、あるいは業務にしているのならそりゃSQLを推奨しますよ
しかし日本企業がそんなにITの導入をしているとは私はまったく思えません
だから当然必然的にExcelの標準機能一択になるわけです
世の中の企業にはVBAを禁止している会社もあると聞きます
だったら尚更パワークエリー
あとSQLはETLではないからSQLにできないことも多い
28
(1): 10/05(日)09:41 ID:beeJ4mT2(3/6)調 AAS
UnPivot て、Excelの原始的な機能で、貼り付け時に行/列入れ替え 貼り付けだけで済むんじゃないのか?
そんな単純じゃない!もっともっと厳しいデータなんだ!ってことなのか?
取り込んだデータが行列逆だったら、真っ先にそれするもんじゃないのか? 基本のキ?
29
(2): 10/05(日)09:51 ID:knUkubLb(7/14)調 AAS
>>28
UnPivotと行列入れ替えは全くの別物ですよ
行列入れ替えは本当にただ
 列


 行

にするだけなんだけど、UnPivotは横持ちデータを縦持ちデータに変換する事を言います
例えば
 1月2月3月4月5月〜
各エリア

という表があればその各月のデータを
エリア列|月列
とリスト表形式に整えてくれます
これ無くして高度な集計はできません
30
(1): 10/05(日)09:51 ID:beeJ4mT2(4/6)調 AAS
社内にサーバー(NAS含む)も仕立てていない企業が蓄えてる大容量のデータって
いや、Power Query を否定するつもりは無いけど、今のExcelの標準の機能で殆ど賄えやしないか?
ものっそ古いデータもあって、当時はデータの統一性もまばらで、セル内改行してるだの
文字の位置合わせにスペース使ってるだの、予想外のデータだったりすることもあるんだから
イロハのイ、基本のキは守っておいて損は無いんだけど
31
(1): 10/05(日)09:58 ID:QIz/HuGJ(1)調 AAS
自分はSQL派なので事前に定義されたテーブルにデータを入れておくという考え方の方になじみがあるけど、表っぽいデータなら大抵はうまい塩梅に整形できますぜということならパワークエリにもそれなりに活用場面は出てくると思う。ただ、クエリ部分をSQLからパワークエリに置き換えるのはちょっと躊躇を覚えるかな。標準規格があって、ペンダーが複数いるという安心感はかなり大きいので。
SQLを除いてExcelおよびその関連機能であるVBA、パワークエリだけで考えたときに、それぞれどういう長所・短所があるかというのはそれはそれで1つの議論ではあるね。
32: 10/05(日)10:08 ID:knUkubLb(8/14)調 AAS
なんでVBAで流石にUnPivot旬は難しいと言えるかと言うと、UnPivotする為にはそれぞれの項目とその数に応じて大量に行の挿入を行う必要があるからです

これをVBAでやろうとすると行ズレ問題に頭を悩ませるし、セル操作、Rangeは非常に遅いし、2次配列の操作はVBAは非常に貧弱だからです

一応、パワークエリーが登場する前(本当はMicrosoft Queryという前身機能があったらしいですが)のVBAのまず最初にやる事はUnPivotだったらしいので、絶対にできないとは言いません
しかし、パワークエリーならボタンぽちぽちで済む事を全部コードに書かなきゃならないので非常に面倒くさい上に不具合もあります

サーバーがある、本物のSQLが使用できる環境があると言うのなら当然止めません
既に正規化されているデータだけを扱うと言うのであれば尚更でしょう
しかし世の中その様なデータばかりを扱うとは到底思えません
33: 10/05(日)10:09 ID:knUkubLb(9/14)調 AAS
>>31
表っぽいデータなら「大抵」ではなく、「全て」うまい塩梅に整形できますぜ です
なぜならそれがETLだからです
34
(1): 10/05(日)10:30 ID:beeJ4mT2(5/6)調 AAS
その「ボタンぽちぽち」で出来てしまう点を懸念してンだけどねw
野良データがガサツでも、ぽちぽちしたらちゃんとした表に仕上がりました! で、そのデータの
信ぴょう性とかファクトが担保されるのか?という面で、イとかキは疎かにしちゃいけない、と
で、そのイとかキをしてる最中に「これとこれをこうすりゃこう仕上がる」という、データ加工の
手順や経緯や法則がきちんと把握できてく(それが判ればほぼほぼ基本機能で済むケースが多いのも現実)

そういう基盤がキチンと制作者も受け取る側も共有出来てるなら、どんなアプリ使おうとも構わんけど
作る側がその辺ないがしろにして「この機能サイコー!」だけで盲信して得意満面に仕上げてきた表ほど
役に立たないものも無いってのも現実 まあ、老婆心だけだけどw
35: 10/05(日)10:50 ID:YF7wvbQm(1/4)調 AAS
たぶん想定されている使われ方が結構違うんだろうね。

DBの場合、事前に設計されたテーブルを前提としているから、テーブル設計で失敗していない限りそもそもpivotとかunpivotとかが必要になる機会自体そんなにないと思うのよ。古いシステムからデータを取り込んだりするときくらいじゃない? だからpivot / unpivot の利便性をメリットとして挙げられてもあんまりピンと来ない感がある。
パワークエリの方は、どちらかというと表っぽいデータ(いわゆる野良データも含む)をアドホックに処理できることに重点を置いているんでしょう。そういう場面ならpivot / unpivot が簡単にできると便利というのは分かる。

>>34
イとかキって何だと思ったが、イロハのイとキホンのキか。34を読んだだけでこれに気付いたのって凄くない?w
36: 10/05(日)10:51 ID:R8xFs1sO(1)調 AAS
そんなのVBAだろうとPQだろうと同じ
当たり前
当たり前のこと毎週書いてろw
37: 10/05(日)11:44 ID:knUkubLb(10/14)調 AAS
元データがちゃんと正規化されているリスト表だけだったらSQLでも十分
それはその通りです

でも世の中残念ながらそうじゃないんです
これはなぜETLというツールがいくつもあるのかという話です
大量の列があるデータをソフトウエアがCSVで出力されるケースを私は実際に知っているのです
そしてその時に私はUnPivotを知りました
38: 10/05(日)11:49 ID:knUkubLb(11/14)調 AAS
これだけは言えると思うのは
確かにSQLは1列に一つの種類の値、型のデータを扱うのなら最適化されているので高速ですが、そうでない場合、データのクリーニング、前処理が必要は場合は必ずしもそうではないと思います

あとデータソースは各種サーバーに出来るので、まずはお試しでやってみる、という叩き台やテストを「お手軽に」する事もできます
39: 10/05(日)12:15 ID:YF7wvbQm(2/4)調 AAS
そりゃデータの整形や前処理はSQLじゃなくて、ホスト言語の方の守備範囲だからね。
だから整形・前処理の部分で比較するなら、「コードを書く必要があるけど汎用性の高いホスト言語(JavaScriptとかPythonとか)」と、「ノーコードで済んで利便性が高いけどMSにロックインされるパワークエリ」という比較になるんじゃない?
表っぽいデータをアドホックに次々と分析していくような用途ならパワークエリの方が便利だろうし、永続的なデータを扱うならSQLの方が安心感がある。

フォーマットが完全に固まっているならVBAも選択肢に入ってくるだろうし。
40
(1): 10/05(日)12:58 ID:Gl792nZh(2/3)調 AAS
>>29
UNPIVOTはCHOOSECOLSとVSTACKで余裕
41
(1): 10/05(日)13:40 ID:Gl792nZh(3/3)調 AAS
>>29
=LET(
UNPIVOT,LAMBDA(table,values,
DROP(REDUCE(0,SEQUENCE(COLUMNS(values)),LAMBDA(a,v,
LET(
value,INDEX(values,v),
VSTACK(a,HSTACK(EXPAND(value,ROWS(table),,value),CHOOSECOLS(table,v)))
)
)),1)
),
UNPIVOT(C1:G10,{"月","火","水","木","金"})
)
42
(1): 10/05(日)14:06 ID:beeJ4mT2(6/6)調 AAS
サーバーも持ち合わせずVBAも禁止されてる企業って書いてみたり
とあるアプリが大量の列があるCSVを吐き出したケースがあって、それでUnpivotを知ったとか書いてるし
やっぱ新しいおもちゃに大興奮してるとしか読めない
野良と言えどもサイバー空間上にあるデータは、まがりなりにもDBのお作法に沿った整形されてるんじゃないのか?
WEBページやクラウドデータとかに接続するなら尚更
手強い野良っつーのは社内に保管されてる過去20年のデータみたいな意味で、>>30 に書いた例なんかかわいい方
とも思えるファイルがゴロゴロしてることもある それを上から十行ぐらいナナメ読みして憶測で判断してたら
しっぺ返し喰らう
その大量に吐き出されたCSVだって、実はD列のデータだけじゃ無くてAA列だのBB列だののデータと組でようやく意味を為す
なんてぇケースだってごまんと見て来た キとかイとかw データを扱うお作法は蔑ろにしてはいけない
データクレンジングとか昨今は呼ぶのか? それは機能に任せる前に、人間の目で手でまずは洗浄しておくべき
キカイは命令された事しかやらない・できない その命令する側が手抜きしてたら手抜きされたデータの塊になるだけ
43: 10/05(日)14:30 ID:YF7wvbQm(3/4)調 AAS
>>40-41
そういうのは余裕とは言わないw 凄いとは思うけど、人が読んだり書いたりするコードじゃないでしょ。AIに生成させるとかならありかもしれないが。

2020年代になってから関数が大量に追加されているのって、AI使用が視野に入っているからなのかなとちょっと思った。
44: 10/05(日)19:35 ID:knUkubLb(12/14)調 AAS
>>42
複合キーを利用する、複数列の値を使用する、結合するという事はできますよ
45
(1): 10/05(日)20:29 ID:knUkubLb(13/14)調 AAS
そもそもExcelになぜPythonが導入されたかと言うと、パワークエリーで前処理、集計したデータを非公式に導入したPythonでさらに高度な集計を行う、と言う事が行われていたからです。
そう言う事が行われているくらい非常に協力な機能なのです。
JavaScriptのコードも動かせます。
46
(1): 10/05(日)21:56 ID:bIl70Ycb(1)調 AAS
言いたいことがちょっとわからない

Python in Excelの話をしてるの?
Officeアドインの話をしてるの?
Officeスクリプトの話をしてるの?
47: 10/05(日)22:15 ID:knUkubLb(14/14)調 AAS
>>46
全てパワークエリーの話です
48
(1): 10/05(日)22:33 ID:YF7wvbQm(4/4)調 AAS
パワークエリって、(SQLの代替というよりも)データフレーム系のライブラリ(PythonでいうところのPandasとか)に近い機能なんじゃないかな。自分はデータフレーム系のライブラリってほとんど触ったことがないから分からないけれど。
49
(1): 10/05(日)23:04 ID:eANUHAz5(1)調 AAS
>>45
へー、MSがPythonを組み込んだ理由の客観的証拠を示してごらん
50: 10/06(月)02:26 ID:jIkfS85a(1)調 AAS
>>49
キチガイの妄想なんだから答えるわけないだろw
51: 10/06(月)08:37 ID:/QQ+j/LM(1)調 AAS
VBAをPythonに置き換えようと開発進めてたけど、
サードパーティーのアドオンが優秀なので公式でやる必要が無くなった(ここまでMS開発者ブログより)
でも成果物を使わないのも勿体ないから使ってる(俺の妄想)
ってことだろ
52: 10/06(月)09:38 ID:CrcLFeiU(1)調 AAS
>>48
普段SoR系のシステムばかり見てる人には馴染みのない話かもしれないけど、
ビジネスアナリティクスの世界では、SQLは汎用的なデータ分析ツールとして結構カジュアルに広く使われているのです
53: 10/06(月)10:52 ID:0TYeR8/V(1/2)調 AAS
まーた新しいオモチャ拡げ出したぞw SoR系だからSQLが重宝されてきたんだろうに
アナリティクスなんて概念、後発も後発 まあ、SoRに於いてSQLでAnalyticsしてた
という見方もできるわけで、もはや何言っても相手に響かないからお口チャックしときなよ
54
(1): 10/06(月)11:44 ID:sh+WI5Ke(1)調 AAS
話の繋がりがよく分からないが、そういう分析方面でならパワークエリも強みを活かせるということであれば、適材適所ってことでいいんじゃない? カジュアルかつアドホックに色々できるということが強みなんだろうから。
55: 10/06(月)11:56 ID:6luOortV(1)調 AAS
相変わらずVBAの話題以外では盛り上がるVBAスレ
56: 10/06(月)13:59 ID:+9LX7loy(1)調 AAS
>>54
そう、パワークエリの主用途である分析においては、その役割はSQLとPythonの両方と大きく重なる
そのうちどれが優れているという話ではないが、VBAが大きく劣ることは確かだな
57: 10/06(月)16:51 ID:0TYeR8/V(2/2)調 AAS
本気でそう思ってるなら、なんでここに居るし
ソッチのスレに常駐してるなり新スレ立てるなりして、ソッチで続けてればいいのに
単にケンカ売りに来てるん?
58: 10/06(月)20:20 ID:eyP2NojD(1)調 AAS
本物のサーバーに対してSQLを叩いた方が高速なのも
Pythonで複雑な計算を行う方が高速(素のPythonのループ処理はVBAより遅い)なのも一切否定していません
私はただExcelしか使用できない環境でも便利な機能がありますよ
と言っただけです
59: 10/07(火)10:01 ID:vEgtxFhe(1)調 AAS
社会人として言い訳はみっともない やっぱりおもちゃを片付けられないしんのすけレベル
(あなた達は知らないだろうけど)Power Query っていう便利な機能がありますよ、とでも主張したかったのか?
VBAスレで? ビジネスSoft板のExcel相談所辺りで言い募るならまだしも、ここの住人なんかはとっくに試用してる
だろうに 試したうえでケースバイで使う事もあるかも知らんけど、実務でそんなに活用するシーンも無いな
という肌感覚じゃあ無いのか 取り敢えずVBAでSQL書いて目的は達成できているんだし
ネット上とかの得体の知れない大量のデータに対してザッピングしてみて有用なデータかどうか、予め毒見してみて
実際に利用するかどうか判断の元にするような時には使ってみるのも楽だろうけど
Power Query 至る所でバンバン使い倒してますよ、という実務者カモン 事例提示プリーズ
60: 10/07(火)10:38 ID:msD1NTB5(1)調 AAS
何でスレチのPQにいつまでも係ってんだよ
>>15がExcel自動化云々言ったところでスレチはスレチ
そも自動化ではない
スルー力なさ過ぎ
61: 10/07(火)15:16 ID:bK/qJy7b(1)調 AAS
いつもの境界知能の人だろ
62: 10/07(火)20:10 ID:S93aMo2F(1)調 AAS
そうね
いつもの境界知能の人が必死にAIの回答をコピペしてる感じだね
63: 10/09(木)12:42 ID:M3Iz7qJA(1)調 AAS
仕事できなくて年収低いんだから
パワークエリ使おうがVBA使おうがたいしたもんできないよ
64: 10/09(木)17:06 ID:+B8QV1e9(1)調 AAS
はい終了~
65
(1): 10/10(金)06:43 ID:oR3uH8u+(1)調 AAS
質の高い回答はなく、誹謗中傷しかないのはなぜなのでしょうか?
66: 10/10(金)08:26 ID:hdfpIN1/(1)調 AAS
・質が低く適切な回答をできない質問だから
・質問は妥当だが答えられない、でも何か言いたい質の低い回答者がいるから
大抵はこのどちらから
67: 10/10(金)09:13 ID:XIv0t+FX(1/2)調 AAS
自分はOFFICEスクリプトって使ったことないんだけど、VBAとは適宜棲み分けがされそうな感じ? それともVBAを置き換える方に行きそう? 一応、VBAにできること全てができるわけではないってことは聞いているけど。
68: 10/10(金)09:56 ID:cInZxt5e(1)調 AAS
>>65
貴方が質の高い回答をしないのはなぜ?
69: 10/10(金)10:44 ID:MfSuKUVs(1)調 AAS
OFFICEスクリプトは、あくまでも定型業務の自動化、しかもOneDrive上で を目指してるので
まだまだ発展途上だし
何より、OneDrive自体が今のところ各端末のパフォーマンスを下げる最大要因に成り果ててるので
様子見勢が多いのだと思われ(何でそこまでMSに加勢しなきゃならんのか、と)
70: 10/10(金)11:49 ID:+bT2e97Y(1/2)調 AAS
なるほど、OFFICEスクリプトはまだ全然って感じなのね。
VBAは構文が古くさいと言われることが多いけど、少なくともその点を理由としてOFFICEスクリプトに移行しようという動きはあまりないということか。やっぱりクラウドベースでっていうところが想像以上にネックになっているということなのね(たしかにちょっと試してみようと思ったときに、クラウドで云々と言われたら面倒くさそうとなるのは分かる気がする)。
71: 10/10(金)15:30 ID:YT8cXARa(1/2)調 AAS
いやいや、それは逆
そもそもデータが散らばってるからそれを纏めるためにVBAを使うことはよくあって、
VBAのユースケースとしてはかなり大きなウェイトを占めるんだよ
クラウドだと共有ブックを直接編集すればいいので、少なくともそういう用途のVBAのニーズは大幅に減る
72: 10/10(金)17:15 ID:rdtXmqP1(1)調 AAS
Officeスクリプトはアカウントに紐づくからVBAのようなファイル1つで済む手軽さがない
73
(1): 10/10(金)17:46 ID:+bT2e97Y(2/2)調 AAS
ブックの共有とかって全然しないから、そこら辺の認識はなかったな。クラウドというよりOneDriveとか管理のされ方に問題があるって感じなのかな。
74
(1): 10/10(金)18:31 ID:DrrVl6np(1)調 AAS
そも動かすプラットフォームが違うんだからどちらを使うか選ぶシーンが存在しない
75: 10/10(金)18:46 ID:YT8cXARa(2/2)調 AAS
>>73
裁量の問題だよ
未だにVBAに人気がある本質的な理由は、既存のワークフローを全く変えることなく勝手に自分の手元だけで作業を効率化できるから
一方で、クラウド共有を前提にしてなお残る面倒な単純作業はOfficeスクリプトで自動化しましょうとなれば、みんなのワークフローを見直さなきゃいけないでしょ
それは>>74のように目的ではなく与えられた作業に対してのみ責任を持っているような人達にはハードルが高すぎるわけ
76
(1): 10/10(金)22:45 ID:6xVCTbsk(1)調 AAS
またいつもの境界知能者が荒らしてる
77
(1): 10/10(金)23:20 ID:XIv0t+FX(2/2)調 AAS
理由はともかく、OFFICEスクリプトは少なくとも現状では習得上の優先順位が高い感じではなさそうね。
VBAの構文が苦手というタイプの人はPytnonのxlwingsとかに流れる感じなのかな。あれはPytnon越しにVBAのオブジェクトをいじっているようなものなので、実質VBAみたいな感じだけど。
78: 10/11(土)08:45 ID:X9HmeuU+(1)調 AAS
>>76
傍から見てると、あんたもソッチにズブズブ沈み込んでる風に見えるがな
もそっと、知恵のある発言するなり、若しくはボケだのギャグだの
ユーモアやペーソス混ぜたような発言とかを心掛けてもらえると、コッチも読んでて心地いいんだが
79: 10/11(土)09:06 ID:iR3N7kKL(1)調 AAS
xlwingsいいよな
調子に乗って沢山呼ぶと糞遅いけど
80: 10/11(土)12:07 ID:Yl843iVz(1)調 AAS
>>77
その理屈だとCOMはVBAってことになるな
なんだよVBA滅茶苦茶使われてるんじゃん
81: 10/16(木)14:30 ID:oDClVh0R(1/2)調 AAS
プルールのひとつめっけ
https://dl.ndl.go.jp/pid/1077355/1/31
日本全国諸会社役員録という本、アドレスはあくまでも31/914ページという意味
最初から見てっても中々面白い 東京府だし、並び順はいろは順だし ヰもヱもあるし
ビルデングもビルヂングも混在 日本フヰラメンドあり日本フアイアツト自動車あり
ブルドックソースが何だって?
82: 10/16(木)15:17 ID:oDClVh0R(2/2)調 AAS
https://dl.ndl.go.jp/pid/1136907/1/100
83: 10/17(金)06:28 ID:Qpm+e9K0(1)調 AAS
6分で終わる簡単な作業をいつもやってるからと思ってExcel VBAにしたら4時間もかかった
40回でペイする計算
1ヶ月に1回の頻度として3年4ヶ月でペイする計算
1ヶ月以上ブランクがあって作るのに時間がかかった
これを作るときに以前作った別のものをまた作ってしまったことに大体完成してから気づいた
使わないと作ったことを忘れる
役に立つものでこれからも使うか使わないか前もって予測できないから作るしかない
そのなかに使うものが出てくるし使わないものも出てくる
ちょこちょこ作るのは効果があると分かってるが本当に効果があるか愚痴を言いたくなった
84: 10/17(金)08:01 ID:lzj//9Gm(1)調 AAS
なんたるプログラミング能力が低さよ
85: 10/17(金)09:21 ID:2jUaiXhz(1)調 AAS
まあスキルも積み重ねが大事
あと人為的ミス防止やデータが多い時も速いことなども目的にしないとね
若いなら転職の小ネタにもできる
86: 10/17(金)16:13 ID:IG/te/XB(1)調 AAS
イレギュラーなデータとかエラー処理とか完璧にやろうとするとメインの処理は簡単でもめちゃくちゃ長いコードになったりする
87
(1): 10/17(金)18:48 ID:ZOdCVHpQ(1)調 AAS
でも他人に使わせる前提だとそこがすごく大事なんだよな
自分用を手早く作れるのはそこ端折れるからってのがある
88
(1): 10/18(土)14:30 ID:ViyQQZbE(1/5)調 AAS
質問です

・テキストボックスを多用したユーザーフォーム群を作っていて、IMEMode変更を多用している
・一部vbIMEModeKatakanahalf(以下半カナ)に設定してある
・フォームを使い終わったとき、IMEModeOnが半カナに固定されてしまう(要するにA↔半カナ状態に)

そうなってしまうのは仕方ないけど、フォームを抜ける時にA↔全かなの状態に戻したい
ということでTerminate処理で全かなのBoxにSetfocusしてから抜けるようにしてみたところ、ステップインなら成功するけど通しで処理させると失敗してしまう…

なんかいい方法ありませんか?
全かなBoxのみを設置した仮フォームを呼び出してすぐ閉じるくらいしかないのかなぁ…
89: 10/18(土)14:31 ID:ViyQQZbE(2/5)調 AAS
それこそ>>87の言うように自分で使う分には「ちと面倒だけどまあ戻せばいいだけ」で済むけど、PCに疎い人達にも使わせるから「なんかひらがなが打てなくなったんだけど~」って言われるのは目に見えてるので…
90
(1): 10/18(土)14:46 ID:ViyQQZbE(3/5)調 AAS
連レスすみません

「基本的には英数字だけど、半カナも打つことがある」Boxもあるので、「A↔半カナ状態のIMEModeOff」にするとかもできれば理想です
91
(1): 10/18(土)17:07 ID:+vuE6Mxs(1)調 AAS
>>88
TerminateだとSetFocusしようにもすでにテキストボックスが存在しないんじゃないの?
× Terminate
○ QueryClose
92
(1): 10/18(土)19:05 ID:0zFTkOmI(1)調 AAS
>>90
自由に入力させて、入力後に判定処理入れるのがいい
93: 10/18(土)19:06 ID:ViyQQZbE(4/5)調 AAS
>>91
レスありがとうございます
QueryCloseでもダメでした…

なるはやで実用化したかったので、とりあえずは全かなBoxを置いたダミーフォームを一瞬出現する形でお茶を濁しました…
でも自分でもかなり使うモノだから気持ち悪さが拭えないので、可能ならどうにかもっとスマートに処理したい…
94: 10/18(土)19:17 ID:ViyQQZbE(5/5)調 AAS
>>92
ありがとうございます
そのまま打ってF8やF10ってのを覚えてくれれば楽なんですけどね…
PC疎い民もさすがに半角全角キーを押すことくらいは分かるので、基本的にはIMEModeOffだけど半角全角キーを押すと半カナになるってのがやりたいんです

我ながら駄文すぎて分かりにくかったけど、要約するとIMEModeOn時の行き先を自在に操りたいってことですね
95: 10/19(日)10:59 ID:/YxBx4q/(1)調 AAS
テキストボックスのイベントでExitにIMEを元に戻す記述を書く
https://www.javadrive.jp/excelvba/userform/index93.html
sheet上でも出来るとは まぁ、知らん奴が使ったらヒステリー起こしそうだが
https://infith.com/system/excel/ime_validation/
96
(3): 10/28(火)09:16 ID:Kk67eWAx(1)調 AAS
Worksheet_BeforeRightClickを素早いクリックに反応させる方法ってありますか?
例えば右クリックでカウントアップするような場合、ゆっくりクリックしないと取りこぼすので、それをできるだけ軽減したいという話です
97: 10/28(火)11:49 ID:BUlcRJ6d(1)調 AAS
>>96
ワークシートのイベントはどれも動作が遅い
透明なオートシェイプをセルの上に重ねて、オートシェイプのClickイベントを使えば16連射も可能になる
ただし右クリックでは動作しない
98: 10/28(火)13:00 ID:NppxA0uZ(1)調 AAS
>>96
素早いクリックがダブルクリックと判定されてるかもね
99: 10/28(火)16:30 ID:xLHeS3+n(1/2)調 AAS
そんなに連打が必要な業務なのかわからんけど
マウスも一枚岩じゃ無いから(個体によって性能違ったり、有線無線で変わるかも知らんし)
ユーザーフォームとかにオプションボタン並べて、○1 ○5 ○10 ○25 ○50 ・・とかを事前に選択してから
右クリさせるのはどうか 二度手間三度手間が嫌だとクレーム来るのとトレードオフに成るが

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True ' Prevents the default right-click menu

Application.ScreenUpdating = False ' Turn off screen updating

' Your optimized code here, e.g., displaying a custom menu or performing actions
' ...
Dim i As Integer

For i = 0 To 100
' ステータスバーの表示が更新されない場合は、コメントをはずす
'DoEvents
' ステータスバーに出力
Application.StatusBar = "処理回数:" & i

Next
' ステータスバーのクリア
'Application.StatusBar = False
Application.ScreenUpdating = True ' Turn screen updating back on
End Sub

その辺で拾った野良のコードの合体モンだけど、回数:100にするのも一瞬なんだし
100: 10/28(火)18:40 ID:k7xgJ8GR(1)調 AAS
そもそも右クリック連打が必要な設計を見直したほうが早いんじゃね
101
(1): 10/28(火)19:08 ID:HpHj+cai(1)調 AAS
よく読め、連打が必要な訳じゃないと思うぞ
俺も似たような問題にぶち当たったことがあるから言いたいことは分かる
俺の場合はユーザーフォームだったからなんとでもやりようがあったけど、シートイベントでどうすべきかは思い付かんなぁ

ユーザーフォームなり透明オブジェクトなりで代用できそうか考えてみるのは大事かもな
102: 10/28(火)19:36 ID:xLHeS3+n(2/2)調 AAS
そうか、迂闊か
そういやチャタリング・チェックできるサイトとかあるから、そこでチェックもありか
103: 10/28(火)20:59 ID:WbU161W5(1)調 AAS
>>101
ダブルクリック判定にひっかかってるのかもしれんが、ユーザーフォームも単純な連打はうまく処理できない
104
(1): 10/28(火)21:36 ID:uh3txXo7(1)調 AAS
要はこれっしょ

VBA フォームのボタンの反応が遅い理由と対策 - t-hom’s diary
https://thom.hateblo.jp/entry/2017/12/07/215055

これと同じようなことをワークシート右クリでやりたいってことやろ?
ワークシートだと安易に左クリックにはできない事情もあったりするし、こういう感じでフォームとかで代用できないか検討してみたら?
105
(1): 10/28(火)21:48 ID:xheP7Ub+(1/2)調 AAS
レス遅れてすみません!
まさに>>104さんの言う通りです!
より具体的に言うと5種類の値から選ばせたくて右クリックで順繰り変更するマクロを作ってたんですが、例えば4番目の値を選びたいときなんかに慣れてくるとどうしても「カチカチカチカチ」って押してしまって反応が悪いと言われたのでどうにかしたくて
反応が悪いで済めばまだいいけど、それで間違った値のまま提出されたりすると困るのだ
106: 10/28(火)21:49 ID:xheP7Ub+(2/2)調 AAS
困るのだ じゃなくて 困るので です!!
107: 10/28(火)21:57 ID:DelTjWwd(1)調 AAS
バカボンのパパ(´^ω^)
108: 10/28(火)22:41 ID:wDWtv1wu(1)調 AAS
>>105
マウスじゃなくキーボードでトグルしていくUIはいかが?
こんなの(INSキーでA1セルの値が増える)

Sub Init()
Application.OnKey "{INSERT}", "ThisWorkbook.OnKey_Ins"
End Sub

Sub OnKey_Ins()
Range("A1").Value = Range("A1").Value + 1
End Sub
109
(1): 10/29(水)02:29 ID:SoMHk0As(1)調 AAS
馬鹿は馬鹿な頭で考えた馬鹿な方法に固執する例
110: 10/29(水)06:43 ID:0NTgZ+aL(1/2)調 AAS
これでいいのだ
111: 10/29(水)06:46 ID:0NTgZ+aL(2/2)調 AAS
>>109
この人カバの逆立ちなのだ
112: 96 10/29(水)07:39 ID:K2GlQHDP(1)調 AAS
代案ありがとうございます!
やはり何かしらの大体策を考えるしかないですかね
右ダブルがキャッチできれば解決するんだけどなぁ
113: 10/29(水)18:26 ID:GMHlOV3c(1)調 AAS
カバは逆立ちしてもカバなのだ
114: 10/30(木)03:56 ID:k5qTIKM4(1)調 AAS
【高市自民】自維連立に衝撃 維新トップに赤旗砲「重大疑惑」2千万円絡む疑惑と 共産党Xが「だから裏金自民党とも組めるのか」と攻撃 説明求める声
https://news.yahoo.co.jp/articles/89adcdb576a46579b90da08ae8924ad11c08b470
115: 11/01(土)03:09 ID:2yW7ZPbn(1)調 AAS
環境構築も配布の容易さも世の中の情報量も加味するとpythonなんて比較対象にならんな
特定のシステムでVBAに勝てるものはないわ
運用される規模は部署内程度になゆけどさ
116
(1): 11/01(土)10:44 ID:kVMvyffB(1)調 AAS
マクロを起動するための各種コントロールは今後はフォームを使うべきなのか
これまで作ってきたActiveXコントロールは置き換えていくべきなのか
117: 11/01(土)10:47 ID:abESDRO+(1)調 AAS
PythonはてっきりVBE上で使えると思ってたからなぁ
ワークシート上の関数とかじゃ使いづらすぎて拍子抜けだわ
118: 警備員[Lv.0][新芽] 11/01(土)16:45 ID:IivztI/y(1)調 AAS
>>116
デフォルトでActiveX無効になったから、置き換えないと支障が出ることが多い
119: 11/01(土)17:42 ID:Hux2CBJ+(1)調 AAS
365に変えてから動かなくなった原因がそれだった
120: 11/01(土)18:59 ID:h6jsjnZZ(1/2)調 AAS
マクロが増えてきてどれがなんのマクロか分かんなくなってきた。間違ったマクロが実行されたEXCELが元に戻らないのも嫌だし、どうしたら良いですか?
121
(1): 11/01(土)19:04 ID:xL3BSUWP(1)調 AAS
うまい具合に人のせいにしてください
122: 11/01(土)19:35 ID:b8gravi3(1)調 AAS
間違ったマクロを実行した時にEXCELを元に戻すマクロを作ればいい
123: 11/01(土)19:53 ID:+zpxt/zr(1)調 AAS
適切なマクロを実行するマクロを作る
124: 11/01(土)20:11 ID:6pe+t0kU(1)調 AAS
AIに丸投げして聞いたらいい
完璧に教えてくれるよ
125
(1): 11/01(土)22:42 ID:h6jsjnZZ(2/2)調 AAS
>>121
採用!
126: 11/05(水)14:44 ID:rUtaLWLS(1)調 AAS
>>125
人のせいであっても現状の問題への対応はしなければならないのではないか
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.418s*