Excel VBA 質問スレ Part84at TECH
Excel VBA 質問スレ Part84 - 暇つぶし2ch1:デフォルトの名無しさん
25/10/01 14:36:42.66 lecUwKjm.net
ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK

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

※前スレ
Excel VBA 質問スレ Part83
スレリンク(tech板)

2:デフォルトの名無しさん
25/10/02 00:16:11.64 ZP5+0H/T.net
2行目2例目

3:デフォルトの名無しさん
25/10/02 02:40:54.02 pZxG7qX/.net
パワークエリは2010ならアドオンで使えるんだから使えるってのは間違ってないよ

4:デフォルトの名無しさん
25/10/02 21:54:27.31 7bD6spim.net
Date.Fromは日付と時刻型を日付のみ型に変換する関数だと思っていましたが、実は引数はAnyでテキストでも数値でも日付と解釈可能ならdateにしてくれるんですね
今までの苦労は何だったんだろう

5:デフォルトの名無しさん
25/10/02 22:49:07.56 GsnxMOm+.net
おそらくスレがないので、すれ違いで申し訳ないのですが、
エクセルVBAはブックごとにマクロを具有しますが、Outlook VBAはどこにマクロを持つのでしょうか
アドインのようなものになるのでしょうか
ggrksと言われそうですが…

6:デフォルトの名無しさん
25/10/02 22:59:10.74 7bD6spim.net
C:\Users\<ユーザー名>\AppData\Roaming\Microsoft\Outlook
らしいです

7:デフォルトの名無しさん
25/10/03 00:42:58.97 Ry5X26EV.net
こっち消化しろよ

Excel VBA 質問スレ Part80(ワッチョイあり)
スレリンク(tech板)

8:5
25/10/03 01:16:30.02 Gclp2QR3.net
>>6
ありがとございます
ちょっと調べてみます

9:デフォルトの名無しさん
25/10/03 05:06:39.02 q4o/CZkj.net
>>7
ワの有無は別スレと見做される

10:デフォルトの名無しさん
25/10/03 09:19:09.56 aZVU66UK.net
積極的にそうすべきというほどの強い意見ではないけれども、現状ワッチョイ ありとなしとを使い分ける需要がさほどないということであれば、先に>>7のスレを消化するというのもありかもね。スレ交代のタイミングでちょうど良いし。

11:デフォルトの名無しさん
25/10/03 13:09:50.91 8sd1VVnl.net
ワに書き込めるわけ無いだろ
いいかげんにしろよ

12:デフォルトの名無しさん
25/10/03 13:30:51.70 rIGt8LUp.net
>>11
そうやってID変えながら荒らす気まんまんやん

13:デフォルトの名無しさん
25/10/03 23:57:43.31 zFNEu+Na.net
ワッチョイ気にするのか…

14:デフォルトの名無しさん
25/10/04 10:49:20.79 xRZ1O4vG.net
前スレで話題に出たパワークエリはM言語という言語でVBAとは相容れない
VBAと連携する方法もないではないがWSHの言語間程度の違いはある
知りたい人が居るならPower Query M言語スレを別に立ててやるべきだと思う

15:デフォルトの名無しさん
25/10/04 13:15:46.24 KBILB/BD.net
>>14
Power Queryだけでスレを立てても知名度が低すぎるから人が集まらないのと、「基本を知ってしまえば後は分からない事は何もない」から「話がすぐ終わる」(泣)
Excel自動化という点で同じなのでここで(震え声)

Excelの関数に正規表現関数が有る事を今思い出した(なければ自作すればいい)
だから今時はもうLeft関数、Mid関数、Right関数で無理矢理やらなくていいんだ。

16:デフォルトの名無しさん
25/10/04 13:53:38.50 HdBE9K3u.net
Excel女子の言い分を真に受けると
URLリンク(exceljoshi.cocoo.co.jp)
必要なひとは使えばいいんじゃね?となる
Excelエキスパートの君らには、あんまし使いどころが無いんだろう

17:デフォルトの名無しさん
25/10/05 06:02:00.45 knUkubLb.net
みんながみんな大量のデータ集計や高度な集計をやるわけでは無いからPower Queryを必要とする人はいないと言われれば確かにそうですね。
だけどExcelで集計をすると言うのであればVBAでは無理です。

18:デフォルトの名無しさん
25/10/05 07:06:17.38 MKhcYwCd.net
VBAでも無理ではないでしょ
ゴミのように書きにくく読みにくく遅いだけで

19:デフォルトの名無しさん
25/10/05 07:10:15.40 beeJ4mT2.net
Excel女子でもVBAで出来てるから「無理です」は言い過ぎ VBA女子ってのも居るそうだ
URLリンク(exceljoshi.cocoo.co.jp)
何であれ、事前の下拵え(前準備)がだいじだと説いてる その通りだけど具体例は有料っぽい
まぁ、女子に頼らなくてもそこら中に転がってるけど
URLリンク(note.com)

20:デフォルトの名無しさん
25/10/05 07:40:58.07 DpQo6Ojc.net
VBAでやるときは各レコードをどこにどう書くかということをガチガチに固めておく必要があるのに対し、DBとかパワークエリだとそこら辺が抽象化できるイメージかなぁ。

21:デフォルトの名無しさん
25/10/05 07:58:20.71 knUkubLb.net
>>20
本当にそれなんですよ
パワークエリーやSQLなら列同士の集計やグループバイ、Join、UnPivotができるけど、VBAでUnpivotは流石にキツい

22:デフォルトの名無しさん
25/10/05 08:28:28.60 Gl792nZh.net
LET、XLOOKUP、FILTER、GROUPBYあたりを駆使すればワークシート関数でも結構いける
わざわざ別アプリ起動してマイナー言語でとはならないかな・・・

23:デフォルトの名無しさん
25/10/05 08:39:23.86 beeJ4mT2.net
それこそ事前の準備で済む話 いきなり大容量のデータに接続してあれこれしようとするから混乱する
結果から想定されるデータ群に仕様を整えておくのが先ず最初にすべきこと
ADO が非推奨と成り果てたからVBA内でSQL使おうにも先細りなんだろうけど、まだやれない訳じゃ無いし(最新版じゃ無理なのか)
何であれ、いきなり野良データに接続してあんなことやこんなことしようとする方が無謀 データの事前整形はイロハのイ

24:デフォルトの名無しさん
25/10/05 09:10:22.53 knUkubLb.net
>>23
その事前のデータ整形がパワークエリーなんですよ
そもそもPower BIはパワークエリーとパワーピボットの二つが合わさった製品だし
ADOが非推奨だとは知らなかったです
やっぱりVBAはダメダメなんですね

25:デフォルトの名無しさん
25/10/05 09:12:20.05 knUkubLb.net
>>22
GROUPBY関数は最近になってやっとM365だけで使える様になった引数の翻訳も終わっていない関数じゃ無いですか
しかもGROUPBYに渡す元データのUnPivotはどうするんですか?
UnPivot関数はありませんよ?

26:デフォルトの名無しさん
25/10/05 09:18:37.32 knUkubLb.net
パワークエリーは
let
変数名 = 関数
in
ただこれだけです
各ステップ名にそれぞれの関数の戻り値(型)が代入されるだけです
一体どれだけ簡単なのかと
名前付きfunction関数なら
(変数名 型) =>
let
変数名 = 関数
in
ただこれだけ

27:デフォルトの名無しさん
25/10/05 09:28:11.50 knUkubLb.net
会社で本格的なデータベースを構築しているとか、サーバーが使える、あるいは業務にしているのならそりゃSQLを推奨しますよ
しかし日本企業がそんなにITの導入をしているとは私はまったく思えません
だから当然必然的にExcelの標準機能一択になるわけです
世の中の企業にはVBAを禁止している会社もあると聞きます
だったら尚更パワークエリー
あとSQLはETLではないからSQLにできないことも多い

28:デフォルトの名無しさん
25/10/05 09:41:07.01 beeJ4mT2.net
UnPivot て、Excelの原始的な機能で、貼り付け時に行/列入れ替え 貼り付けだけで済むんじゃないのか?
そんな単純じゃない!もっともっと厳しいデータなんだ!ってことなのか?
取り込んだデータが行列逆だったら、真っ先にそれするもんじゃないのか? 基本のキ?

29:デフォルトの名無しさん
25/10/05 09:51:23.22 knUkubLb.net
>>28
UnPivotと行列入れ替えは全くの別物ですよ
行列入れ替えは本当にただ
 列


 行

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

という表があればその各月のデータを
エリア列|月列
とリスト表形式に整えてくれます
これ無くして高度な集計はできません

30:デフォルトの名無しさん
25/10/05 09:51:47.38 beeJ4mT2.net
社内にサーバー(NAS含む)も仕立てていない企業が蓄えてる大容量のデータって
いや、Power Query を否定するつもりは無いけど、今のExcelの標準の機能で殆ど賄えやしないか?
ものっそ古いデータもあって、当時はデータの統一性もまばらで、セル内改行してるだの
文字の位置合わせにスペース使ってるだの、予想外のデータだったりすることもあるんだから
イロハのイ、基本のキは守っておいて損は無いんだけど

31:デフォルトの名無しさん
25/10/05 09:58:16.44 QIz/HuGJ.net
自分はSQL派なので事前に定義されたテーブルにデータを入れておくという考え方の方になじみがあるけど、表っぽいデータなら大抵はうまい塩梅に整形できますぜということならパワークエリにもそれなりに活用場面は出てくると思う。ただ、クエリ部分をSQLからパワークエリに置き換えるのはちょっと躊躇を覚えるかな。標準規格があって、ペンダーが複数いるという安心感はかなり大きいので。
SQLを除いてExcelおよびその関連機能であるVBA、パワークエリだけで考えたときに、それぞれどういう長所・短所があるかというのはそれはそれで1つの議論ではあるね。

32:デフォルトの名無しさん
25/10/05 10:08:01.77 knUkubLb.net
なんでVBAで流石にUnPivot旬は難しいと言えるかと言うと、UnPivotする為にはそれぞれの項目とその数に応じて大量に行の挿入を行う必要があるからです

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

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

サーバーがある、本物のSQLが使用できる環境があると言うのなら当然止めません
既に正規化されているデータだけを扱うと言うのであれば尚更でしょう
しかし世の中その様なデータばかりを扱うとは到底思えません

33:デフォルトの名無しさん
25/10/05 10:09:32.03 knUkubLb.net
>>31
表っぽいデータなら「大抵」ではなく、「全て」うまい塩梅に整形できますぜ です
なぜならそれがETLだからです

34:デフォルトの名無しさん
25/10/05 10:30:14.94 beeJ4mT2.net
その「ボタンぽちぽち」で出来てしまう点を懸念してンだけどねw
野良データがガサツでも、ぽちぽちしたらちゃんとした表に仕上がりました! で、そのデータの
信ぴょう性とかファクトが担保されるのか?という面で、イとかキは疎かにしちゃいけない、と
で、そのイとかキをしてる最中に「これとこれをこうすりゃこう仕上がる」という、データ加工の
手順や経緯や法則がきちんと把握できてく(それが判ればほぼほぼ基本機能で済むケースが多いのも現実)

そういう基盤がキチンと制作者も受け取る側も共有出来てるなら、どんなアプリ使おうとも構わんけど
作る側がその辺ないがしろにして「この機能サイコー!」だけで盲信して得意満面に仕上げてきた表ほど
役に立たないものも無いってのも現実 まあ、老婆心だけだけどw

35:デフォルトの名無しさん
25/10/05 10:50:37.84 YF7wvbQm.net
たぶん想定されている使われ方が結構違うんだろうね。

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

>>34
イとかキって何だと思ったが、イロハのイとキホンのキか。34を読んだだけでこれに気付いたのって凄くない?w

36:デフォルトの名無しさん
25/10/05 10:51:30.92 R8xFs1sO.net
そんなのVBAだろうとPQだろうと同じ
当たり前
当たり前のこと毎週書いてろw

37:デフォルトの名無しさん
25/10/05 11:44:07.60 knUkubLb.net
元データがちゃんと正規化されているリスト表だけだったらSQLでも十分
それはその通りです

でも世の中残念ながらそうじゃないんです
これはなぜETLというツールがいくつもあるのかという話です
大量の列があるデータをソフトウエアがCSVで出力されるケースを私は実際に知っているのです
そしてその時に私はUnPivotを知りました

38:デフォルトの名無しさん
25/10/05 11:49:26.34 knUkubLb.net
これだけは言えると思うのは
確かにSQLは1列に一つの種類の値、型のデータを扱うのなら最適化されているので高速ですが、そうでない場合、データのクリーニング、前処理が必要は場合は必ずしもそうではないと思います

あとデータソースは各種サーバーに出来るので、まずはお試しでやってみる、という叩き台やテストを「お手軽に」する事もできます

39:デフォルトの名無しさん
25/10/05 12:15:13.64 YF7wvbQm.net
そりゃデータの整形や前処理はSQLじゃなくて、ホスト言語の方の守備範囲だからね。
だから整形・前処理の部分で比較するなら、「コードを書く必要があるけど汎用性の高いホスト言語(JavaScriptとかPythonとか)」と、「ノーコードで済んで利便性が高いけどMSにロックインされるパワークエリ」という比較になるんじゃない?
表っぽいデータをアドホックに次々と分析していくような用途ならパワークエリの方が便利だろうし、永続的なデータを扱うならSQLの方が安心感がある。

フォーマットが完全に固まっているならVBAも選択肢に入ってくるだろうし。

40:デフォルトの名無しさん
25/10/05 12:58:00.67 Gl792nZh.net
>>29
UNPIVOTはCHOOSECOLSとVSTACKで余裕

41:デフォルトの名無しさん
25/10/05 13:40:37.24 Gl792nZh.net
>>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:デフォルトの名無しさん
25/10/05 14:06:08.15 beeJ4mT2.net
サーバーも持ち合わせずVBAも禁止されてる企業って書いてみたり
とあるアプリが大量の列があるCSVを吐き出したケースがあって、それでUnpivotを知ったとか書いてるし
やっぱ新しいおもちゃに大興奮してるとしか読めない
野良と言えどもサイバー空間上にあるデータは、まがりなりにもDBのお作法に沿った整形されてるんじゃないのか?
WEBページやクラウドデータとかに接続するなら尚更
手強い野良っつーのは社内に保管されてる過去20年のデータみたいな意味で、>>30 に書いた例なんかかわいい方
とも思えるファイルがゴロゴロしてることもある それを上から十行ぐらいナナメ読みして憶測で判断してたら
しっぺ返し喰らう
その大量に吐き出されたCSVだって、実はD列のデータだけじゃ無くてAA列だのBB列だののデータと組でようやく意味を為す
なんてぇケースだってごまんと見て来た キとかイとかw データを扱うお作法は蔑ろにしてはいけない
データクレンジングとか昨今は呼ぶのか? それは機能に任せる前に、人間の目で手でまずは洗浄しておくべき
キカイは命令された事しかやらない・できない その命令する側が手抜きしてたら手抜きされたデータの塊になるだけ

43:デフォルトの名無しさん
25/10/05 14:30:19.32 YF7wvbQm.net
>>40-41
そういうのは余裕とは言わないw 凄いとは思うけど、人が読んだり書いたりするコードじゃないでしょ。AIに生成させるとかならありかもしれないが。

2020年代になってから関数が大量に追加されているのって、AI使用が視野に入っているからなのかなとちょっと思った。

44:デフォルトの名無しさん
25/10/05 19:35:04.95 knUkubLb.net
>>42
複合キーを利用する、複数列の値を使用する、結合するという事はできますよ

45:デフォルトの名無しさん
25/10/05 20:29:32.36 knUkubLb.net
そもそもExcelになぜPythonが導入されたかと言うと、パワークエリーで前処理、集計したデータを非公式に導入したPythonでさらに高度な集計を行う、と言う事が行われていたからです。
そう言う事が行われているくらい非常に協力な機能なのです。
JavaScriptのコードも動かせます。

46:デフォルトの名無しさん
25/10/05 21:56:29.73 bIl70Ycb.net
言いたいことがちょっとわからない

Python in Excelの話をしてるの?
Officeアドインの話をしてるの?
Officeスクリプトの話をしてるの?

47:デフォルトの名無しさん
25/10/05 22:15:43.84 knUkubLb.net
>>46
全てパワークエリーの話です

48:デフォルトの名無しさん
25/10/05 22:33:36.02 YF7wvbQm.net
パワークエリって、(SQLの代替というよりも)データフレーム系のライブラリ(PythonでいうところのPandasとか)に近い機能なんじゃないかな。自分はデータフレーム系のライブラリってほとんど触ったことがないから分からないけれど。

49:デフォルトの名無しさん
25/10/05 23:04:56.42 eANUHAz5.net
>>45
へー、MSがPythonを組み込んだ理由の客観的証拠を示してごらん

50:デフォルトの名無しさん
25/10/06 02:26:33.81 jIkfS85a.net
>>49
キチガイの妄想なんだから答えるわけないだろw

51:デフォルトの名無しさん
25/10/06 08:37:55.38 /QQ+j/LM.net
VBAをPythonに置き換えようと開発進めてたけど、
サードパーティーのアドオンが優秀なので公式でやる必要が無くなった(ここまでMS開発者ブログより)
でも成果物を使わないのも勿体ないから使ってる(俺の妄想)
ってことだろ

52:デフォルトの名無しさん
25/10/06 09:38:05.20 CrcLFeiU.net
>>48
普段SoR系のシステムばかり見てる人には馴染みのない話かもしれないけど、
ビジネスアナリティクスの世界では、SQLは汎用的なデータ分析ツールとして結構カジュアルに広く使われているのです

53:デフォルトの名無しさん
25/10/06 10:52:24.34 0TYeR8/V.net
まーた新しいオモチャ拡げ出したぞw SoR系だからSQLが重宝されてきたんだろうに
アナリティクスなんて概念、後発も後発 まあ、SoRに於いてSQLでAnalyticsしてた
という見方もできるわけで、もはや何言っても相手に響かないからお口チャックしときなよ

54:デフォルトの名無しさん
25/10/06 11:44:57.78 sh+WI5Ke.net
話の繋がりがよく分からないが、そういう分析方面でならパワークエリも強みを活かせるということであれば、適材適所ってことでいいんじゃない? カジュアルかつアドホックに色々できるということが強みなんだろうから。

55:デフォルトの名無しさん
25/10/06 11:56:16.85 6luOortV.net
相変わらずVBAの話題以外では盛り上がるVBAスレ

56:デフォルトの名無しさん
25/10/06 13:59:52.57 +9LX7loy.net
>>54
そう、パワークエリの主用途である分析においては、その役割はSQLとPythonの両方と大きく重なる
そのうちどれが優れているという話ではないが、VBAが大きく劣ることは確かだな

57:デフォルトの名無しさん
25/10/06 16:51:14.76 0TYeR8/V.net
本気でそう思ってるなら、なんでここに居るし
ソッチのスレに常駐してるなり新スレ立てるなりして、ソッチで続けてればいいのに
単にケンカ売りに来てるん?

58:デフォルトの名無しさん
25/10/06 20:20:36.05 eyP2NojD.net
本物のサーバーに対してSQLを叩いた方が高速なのも
Pythonで複雑な計算を行う方が高速(素のPythonのループ処理はVBAより遅い)なのも一切否定していません
私はただExcelしか使用できない環境でも便利な機能がありますよ
と言っただけです

59:デフォルトの名無しさん
25/10/07 10:01:47.48 vEgtxFhe.net
社会人として言い訳はみっともない やっぱりおもちゃを片付けられないしんのすけレベル
(あなた達は知らないだろうけど)Power Query っていう便利な機能がありますよ、とでも主張したかったのか?
VBAスレで? ビジネスSoft板のExcel相談所辺りで言い募るならまだしも、ここの住人なんかはとっくに試用してる
だろうに 試したうえでケースバイで使う事もあるかも知らんけど、実務でそんなに活用するシーンも無いな
という肌感覚じゃあ無いのか 取り敢えずVBAでSQL書いて目的は達成できているんだし
ネット上とかの得体の知れない大量のデータに対してザッピングしてみて有用なデータかどうか、予め毒見してみて
実際に利用するかどうか判断の元にするような時には使ってみるのも楽だろうけど
Power Query 至る所でバンバン使い倒してますよ、という実務者カモン 事例提示プリーズ

60:デフォルトの名無しさん
25/10/07 10:38:57.70 msD1NTB5.net
何でスレチのPQにいつまでも係ってんだよ
>>15がExcel自動化云々言ったところでスレチはスレチ
そも自動化ではない
スルー力なさ過ぎ

61:デフォルトの名無しさん
25/10/07 15:16:40.55 bK/qJy7b.net
いつもの境界知能の人だろ

62:デフォルトの名無しさん
25/10/07 20:10:16.59 S93aMo2F.net
そうね
いつもの境界知能の人が必死にAIの回答をコピペしてる感じだね

63:デフォルトの名無しさん
25/10/09 12:42:40.22 M3Iz7qJA.net
仕事できなくて年収低いんだから
パワークエリ使おうがVBA使おうがたいしたもんできないよ

64:デフォルトの名無しさん
25/10/09 17:06:30.50 +B8QV1e9.net
はい終了~

65:デフォルトの名無しさん
25/10/10 06:43:28.00 oR3uH8u+.net
質の高い回答はなく、誹謗中傷しかないのはなぜなのでしょうか?

66:デフォルトの名無しさん
25/10/10 08:26:12.39 hdfpIN1/.net
・質が低く適切な回答をできない質問だから
・質問は妥当だが答えられない、でも何か言いたい質の低い回答者がいるから
大抵はこのどちらから

67:デフォルトの名無しさん
25/10/10 09:13:23.19 XIv0t+FX.net
自分はOFFICEスクリプトって使ったことないんだけど、VBAとは適宜棲み分けがされそうな感じ? それともVBAを置き換える方に行きそう? 一応、VBAにできること全てができるわけではないってことは聞いているけど。

68:デフォルトの名無しさん
25/10/10 09:56:09.14 cInZxt5e.net
>>65
貴方が質の高い回答をしないのはなぜ?

69:デフォルトの名無しさん
25/10/10 10:44:13.39 MfSuKUVs.net
OFFICEスクリプトは、あくまでも定型業務の自動化、しかもOneDrive上で を目指してるので
まだまだ発展途上だし
何より、OneDrive自体が今のところ各端末のパフォーマンスを下げる最大要因に成り果ててるので
様子見勢が多いのだと思われ(何でそこまでMSに加勢しなきゃならんのか、と)

70:デフォルトの名無しさん
25/10/10 11:49:19.24 +bT2e97Y.net
なるほど、OFFICEスクリプトはまだ全然って感じなのね。
VBAは構文が古くさいと言われることが多いけど、少なくともその点を理由としてOFFICEスクリプトに移行しようという動きはあまりないということか。やっぱりクラウドベースでっていうところが想像以上にネックになっているということなのね(たしかにちょっと試してみようと思ったときに、クラウドで云々と言われたら面倒くさそうとなるのは分かる気がする)。

71:デフォルトの名無しさん
25/10/10 15:30:53.82 YT8cXARa.net
いやいや、それは逆
そもそもデータが散らばってるからそれを纏めるためにVBAを使うことはよくあって、
VBAのユースケースとしてはかなり大きなウェイトを占めるんだよ
クラウドだと共有ブックを直接編集すればいいので、少なくともそういう用途のVBAのニーズは大幅に減る

72:デフォルトの名無しさん
25/10/10 17:15:15.57 rdtXmqP1.net
Officeスクリプトはアカウントに紐づくからVBAのようなファイル1つで済む手軽さがない

73:デフォルトの名無しさん
25/10/10 17:46:44.61 +bT2e97Y.net
ブックの共有とかって全然しないから、そこら辺の認識はなかったな。クラウドというよりOneDriveとか管理のされ方に問題があるって感じなのかな。

74:デフォルトの名無しさん
25/10/10 18:31:05.45 DrrVl6np.net
そも動かすプラットフォームが違うんだからどちらを使うか選ぶシーンが存在しない

75:デフォルトの名無しさん
25/10/10 18:46:30.53 YT8cXARa.net
>>73
裁量の問題だよ
未だにVBAに人気がある本質的な理由は、既存のワークフローを全く変えることなく勝手に自分の手元だけで作業を効率化できるから
一方で、クラウド共有を前提にしてなお残る面倒な単純作業はOfficeスクリプトで自動化しましょうとなれば、みんなのワークフローを見直さなきゃいけないでしょ
それは>>74のように目的ではなく与えられた作業に対してのみ責任を持っているような人達にはハードルが高すぎるわけ

76:デフォルトの名無しさん
25/10/10 22:45:13.21 6xVCTbsk.net
またいつもの境界知能者が荒らしてる

77:デフォルトの名無しさん
25/10/10 23:20:57.31 XIv0t+FX.net
理由はともかく、OFFICEスクリプトは少なくとも現状では習得上の優先順位が高い感じではなさそうね。
VBAの構文が苦手というタイプの人はPytnonのxlwingsとかに流れる感じなのかな。あれはPytnon越しにVBAのオブジェクトをいじっているようなものなので、実質VBAみたいな感じだけど。

78:デフォルトの名無しさん
25/10/11 08:45:48.88 X9HmeuU+.net
>>76
傍から見てると、あんたもソッチにズブズブ沈み込んでる風に見えるがな
もそっと、知恵のある発言するなり、若しくはボケだのギャグだの
ユーモアやペーソス混ぜたような発言とかを心掛けてもらえると、コッチも読んでて心地いいんだが

79:デフォルトの名無しさん
25/10/11 09:06:22.22 iR3N7kKL.net
xlwingsいいよな
調子に乗って沢山呼ぶと糞遅いけど

80:デフォルトの名無しさん
25/10/11 12:07:30.45 Yl843iVz.net
>>77
その理屈だとCOMはVBAってことになるな
なんだよVBA滅茶苦茶使われてるんじゃん

81:デフォルトの名無しさん
25/10/16 14:30:54.76 oDClVh0R.net
プルールのひとつめっけ
URLリンク(dl.ndl.go.jp)
日本全国諸会社役員録という本、アドレスはあくまでも31/914ページという意味
最初から見てっても中々面白い 東京府だし、並び順はいろは順だし ヰもヱもあるし
ビルデングもビルヂングも混在 日本フヰラメンドあり日本フアイアツト自動車あり
ブルドックソースが何だって?

82:デフォルトの名無しさん
25/10/16 15:17:07.38 oDClVh0R.net
URLリンク(dl.ndl.go.jp)

83:デフォルトの名無しさん
25/10/17 06:28:14.20 Qpm+e9K0.net
6分で終わる簡単な作業をいつもやってるからと思ってExcel VBAにしたら4時間もかかった
40回でペイする計算
1ヶ月に1回の頻度として3年4ヶ月でペイする計算
1ヶ月以上ブランクがあって作るのに時間がかかった
これを作るときに以前作った別のものをまた作ってしまったことに大体完成してから気づいた
使わないと作ったことを忘れる
役に立つものでこれからも使うか使わないか前もって予測できないから作るしかない
そのなかに使うものが出てくるし使わないものも出てくる
ちょこちょこ作るのは効果があると分かってるが本当に効果があるか愚痴を言いたくなった

84:デフォルトの名無しさん
25/10/17 08:01:24.16 lzj//9Gm.net
なんたるプログラミング能力が低さよ

85:デフォルトの名無しさん
25/10/17 09:21:41.22 2jUaiXhz.net
まあスキルも積み重ねが大事
あと人為的ミス防止やデータが多い時も速いことなども目的にしないとね
若いなら転職の小ネタにもできる

86:デフォルトの名無しさん
25/10/17 16:13:06.36 IG/te/XB.net
イレギュラーなデータとかエラー処理とか完璧にやろうとするとメインの処理は簡単でもめちゃくちゃ長いコードになったりする

87:デフォルトの名無しさん
25/10/17 18:48:27.53 ZOdCVHpQ.net
でも他人に使わせる前提だとそこがすごく大事なんだよな
自分用を手早く作れるのはそこ端折れるからってのがある

88:デフォルトの名無しさん
25/10/18 14:30:46.29 ViyQQZbE.net
質問です

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

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

なんかいい方法ありませんか?
全かなBoxのみを設置した仮フォームを呼び出してすぐ閉じるくらいしかないのかなぁ…

89:デフォルトの名無しさん
25/10/18 14:31:46.82 ViyQQZbE.net
それこそ>>87の言うように自分で使う分には「ちと面倒だけどまあ戻せばいいだけ」で済むけど、PCに疎い人達にも使わせるから「なんかひらがなが打てなくなったんだけど~」って言われるのは目に見えてるので…

90:デフォルトの名無しさん
25/10/18 14:46:43.70 ViyQQZbE.net
連レスすみません

「基本的には英数字だけど、半カナも打つことがある」Boxもあるので、「A↔半カナ状態のIMEModeOff」にするとかもできれば理想です

91:デフォルトの名無しさん
25/10/18 17:07:29.84 +vuE6Mxs.net
>>88
TerminateだとSetFocusしようにもすでにテキストボックスが存在しないんじゃないの?
× Terminate
○ QueryClose

92:デフォルトの名無しさん
25/10/18 19:05:19.85 0zFTkOmI.net
>>90
自由に入力させて、入力後に判定処理入れるのがいい

93:デフォルトの名無しさん
25/10/18 19:06:44.69 ViyQQZbE.net
>>91
レスありがとうございます
QueryCloseでもダメでした…

なるはやで実用化したかったので、とりあえずは全かなBoxを置いたダミーフォームを一瞬出現する形でお茶を濁しました…
でも自分でもかなり使うモノだから気持ち悪さが拭えないので、可能ならどうにかもっとスマートに処理したい…

94:デフォルトの名無しさん
25/10/18 19:17:28.64 ViyQQZbE.net
>>92
ありがとうございます
そのまま打ってF8やF10ってのを覚えてくれれば楽なんですけどね…
PC疎い民もさすがに半角全角キーを押すことくらいは分かるので、基本的にはIMEModeOffだけど半角全角キーを押すと半カナになるってのがやりたいんです

我ながら駄文すぎて分かりにくかったけど、要約するとIMEModeOn時の行き先を自在に操りたいってことですね

95:デフォルトの名無しさん
25/10/19 10:59:45.64 /YxBx4q/.net
テキストボックスのイベントでExitにIMEを元に戻す記述を書く
URLリンク(www.javadrive.jp)
sheet上でも出来るとは まぁ、知らん奴が使ったらヒステリー起こしそうだが
URLリンク(infith.com)

96:デフォルトの名無しさん
25/10/28 09:16:29.14 Kk67eWAx.net
Worksheet_BeforeRightClickを素早いクリックに反応させる方法ってありますか?
例えば右クリックでカウントアップするような場合、ゆっくりクリックしないと取りこぼすので、それをできるだけ軽減したいという話です

97:デフォルトの名無しさん
25/10/28 11:49:26.91 BUlcRJ6d.net
>>96
ワークシートのイベントはどれも動作が遅い
透明なオートシェイプをセルの上に重ねて、オートシェイプのClickイベントを使えば16連射も可能になる
ただし右クリックでは動作しない

98:デフォルトの名無しさん
25/10/28 13:00:23.09 NppxA0uZ.net
>>96
素早いクリックがダブルクリックと判定されてるかもね

99:デフォルトの名無しさん
25/10/28 16:30:11.08 xLHeS3+n.net
そんなに連打が必要な業務なのかわからんけど
マウスも一枚岩じゃ無いから(個体によって性能違ったり、有線無線で変わるかも知らんし)
ユーザーフォームとかにオプションボタン並べて、○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:デフォルトの名無しさん
25/10/28 18:40:17.09 k7xgJ8GR.net
そもそも右クリック連打が必要な設計を見直したほうが早いんじゃね

101:デフォルトの名無しさん
25/10/28 19:08:25.22 HpHj+cai.net
よく読め、連打が必要な訳じゃないと思うぞ
俺も似たような問題にぶち当たったことがあるから言いたいことは分かる
俺の場合はユーザーフォームだったからなんとでもやりようがあったけど、シートイベントでどうすべきかは思い付かんなぁ

ユーザーフォームなり透明オブジェクトなりで代用できそうか考えてみるのは大事かもな

102:デフォルトの名無しさん
25/10/28 19:36:17.85 xLHeS3+n.net
そうか、迂闊か
そういやチャタリング・チェックできるサイトとかあるから、そこでチェックもありか

103:デフォルトの名無しさん
25/10/28 20:59:15.35 WbU161W5.net
>>101
ダブルクリック判定にひっかかってるのかもしれんが、ユーザーフォームも単純な連打はうまく処理できない

104:デフォルトの名無しさん
25/10/28 21:36:11.37 uh3txXo7.net
要はこれっしょ

VBA フォームのボタンの反応が遅い理由と対策 - t-hom’s diary
URLリンク(thom.hateblo.jp)

これと同じようなことをワークシート右クリでやりたいってことやろ?
ワークシートだと安易に左クリックにはできない事情もあったりするし、こういう感じでフォームとかで代用できないか検討してみたら?

105:デフォルトの名無しさん
25/10/28 21:48:56.73 xheP7Ub+.net
レス遅れてすみません!
まさに>>104さんの言う通りです!
より具体的に言うと5種類の値から選ばせたくて右クリックで順繰り変更するマクロを作ってたんですが、例えば4番目の値を選びたいときなんかに慣れてくるとどうしても「カチカチカチカチ」って押してしまって反応が悪いと言われたのでどうにかしたくて
反応が悪いで済めばまだいいけど、それで間違った値のまま提出されたりすると困るのだ

106:デフォルトの名無しさん
25/10/28 21:49:30.45 xheP7Ub+.net
困るのだ じゃなくて 困るので です!!

107:デフォルトの名無しさん
25/10/28 21:57:34.33 DelTjWwd.net
バカボンのパパ(´^ω^)

108:デフォルトの名無しさん
25/10/28 22:41:09.17 wDWtv1wu.net
>>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:デフォルトの名無しさん
25/10/29 02:29:29.22 SoMHk0As.net
馬鹿は馬鹿な頭で考えた馬鹿な方法に固執する例

110:デフォルトの名無しさん
25/10/29 06:43:39.82 0NTgZ+aL.net
これでいいのだ

111:デフォルトの名無しさん
25/10/29 06:46:48.28 0NTgZ+aL.net
>>109
この人カバの逆立ちなのだ

112:96
25/10/29 07:39:58.02 K2GlQHDP.net
代案ありがとうございます!
やはり何かしらの大体策を考えるしかないですかね
右ダブルがキャッチできれば解決するんだけどなぁ

113:デフォルトの名無しさん
25/10/29 18:26:50.09 GMHlOV3c.net
カバは逆立ちしてもカバなのだ

114:デフォルトの名無しさん
25/10/30 03:56:51.64 k5qTIKM4.net
【高市自民】自維連立に衝撃 維新トップに赤旗砲「重大疑惑」2千万円絡む疑惑と 共産党Xが「だから裏金自民党とも組めるのか」と攻撃 説明求める声
URLリンク(news.yahoo.co.jp)

115:デフォルトの名無しさん
25/11/01 03:09:02.74 2yW7ZPbn.net
環境構築も配布の容易さも世の中の情報量も加味するとpythonなんて比較対象にならんな
特定のシステムでVBAに勝てるものはないわ
運用される規模は部署内程度になゆけどさ

116:デフォルトの名無しさん
25/11/01 10:44:13.81 kVMvyffB.net
マクロを起動するための各種コントロールは今後はフォームを使うべきなのか
これまで作ってきたActiveXコントロールは置き換えていくべきなのか

117:デフォルトの名無しさん
25/11/01 10:47:01.86 abESDRO+.net
PythonはてっきりVBE上で使えると思ってたからなぁ
ワークシート上の関数とかじゃ使いづらすぎて拍子抜けだわ

118:
25/11/01 16:45:53.46 IivztI/y.net
>>116
デフォルトでActiveX無効になったから、置き換えないと支障が出ることが多い

119:デフォルトの名無しさん
25/11/01 17:42:27.38 Hux2CBJ+.net
365に変えてから動かなくなった原因がそれだった

120:デフォルトの名無しさん
25/11/01 18:59:05.05 h6jsjnZZ.net
マクロが増えてきてどれがなんのマクロか分かんなくなってきた。間違ったマクロが実行されたEXCELが元に戻らないのも嫌だし、どうしたら良いですか?

121:デフォルトの名無しさん
25/11/01 19:04:29.39 xL3BSUWP.net
うまい具合に人のせいにしてください

122:デフォルトの名無しさん
25/11/01 19:35:09.78 b8gravi3.net
間違ったマクロを実行した時にEXCELを元に戻すマクロを作ればいい

123:デフォルトの名無しさん
25/11/01 19:53:55.68 +zpxt/zr.net
適切なマクロを実行するマクロを作る

124:デフォルトの名無しさん
25/11/01 20:11:15.61 6pe+t0kU.net
AIに丸投げして聞いたらいい
完璧に教えてくれるよ

125:デフォルトの名無しさん
25/11/01 22:42:21.33 h6jsjnZZ.net
>>121
採用!

126:デフォルトの名無しさん
25/11/05 14:44:44.11 rUtaLWLS.net
>>125
人のせいであっても現状の問題への対応はしなければならないのではないか

127:デフォルトの名無しさん
25/11/16 08:35:29.66 BUsW0orn.net
ピボットテーブルのスライサーが変更されたとき、
ピボットテーブルを置いているsheetについて
 Private Sub Worksheet_PivotTableChangeSync(ByVal Target As PivotTable)
を使っていくつかのマクロを実行させるようにしているんだけど、
これが3つあって、関連するクエリーやらをちょっとメンテ作業すると、これも動いてしまうものだから、
いちいちコメントアウト?(頭に ' 付けるヤツ)にして、このマクロを止めている。

これもっと上手いやり方ないかしら?

128:デフォルトの名無しさん
25/11/16 08:47:46.14 Mx/pwiFm.net
デバッグ用定数を定義しておいて、
そのデバッグ用定数の値が特定の値なら動かさない、とかにすれば、
メンテ中の変更が一カ所で済む、とかそういう話?

129:デフォルトの名無しさん
25/11/16 08:48:05.74 diBaXt68.net
よく分からんが、フラグ変数とかじゃダメなん?

130:デフォルトの名無しさん
25/11/16 09:13:04.26 bRFFjOtJ.net
どこかのセルをデバッグON/Offのフラグにする

131:デフォルトの名無しさん
25/11/16 09:16:36.49 EzK8Q/Ny.net
デバッグ定数を使うかApplication.EnableEventsを一時的にFalseにするか
ちなみにデバッグ定数はシート上に隠しておく形式にして例えばRange("A1").Value = Not Range("A1").ValueみたいなSubをイミディエイトから呼び出すのが個人的には楽

132:デフォルトの名無しさん
25/11/16 09:32:54.60 BUsW0orn.net
>>128
うーん、クエリー弄っちゃうと修正途中なので
不用意に動いたVBAでデバッグ入って・・・
てのはあるんだけど。

そもそもの
Private Sub Worksheet_PivotTableChangeSync(ByVal Target As PivotTable)
を一時的に止める方法はないのかと。

やっぱ、ワークシート上のどっかのセルに「メンテ中」なら "1" でも入力して、これをフラグにして
3つのPrivate Subの中で if then で、1ならそのまま終わるか、Call 以下のマクロを実行するかの分岐処理?

先達らはもっときれいなことやっているのかと・・・

133:デフォルトの名無しさん
25/11/16 09:33:47.22 EzK8Q/Ny.net
分かるとは思うけど一応

Public Const IsDebug As Boolean = False  '平時
'Public Const IsDebug As Boolean = True   'デバッグ時

Private Sub Worksheet_PivotTableChangeSync(ByVal Target As PivotTable)
If IsDebug Then Exit Sub

'ここに処理を記述

End Sub

みたいにするってことね

コメントアウトを楽にするならConstじゃなくて
Public Function IsDebug As Boolean
' IsDebug = True  '平時はコメントアウトする
End Function
にするのもアリ

134:デフォルトの名無しさん
25/11/16 09:37:59.73 EzK8Q/Ny.net
あ、ミスった
シートモジュールだけにまとめるならPublicなConstは使えないから、Const定義を標準モジュールに書くか、PrivateなConstにするかしてね

135:デフォルトの名無しさん
25/11/16 09:39:00.23 BUsW0orn.net
言ってみれば、プロシージャのインターロック機構みたいな仕組みかな?

136:デフォルトの名無しさん
25/11/16 09:41:42.45 BUsW0orn.net
>>133,134
ありがとう。
やってみる。

137:デフォルトの名無しさん
25/11/16 09:41:49.72 EzK8Q/Ny.net
そそ
ちなみにどのプロジェクトでもまず最初にこの機構を作る癖を付けておくといろいろ捗るよ

138:デフォルトの名無しさん
25/11/16 13:12:18.31 0LN83zrS.net
最近のyoutube動画観てると
MS Office が web アプリの Office と実質同じ
観たいな説明が多くてうんざりする

139:デフォルトの名無しさん
25/11/16 14:23:25.70 qgfY8rnj.net
web アプリの Officeは知らん。
どんなの?

140:デフォルトの名無しさん
25/11/16 14:37:50.55 WuYYEw3+.net
Excel for the webとかのことやろ

141:デフォルトの名無しさん
25/11/16 16:08:17.79 pZ2suisg.net
可視化のために色とデータを
一気に出力させたら描写遅延が初回に絶対発生するわ
画面一瞬シェイクさせるのを追加したことで解消
システムを高評価されたのはいいけど他社まで展開されるとは思ってなかったから超強力に作り込んでる

142:デフォルトの名無しさん
25/11/19 12:39:22.87 T8xhcS/6.net
趣味程度でしかやってないからコーディングのマイルールが中々定まらん
そのせいでメンテナンスしたり新しいプロジェクトを作り始める度にああでもないこうでもないと試行錯誤する無駄な時間が…
ってことで質問なんだけど、みんなが心掛けてるマイルールってなんかある?

ちなみに自分の中で明確なのはWith構文は余程面倒な括りじゃない限り使わない、型指定はAs~より&や$などを優先的に使うとかかな?
例えば型指定の省略形は一般的にはあまりよろしくないことは分かってるけど、うちの環境ではどうせ俺しか触らないしコードがスッキリして好きだからそうしてる
こんな感じで「一般的にはよろしくないとされるルール」でも全然いいので色んなアイデアが欲しいです

143:デフォルトの名無しさん
25/11/19 12:57:01.35 gC8HGDrL.net
最近はVBAを直接書くことはあまりなくてPytnonのxlwingsを使うことが多いんだけど、既定のプロパティを使わないとかかな。「VBA コーディング規則」とか「VBA コーディングガイドライン」で検索すると色々出てくるね。

144:デフォルトの名無しさん
25/11/19 13:01:31.21 pFGIqcYh.net
コメントは書かない(コメントがなくても理解しやすい命名やロジックにする)

145:デフォルトの名無しさん
25/11/19 19:03:32.46 pYKM/3rA.net
入力チェックやファイル読み書き読み込み等の他で使えそうな処理は汎用化する。
データの入力、加工、出力は処理を分ける。

146:デフォルトの名無しさん
25/11/19 22:38:56.82 cV15jrOu.net
>>142
改行とインデントはVBと同じにしてる
Visual Studioにコピペして自動整形されたやつをVBEに戻したりもしてる
変数名は気分次第だけど、英語の語彙力がないから全角文字も許容しないとすぐに詰む
コメントはできるだけ詳細に書く

147:デフォルトの名無しさん
25/11/20 08:10:04.82 cGqMER0e.net
会社のVBAならドキュメントの場所をコメントに書いておく

148:デフォルトの名無しさん
25/11/20 09:52:55.59 gRH2Ls2k.net
>>144
そのルールだとwhyはどう記すの?

149:デフォルトの名無しさん
25/11/20 19:09:59.75 qnTj7J5a.net
生成AIで出てきたコードをそのまま使う

150:デフォルトの名無しさん
25/11/25 10:36:05.24 0uCcBRN1.net
WordのVBAのスレはありますか?

151:デフォルトの名無しさん
25/11/25 11:10:13.87 F0vSFTML.net
昔はあった気がする
そう言えば ActiveX のスレも消えてるな

152:デフォルトの名無しさん
25/11/25 21:40:54.81 AgmnBjOL.net
VBAなんでも質問スレ Part3
スレリンク(tech板)

ここかなぁ

153:デフォルトの名無しさん
25/11/26 10:05:38.98 QKRdq7W1.net
>>152
ほぼ動いてないみたいですね。
ありがとうございます。

154:デフォルトの名無しさん
25/11/26 14:41:57.77 UA8LnUux.net
>>144
>コメントは書かない(コメントがなくても理解しやすい命名やロジックにする)

>>133-134
>あ、ミスった

ミスったじゃねーよボケカス

155:デフォルトの名無しさん
25/11/26 16:54:08.05 i+EWuoJl.net
>>153
EXCELとACCESS以外はほとんど需要ないから

156:デフォルトの名無しさん
25/11/26 18:44:46.44 AiiNbb6A.net
李夫人「ギスギスしてますね」
気軽に会話できるフインキじゃない

157:デフォルトの名無しさん
25/11/26 21:02:04.46 NgA/vaPc.net
出来上がってたマクロをAIで改良したら動かなくなって色々試したけど結局最初のに戻そうと消して貼り替えたら違うの貼っちゃって元に戻らなくて死にそう。ExcelVBAってバージョン管理どうやったらいいの?
(´・ω・`)どうしよう、あと2日しかない、、

158:デフォルトの名無しさん
25/11/26 21:27:39.98 XHc1Lvk5.net
Rubberduckちゃん使ってActive ProjectをExport、
出力されたファイルをバージョン管理

159:デフォルトの名無しさん
25/11/26 21:52:38.66 6HGM8CMx.net
前任者の作っていったVBAのプロシージャ名がテポドンとかパトリオットとかだわ
タケヤリもある
処理のボリュームと連動してるのがちょっと笑えた

160:デフォルトの名無しさん
25/11/26 21:57:50.45 JxrtDXSM.net
この前テポドンという半グレ集団捕まってたよな

161:デフォルトの名無しさん
25/11/27 12:55:16.44 s8MajZ9+.net
Tips
Rubberduck isn't a lightweight add-in and consumes a large amount of memory.
github.comのレポジトリにこんな記述があった

162:デフォルトの名無しさん
25/11/27 13:52:52.24 2EmBR7sq.net
規模にもよるけど >>157 の言ってる話くらいなら
Excel の VBA エディタを使わずに
完全に別のテキストエディタをメインで使用して
都度 Excel にコピペして使うのが正しい

163:デフォルトの名無しさん
25/11/27 20:59:46.47 +1jsb7au.net
>>157
リカバリのことではないけど、コードを修正する前にはマクロブックをコピーしてバックアップはするなぁ
一時、本当によくファイルも壊れてたし
自動でモジュールをエクスポートしてGitで管理ってのもみたことあるけど、プロジェクトをいじるには権限の設定も変更の必要とあるし…

164:デフォルトの名無しさん
25/11/27 21:01:15.19 PwMHoPlI.net
日本語不如意で失礼

165:デフォルトの名無しさん
25/11/27 21:13:09.05 JXPCwm5x.net
フォームのレイアウトが壊れたこともあったな

166:デフォルトの名無しさん
25/11/28 04:25:10.05 YehK5uv+.net
フォームやオブジェクトにソース埋め込むとか発想がイカレてる

167:デフォルトの名無しさん
25/11/28 19:18:54.56 vLpOhufo.net
>>157
終わるまで帰らないでやるしかないんじゃね

168:デフォルトの名無しさん
25/11/29 07:29:36.55 BQ0UyPY+.net
なぜ問題がわかっていて修正しないのか

169:883
25/11/29 10:18:21.57 iIxCzldN.net
バックアップ取らないでいじるとか狂気の沙汰としか思えんのだが

170:デフォルトの名無しさん
25/11/29 19:12:35.55 TehwSFPe.net
昔はファイル保存しないで動かしたらPCがフリーズして
リセットしたら全部消えたみたいな事だな
初心者あるある

171:デフォルトの名無しさん
25/11/29 21:26:22.14 n05F73FJ.net
問題が解決すると仕事なくなるから

172:デフォルトの名無しさん
25/11/29 21:37:44.45 OyeyDU4l.net
みんな失敗しながら覚えたんだよ

173:883
25/11/30 12:32:05.33 Rjr5dfQ3.net
ループの脱出条件入れ忘れてExcel落とすしかなくなるのは割とよくある

174:デフォルトの名無しさん
25/11/30 13:21:22.00 q4Ox41Rw.net
その程度のミスは今だったら実行前にAIに聞いたら完璧に指摘してくれる

175:デフォルトの名無しさん
25/11/30 15:30:09.72 HluJBWz5.net
Breakキーおしたれや

176:デフォルトの名無しさん
25/11/30 20:47:11.89 n9jb1y8V.net
Pauseキーでも

177:883
25/12/01 00:49:03.41 2rhS7iMC.net
PauseもBreakも聞かない時あるんだよ
Do Until EOFとかやって MoveNext忘れたりとか

178:デフォルトの名無しさん
25/12/01 01:14:39.29 v+ozH3Tb.net
Excel落とす以外でこれ止められる方いますか

Do
MsgBox ""
Loop

179:デフォルトの名無しさん
25/12/01 08:20:22.98 r9R4xsMu.net
>>178
MsgBoxはイベント待ちなんだから普通にPauseかBreakで止まる

180:デフォルトの名無しさん
25/12/01 08:28:00.33 tcT2iRS+.net
昔はCtrl+Breakで止めてた気がするんだけど、いつからBreakやPauseでも止まるようになったんだろう

181:デフォルトの名無しさん
25/12/01 08:39:52.73 ubTuQfiQ.net
最小限のコードで試したらBreakでちゃんと止まったんだが
Sub a()
Do
Loop
End Sub

182:デフォルトの名無しさん
25/12/01 09:07:39.80 8UMxtbvd.net
ESCで止めてたワ

183:デフォルトの名無しさん
25/12/01 09:14:44.31 Yc6N6c2G.net


184:デフォルトの名無しさん
25/12/01 09:15:32.34 Yc6N6c2G.net
URLリンク(www.tv-asahi.co.jp)

185:デフォルトの名無しさん
25/12/01 13:43:06.07 HDTmHOXC.net
3DゲームQの片仮名版

186:デフォルトの名無しさん
25/12/01 22:04:21.94 IZW/WYcf.net
(ヽ´ω`)何とか休日も潰して復旧間に合いました⋯。
うちのVBAはstopって書いてあるテキストを同じフォルダに作ると止まるっていう謎仕様をAIが作ってくれました。これはよくある手法なのかな?全然止まんないけど。

187:883
25/12/01 22:17:37.20 2rhS7iMC.net
>>186
乙かれ 次はバックアップ忘れんなよ

188:デフォルトの名無しさん
25/12/01 23:08:53.03 ageADKO+.net
>>186
おつかれさま
老婆心ながら、AIに頼るのは自分自身が問題解決能力を身につけてからのほうがよいかもね

189:デフォルトの名無しさん
25/12/02 03:17:53.87 9d4GAP4H.net
バックアップツールインストールして
バックアップ作業始めた瞬間に
PC壊れて間に合わなかったことがあるな

190:デフォルトの名無しさん
25/12/02 04:11:23.33 dszzNCzC.net
マーフィーの法則だな

191:デフォルトの名無しさん
25/12/03 02:25:08.80 oIB/w2I6.net
マーフィーに言われなくても判ってたことが多い

192:デフォルトの名無しさん
25/12/03 02:28:54.34 8lNTA0Gx.net
エディー

193:デフォルトの名無しさん
25/12/03 06:00:36.74 8R4Psvx3.net
おっ知らんのか

194:デフォルトの名無しさん
25/12/03 11:42:47.73 G3Cx7y7o.net
現象に「名前を付けろ」とは良く言ったもので

195:デフォルトの名無しさん
25/12/04 12:17:45.10 zhXSMovz.net
バックアップの負担がとどめになったり
普段アクセスしない不良領域にアクセスした事で検出されたり
あるある

196:デフォルトの名無しさん
25/12/04 20:42:16.32 XsR8CO/+.net
「いくつかの方法の中で、もし間違った方法があるなら、人はそれを必ず選ぶだろう」
俺じゃんww

197:デフォルトの名無しさん
25/12/05 14:43:51.04 W90mTSw7.net
>>195
トドメの一撃ですねわかります

198:デフォルトの名無しさん
25/12/05 17:07:05.58 uKBTUnuN.net
どどめ色

199:デフォルトの名無しさん
25/12/05 22:53:44.98 itJCEMXW.net
ゴミ箱から消したExcelのデータを完全に消すVBAの作り方教えてください

200:デフォルトの名無しさん
25/12/05 22:58:24.82 nmx3VDnP.net
Win32APIのSHEmptyRecycleBinを使えば良い

201:デフォルトの名無しさん
25/12/05 23:01:52.33 itJCEMXW.net
>>200
すげぇぇー!ありがとうございます。

202:デフォルトの名無しさん
25/12/06 08:22:07.86 Ns9W5jkq.net
最近勉強も兼ねて基本的なオブジェクトのラッパークラスを作るのにハマってる
せっかくだからある程度できてきたら実用もしていきたいんだけど、親子関係とかにこだわるとクラスモジュールがどんどん増えるからプロジェクトを作る度にインポートするの面倒だな
それに自作クラスに慣れちゃうと元オブジェクトの使い方を忘れて困りそうだしな

あれ?じゃあなんで作ってるんだ…?

203:デフォルトの名無しさん
25/12/06 09:06:30.20 CSgKSHqQ.net
>>202
自作ライブラリは何年か経つと自分すら使い方がわからなくなる
情報の溢れてる公式APIに勝るものなし

204:デフォルトの名無しさん
25/12/06 09:41:31.06 t4ge40oj.net
>>200-201
「削除してゴミ箱にあるExcelのデータを消す」これはSHEmptyRecycleBinでいけるが
「ゴミ箱から消したExcelのデータを完全に消す」これはSHEmptyRecycleBinでは無理だろ
>>202
URLリンク(smdn.jp)

205:デフォルトの名無しさん
25/12/06 12:26:26.84 qRv+I2CP.net
自分も引っかかったけど、
「ゴミ箱から消した/Excelのデータを」ではなく
「ゴミ箱から/消したExcelのデータを」なのかも
伝わりにくいか…

206:デフォルトの名無しさん
25/12/06 14:16:49.57 ARinuXXT.net
消したExcelのデータをゴミ箱から完全に消す

207:デフォルトの名無しさん
25/12/06 15:09:02.17 kcqrt2m8.net
EXCELのファイルを選別するのができないのか?

208:デフォルトの名無しさん
25/12/07 01:00:20.13 lLFPKabv.net
よくある質問者が既にいないのに話題を続ける奴が残る感じ

209:883
25/12/07 01:26:47.58 dEBXo/lp.net
質問者が来るとバカ呼ばわりするバカが居るしなー

210:デフォルトの名無しさん
25/12/07 08:10:22.37 b/YhOsIH.net
と、バカが申しております。

211:デフォルトの名無しさん
25/12/07 09:34:45.36 HnfNj0pp.net
>>210
このハゲ!🦲

212:デフォルトの名無しさん
25/12/07 12:14:53.22 D6Rcvjje.net
完全に消したいです!

213:デフォルトの名無しさん
25/12/07 12:16:43.46 gSHrQBcc.net
format

214:デフォルトの名無しさん
25/12/07 13:36:38.71 jjhMYiFl.net
formatで完全に消えるわけじゃないけどな

215:デフォルトの名無しさん
25/12/07 14:00:51.18 wjXVhGdJ.net
ドリルを使うのが定番らしい

216:デフォルトの名無しさん
25/12/07 15:18:24.12 WSDO/8Sv.net
ドリルすんのかい

217:デフォルトの名無しさん
25/12/07 16:34:53.96 4wunMZ1B.net
さんすうドリル

218:デフォルトの名無しさん
25/12/07 19:23:37.86 qO8AVoFB.net
完全に消すなら溶鉱炉に突っ込むしか

219:デフォルトの名無しさん
25/12/07 20:10:29.28 D6Rcvjje.net
ディスククリーンアップでも消えないんだっけ
出荷状態に戻したらアカウントも切えるしな

220:デフォルトの名無しさん
25/12/07 20:16:50.80 0JHpnbXH.net
米国国防総省準拠方式DoD5200.28-Mがいいと聞いた

221:デフォルトの名無しさん
25/12/08 11:34:41.23 ohFCSp2s.net
I'll be back! b
で 3回ほど上書き
最後に念のため塩水か酸に3年程漬ける

222:デフォルトの名無しさん
25/12/08 13:33:42.25 cI+IAhW6.net
まず服を脱ぎます

223:デフォルトの名無しさん
25/12/08 20:35:17.92 AM3PfGHm.net
DLいるけどコマンドで消せそう

224:デフォルトの名無しさん
25/12/08 20:43:32.54 7foZRiLq.net
ずっと昔、HDDが小さかった頃はバッチで無限ループして、意味のない内容のファイルで領域をいっぱいに上書きして、ってやってたな

225:デフォルトの名無しさん
25/12/08 21:04:15.75 Y7FlZnC1.net
スレ違いの話題をいつまでも続ける老人会

226:デフォルトの名無しさん
25/12/08 23:03:55.20 p8pOo59T.net
URLリンク(www.youtube.com)

227:デフォルトの名無しさん
25/12/09 08:00:02.65 Md263dWo.net
変数名は_で区切るのか、それとも頭文字小文字頭文字大文字で区切るのか、どう命名するのがオシャレで今時なのでしょうか?

228:デフォルトの名無しさん
25/12/09 08:20:04.79 Md263dWo.net
沢山の引数をTypeでまとめて引き渡すのは普通の事なのでしょうか?
沢山の書籍やネットの記事を見てきましたが、その様なコードは一切見た事がありません

229:デフォルトの名無しさん
25/12/09 08:20:48.43 hJ7ZW6qG.net
言語である程度おすすめが示されていることもあるけど、VBAってどうだっけ? クラス名はアッパーキャメルケースにする人が多いけど、変数・関数は好みじゃない?
Javaの経験がある人はキャメルケースを好み、Pythonの経験がある人はスネークケースもしくは区切りの _ も省略したjointwordsスタイルを好む人が比較的多いとか、そういう傾向はあるかもしれないけど。

230:デフォルトの名無しさん
25/12/09 08:42:54.43 Md263dWo.net
小文字大文字は違和感があって、本当にこれでいいのかなという感じです

231:デフォルトの名無しさん
25/12/09 08:43:11.33 Cqli7Rfr.net
マイコォソフトがハンガリアン記法に傾倒してた時代の言語だからアッパーキャメルケース

232:883
25/12/09 08:52:16.60 pNV+FLYU.net
>>228
C言語育ちのワイは普通にやる

233:デフォルトの名無しさん
25/12/09 10:04:40.09 l/Nn/UyZ.net
>>227
まず正常に動くことが優先で名称はその次のステップだろ
次にチームで共有するか、後任に引き継いでいくのか、個人だけの使用かで影響を気にするし
自分以外が使わないならただの自己満足だし好きにすれば良かろう

234:デフォルトの名無しさん
25/12/09 10:26:43.91 bIlCpHR7.net
BASICの歴史を尊重してフル大文字8文字以内です

235:デフォルトの名無しさん
25/12/09 10:46:42.10 oTj8LC3z.net
MS公式VBAマニュアルはC#方式になってるな

236:デフォルトの名無しさん
25/12/09 11:01:16.89 7JykU8Yz.net
変数名の表記法の一例
【camelCase】2番目以降の単語の先頭を大文字にする。最初を小文字にするのは関数名などと区別するため
【lowerCamelCase】camelCaseと同じ。上に飛び出た大文字がラクダのこぶのようだからキャメル
【biCapitalization】camelCaseと同じ
【interCaps】camelCaseと同じ
【mixedCase】camelCaseと同じ
【UpperCamelCase】各単語の先頭を大文字にする
【PascalCase】UpperCamelCaseと同じ
【UpperPascalCase】UpperCamelCaseと同じ
【snake_case】全部小文字、アンダーバーで区切る。文字数が増えて細長くなるからヘビ
【lower_snake_case】snake_caseと同じ
【lower_case_with_underscores】snake_caseと同じ
【UPPER_SNAKE_CASE】全部大文字、アンダーバーで区切る
【kebab-case】全部小文字、ハイフンで区切る。ハイフンがケバブの串
【lisp-case】kebab-caseと同じ
【dot.case】全部小文字、ドットで区切る
【システムハンガリアン記法】strNameなど、型を最初につける
【アプリケーションハンガリアン記法】indexNameなど、用途を最初につける
【ハンガリアン記法】システムハンガリアンと同じ、とする場合が多い

237:デフォルトの名無しさん
25/12/09 17:32:40.15 Md263dWo.net
他の人が見た時に「なんだこの変数名だせーな」と思われるのが恥ずかしいので

238:デフォルトの名無しさん
25/12/09 17:45:37.83 VGSDNKqb.net
>>237
それは適切な言葉(単語)を使ってるかどうかの問題では
大文字とか区切り記号以前の話だと思うけど

239:デフォルトの名無しさん
25/12/09 17:45:48.01 MYO7WY85.net
アンダーバーで始まる変数はどういう意図があるのですか?

例えば、
_value
_name
_aho

240:デフォルトの名無しさん
25/12/09 17:57:04.44 Md263dWo.net
変数名やメソッドの名前をAIに考えてもらうという事を学びました

241:デフォルトの名無しさん
25/12/09 18:04:10.60 qbLtmdIz.net
アンダースコアから始まる名前は、特定の言語機能と結び付けられていたり、システムとかフレームワークで使われることが多いので、特に理由がなければプログラマは使わない方がベターというのはある程度共通認識なんじゃない?

242:デフォルトの名無しさん
25/12/09 18:32:44.02 l/Nn/UyZ.net
>>239
アンダーバーを入力した際に候補が表示されれば選択するだけで変数を入力できるのだが
excelだとアンダーバーで始まる変数は作れないがvbではそれができる

243:デフォルトの名無しさん
25/12/09 18:36:12.70 oTj8LC3z.net
JavsScriptだとアンダーバーはprivate変数の意

244:デフォルトの名無しさん
25/12/09 18:46:46.99 Md263dWo.net
AIに「簡潔な数学の数式を教えてください」と尋ねてそれを利用する方法に気付いたのですが、有効でしょうか?

245:デフォルトの名無しさん
25/12/09 18:49:33.84 l/Nn/UyZ.net
C言語の定義ではアンダーバーで始まる名前がすでに使われているから普通は使わないな

246:デフォルトの名無しさん
25/12/09 18:53:49.68 l/Nn/UyZ.net
>>244
その数式が目的に沿った正しい数式と判断できたなら利用していいんじゃね
あと馬鹿っぽい質問だしそれこそAIに聞いて判断したらいいんじゃねw

247:デフォルトの名無しさん
25/12/09 19:49:37.18 Md263dWo.net
>>232
つまりクラスがあるならメンバーやプロパティ
クラスがなければTypeを利用するという事でしょうか?

248:デフォルトの名無しさん
25/12/09 20:26:44.94 MYO7WY85.net
>>232
ワイはサルや!

249:デフォルトの名無しさん
25/12/09 20:35:01.16 xx5Gy7RY.net
ID:Md263dWo

こいつ、以前にいた荒らしか

250:883
25/12/09 20:42:54.83 pNV+FLYU.net
>>247
自分が楽するためにExcel VBAで好きにプログラミングしてる俺にそんな統一基準はない
その場の思いつきで適当にやってるだけ

251:デフォルトの名無しさん
25/12/09 21:04:03.77 MuQ6uIdt.net
Excelは簡単にVBA使えるのにOutlookはVBA使えるのに使えないの意味不明。ExcelはなんでVBA特別待遇なの?

252:デフォルトの名無しさん
25/12/09 21:10:27.12 3pWFnGSq.net
ExcelでしかVBA使わない馬鹿は知らないのかもしれないけど、
Excelが特別待遇なのではなく、
Outlookが特別待遇なんだよ

253:デフォルトの名無しさん
25/12/09 21:23:41.32 MuQ6uIdt.net
Excelだけ充実しすぎじゃね?

254:883
25/12/09 21:33:43.88 pNV+FLYU.net
Outlookあんまり便利にするとSpam出しまくりな気がするが

255:デフォルトの名無しさん
25/12/09 21:48:53.26 z29/i6+b.net
充実って何が?
VBAは元のソフトの機能しか持ってないぞ

256:デフォルトの名無しさん
25/12/10 00:32:30.51 vGUkWj+9.net
まあExcelが格段に相性いいのは確かだな
あとはAccess
それ以外はファイル1つずつで作業が完結しがちだからなあ

257:デフォルトの名無しさん
25/12/10 00:46:38.08 aZZ1tbhE.net
需要の差
Excelで使う人が圧倒的に多いから改良も進むしノウハウの蓄積が多いってだけのことでしょ

258:デフォルトの名無しさん
25/12/10 00:50:56.50 ozpxWNcy.net
>>249
私は前に居たことはありません

259:デフォルトの名無しさん
25/12/10 09:51:07.69 W6ruUZYr.net
要はそれぞれのソフトの機能の差でしかない
そういう意味で、ExcelとAccessは多機能であると言える
Outlookは過去のやらかしもあるのである程度制限がかかってる

260:デフォルトの名無しさん
25/12/10 10:34:17.49 nB5MTnMh.net
制限というか新しい方のOutlookではVBAも、COMアドインも完全に切られたでしょ
不安を煽ってゴミみたいなアドインを導入させて、
ただでさえクソなものを更に重くて不安定なビチグソにする自称セキュリティソリューションベンダー笑を切り捨て、
余計なアタックサーフェスを増やさないという大原則に立ち返ったのは英断だわ

261:デフォルトの名無しさん
25/12/10 10:50:28.62 rQRTjmCH.net
VBA関係なくデータを制御・管理するのに世の中の普及度も加味して
Excel>>>access >>>>>>>>>
>>>>>>>>>その他
だからね

262:デフォルトの名無しさん
25/12/11 12:45:37.46 UITvxyr5.net
OutlookとExchangeは最悪の組み合わせだったよね

263:デフォルトの名無しさん
25/12/11 19:21:35.46 N23tvbfn.net
しらんよ

264:デフォルトの名無しさん
25/12/11 19:32:46.56 APP6U5Tc.net
>>263
知っとけ

265:デフォルトの名無しさん
25/12/17 10:08:29.34 rIxslo4A.net
ちょっと毛のくせに

266:デフォルトの名無しさん
25/12/18 03:02:23.63 DRWD1lxI.net
またお毛毛のトークに振ろうとしてる

267:デフォルトの名無しさん
25/12/18 07:39:27.01 Iw0n3gOa.net
>>266
このハゲ!!🦲

268:デフォルトの名無しさん
25/12/19 20:18:46.17 qBK1wPoP.net


269:デフォルトの名無しさん
25/12/19 20:20:46.66 K7p4szxX.net
>>268
防止を脱げ!
このハゲ!!🦲

270:デフォルトの名無しさん
25/12/19 20:59:21.25 qBK1wPoP.net
>>269
それ小さくて見にくいが雪だるまの絵文字ね
帽子っぽいのかぶっているけど

271:デフォルトの名無しさん
25/12/19 21:16:47.85 sNHrxFVD.net
毛の話題に持ってくのは荒らしの常套手段
触れる奴は学習能力のない馬鹿

272:デフォルトの名無しさん
25/12/19 21:44:56.50 pH3mLWyU.net
最近逆に関数の面白さも再確認
そしてPowerAutomateに手を出してる
VBA好きな人ならこっち系も好きな人多いはずだがどうよ

273:デフォルトの名無しさん
25/12/20 10:54:14.91 IUjvxSM0.net
なにそれ
chatgptの回答みたいに教えて

274:デフォルトの名無しさん
25/12/22 09:51:05.90 wMrfFps1.net
URLリンク(dic.nicovideo.jp)

275:デフォルトの名無しさん
25/12/22 12:24:15.02 e+WVdQn9.net
>>274
なにが「だが」なの?
ただ断ってるだけじゃね

276:デフォルトの名無しさん
25/12/22 14:23:10.45 KfV5eu7A.net
>>275
怒るで、しかし

277:デフォルトの名無しさん
25/12/24 09:27:50.03 ExMXvKUj.net
>>276
なにが「しかし」なの?
ただ怒ってるだけじゃね

278:デフォルトの名無しさん
25/12/24 12:19:18.85 ikRinXac.net
>>277
怒る理由はないけど怒るで、というギャグらしいよ

279:デフォルトの名無しさん
25/12/24 12:32:41.72 akohW7AF.net
>>278
メガネ、メガネって探す人か、しらんけど

280:L0A5197αβ0697891011121314151617181920
25/12/24 12:38:59.51 fn5QTi1I.net
パソコン、機械のブラック20とそれ以降代入の自動設定プログラムオートセットコード20について



プログラムセットオートコード20

ダイダロディクス20

これがおおざっぱにいって船や重工業用機械向け




プログラムセットオートコード20

バイバロニック20

これがおおざっぱにいってパソコンや家庭用軽機械向け






プログラムセットオートコード20図

左上に船や機械の名前、中央に船の概略図、右下にブラック20とダイダロディックス20
、バイバロニック20などの名前、左下にその船や機械の状態。

パソコンや機械を作る場合は正しく、確認するように。

281:デフォルトの名無しさん
25/12/25 18:22:39.80 hFWkqQGB.net
モジュールの先頭にpublicで宣言されたTypeをSubの中でDimとして宣言すると、Subを抜けた時に値が解放されますか?
クラスとまではいかなくても安全にTypeを使用したいです

282:デフォルトの名無しさん
25/12/25 18:35:02.69 YFUSPbjP.net
>>281
はい、解放されます。
• Public Type は「型をどこからでも使えるようにする」だけ
• Sub の中で Dim 変数 As そのType と書いた場合、その変数はローカル変数
• Subを抜けた瞬間に値は解放されます

つまり
👉 Public = 寿命が長い、ではありません

安全に使いたいなら
• 値を保持したい → モジュールの先頭で Dim
• ちゃんと管理したい → Class Module(初心者でもおすすめ)

という理解でOKです 🤖

283:デフォルトの名無しさん
25/12/25 20:06:36.71 hFWkqQGB.net
VBAで解説されているコードでTypeもクラスも非常に少ないですが、Typeを使用する事が正解な気がしてきました
大量のDimを宣言する方がおかしいと

284:デフォルトの名無しさん
25/12/25 20:12:52.62 eJ0qv5ju.net
それを言うなら大量のTypeを宣言するのもおかしいぞ

285:デフォルトの名無しさん
25/12/25 21:39:44.94 hFWkqQGB.net
>>284
TYPEを複数用意するのではなく、引数が沢山になるのを一つのTYPEで引き渡そうかなと

286:デフォルトの名無しさん
25/12/25 21:55:05.73 Z733tG55.net
スクロールしないとDimしか見えない。これ何とかなるの??

287:デフォルトの名無しさん
25/12/26 00:06:03.92 1Itr+TgE.net
そんだけ長くてやたら変数つかうコードなんだろうなあと思いました
頑張ってください

288:デフォルトの名無しさん
25/12/26 02:03:07.96 CRmvTz/8.net
配列とかシートに値置いたりできれば

289:デフォルトの名無しさん
25/12/26 02:04:16.83 CRmvTz/8.net
やっぱ自分の好きに作っていい
それも経験だ

290:デフォルトの名無しさん
25/12/26 07:44:56.96 31byPovI.net
>>287
逆に変数がそこまで少ないコードは特定の一つの処理しか行わないコードな気がします

291:デフォルトの名無しさん
25/12/26 08:11:24.86 E5BcGZny.net
転職3年で年収800万弱だけどその半分はVBAによる評価でここまで来た気がする
他業界で戦える数少ない武器
パワポのプレゼンも好きだけどね

292:デフォルトの名無しさん
25/12/26 08:21:40.44 Lbtc6Nz+.net
画面一杯の変数ってポケコンかな

293:デフォルトの名無しさん
25/12/26 08:23:38.77 evjbnBFl.net
>>290
そこまで大量の変数を使う必要があるレベルのプロジェクトならパーツ毎にクラス化したりプロシジャを分割したりするのが普通かと…

以下マジレスだけど、スクロールしないと本文に辿り着けないほど大量の変数宣言が必要なことってある?
用途の似た変数をまとめたりもせずに1変数1行で書けばワンチャンある…か?

294:デフォルトの名無しさん
25/12/26 09:14:14.24 KE5BcpJZ.net
プロシジャの行数は画面に収まる範囲信者じゃないけど、変数が多いのはプロシジャを分割が必要なのかもね
場合によるのだろうけど

295:デフォルトの名無しさん
25/12/26 10:04:06.69 +Fqn5IGU.net
Dim a As Long
Dim b As Long
Dim c As Long
Dim d As Long
Dim e As Long
 ↓
Dim a As Long, b As Long, c As Long, d As Long, e As Long

296:デフォルトの名無しさん
25/12/26 10:28:17.64 evjbnBFl.net
>>295
俺はDim a&, b&, c&, d&, e&でやっちゃう
どうせうちでは俺しか触らんしw

297:デフォルトの名無しさん
25/12/26 10:50:31.98 kVpxlxxM.net
簡単な補助ツールで大量Dim祭りなんだけど、間違ってんのか。引き継ぎウトゥだ

298:デフォルトの名無しさん
25/12/26 11:03:16.31 agHTQkEW.net
必要なのはただの配列でしたという落ち

299:デフォルトの名無しさん
25/12/26 11:08:31.09 BnxhzPQ7.net
ワンチャンばっかりズルい
ネコチャンならモニターをタテにする or 縦置きモニターを一台追加する
同様のケースで、イカばかり前面に押し出す奴も多いが、タコも同数扱うべき

300:デフォルトの名無しさん
25/12/26 11:12:44.36 SxsqGa+a.net
タコは耳にできるから視界に入らないじゃないか

301:デフォルトの名無しさん
25/12/26 11:17:29.84 +9ZwgcsK.net
>>293
あるよ
メソッドのパラメーターが多いならどうしてもそうなる
そうなったらクラスの使いどころ
GItHubにある数々のプロジェクトみればそういうもんだってわかる

302:デフォルトの名無しさん
25/12/26 11:19:31.83 sQdG8n3h.net
パラメータはDIMイランだろ

303:デフォルトの名無しさん
25/12/26 13:18:04.09 Pgl+9tdN.net
パラメーターを設定する側だよ
例えば(いまや不要になった)CSVを読み込むメソッド①と、
①を使う関数なりメソッドなり②
この場合、②にはたくさんのDimが要る
pandasのread_csvと同様の実装をするとしたら44の引数が必要
これらを保守性を持たせつつプロシージャで設定するならそれこそ一画面では収まらない
縦長ディスプレイやら4kディスプレイやら使えば解決するけど

304:デフォルトの名無しさん
25/12/26 13:31:03.49 agHTQkEW.net
DIMの並んでるところだけ▼ボタンとかで
collapsibleに出来なかったっけ

305:デフォルトの名無しさん
25/12/26 13:32:09.33 agHTQkEW.net
>>303
structに出来ないのかexcelだっさ

306:デフォルトの名無しさん
25/12/26 13:45:08.19 SxsqGa+a.net
関数の引数で構造体を渡すために親関数の設定で
毎回全パラメータを設定するのですねわかります

307:デフォルトの名無しさん
25/12/26 14:22:34.97 H0qs0r6N.net
好きに作ったらいいけど、クラス化とか検討して少しでも労力減らしたいとは思うな
スクロールは疲れる。プロジェクトエクスプローラー?でポチッと選ぶだけにしたい

308:デフォルトの名無しさん
25/12/26 16:51:56.04 Pgl+9tdN.net
>>305
ほんそれ
読みにくいったらない

309:デフォルトの名無しさん
25/12/26 17:52:25.31 RGnRzJcb.net
x ほんそれ
o 本当それ

310:デフォルトの名無しさん
25/12/26 19:11:48.47 SxsqGa+a.net
変数宣言しなくてもいいようにする簡単な方法があるじゃん

311:デフォルトの名無しさん
25/12/26 21:17:49.43 31byPovI.net
クラスやTypeよりディクショナリーの方が楽
というオチでしたっけ?
だけどディクショナリーじゃ型を指定できない

312:デフォルトの名無しさん
25/12/26 21:20:30.31 NG5l2JDy.net
>>310はOption Explicit消せって話だよ

313:デフォルトの名無しさん
25/12/26 22:10:11.67 31byPovI.net
>>293
変数は直前に宣言してスコープ範囲を狭くする事に努めているので
あるいはSubを細かく分けたりして呼び出したり

314:デフォルトの名無しさん
25/12/27 17:40:14.19 dWTMbH2v.net
>>313
VBAの変数はブロックスコープないのでどこで宣言しようがスコープは変わらんのだが

315:デフォルトの名無しさん
25/12/27 18:25:44.70 4UWSvvjj.net
スコープという語をどう定義するかにもよるが、(同じ関数内であっても)宣言した場所より前では使えないということでは。

316:デフォルトの名無しさん
25/12/27 20:28:51.08 ESJOzhP7.net
そいやVBA(の頃)は最初にDIMがずらーっとあったな(見慣れてた)
VBもそういうプロダクトが多かった記憶

いつの間にか大抵の言語が使われる直前で宣言されるようになってたなあ

317:デフォルトの名無しさん
25/12/27 20:31:00.94 bxwsarxB.net
お前らすごいなぁ。
俺はもう脳死状態でChatGPTにやりたいことを丸投げしてコーディングしてもらってるわ。
エラーになったら「ここエラーになってるから直して」って伝えたら修正してくれるし、
自分が見たことないコード作ったりするから勉強にもなるし。

318:デフォルトの名無しさん
25/12/27 20:36:38.43 ESJOzhP7.net
VBEにCopilotが載ることは無いんだろうな

319:デフォルトの名無しさん
25/12/27 20:37:50.30 muk50k+g.net
俺はネットでの質問の回答をAIに作らせているぞ

320:デフォルトの名無しさん
25/12/27 20:41:15.42 /OMSGlC+.net
VBAレベルだと既にAIはもう大多数の人間より遥かに優秀だし、
他のまともなプログラミング言語ではもう人間がほとんどコード書かなくなりつつあるけど、
VBAの場合は人間のレベルが低すぎて生成されたコードをうまく扱えず、結果としてAI化が遅れるという奇妙な現象が起こっている

321:デフォルトの名無しさん
25/12/27 21:29:49.75 p0x9W2Fz.net
起きてないぞ

322:デフォルトの名無しさん
25/12/27 22:42:55.32 oPgNfWKW.net
>>317
そうそう、会社の事務のおばちゃんがそれやって残業時間ゼロ目指してる。VBAプログラマはどう付加価値を生み出していけば良いんだろうな。

323:デフォルトの名無しさん
25/12/28 03:10:13.89 eJO0o89A.net
俺は逆にまだ宣言がとかクラスがとか言ってる人がいることに逆に驚いてる
そういう人がAIなんて精度がなくて信用がって言ってるのかな?
一番脳死してるのに気付けてないのは悲しすぎる

324:デフォルトの名無しさん
25/12/28 03:53:43.05 sCPnHy3W.net
>>323
こういう馬鹿がAIをありがたがる

325:デフォルトの名無しさん
25/12/28 08:12:16.26 Vsr6ULyO.net
新型バカ発見器の一つに加わるだけだろ。

326:デフォルトの名無しさん
25/12/28 08:53:00.19 5p2hhnjY.net
過渡期だからプログラミングの知識はまだ必要だろうな

一発で"良いもの"を作れるなら、そらもうプログラミングの知識は不要だろうが、
今のAIの成果物のクオリティを知ってるならそんなことは言えんはずだな

327:デフォルトの名無しさん
25/12/28 09:42:59.47 kWqzS/Ru.net
>自分が見たことないコード作ったりする
そうか?
見たことあるコードばかり出て来て著作権心配になるレベル

328:デフォルトの名無しさん
25/12/28 10:13:22.18 MMAkswbg.net
>>317
そのやりたい事をAIに投げてというのは、本当に1か、10までAIにすべて支持するという事でしょうか?
私の場合、途方のない文字数、行数になりそうです

329:デフォルトの名無しさん
25/12/28 11:43:28.34 MMAkswbg.net
例えば私は指定のフォルダのダイアログを表示して複数選択して選択したファイルの中から指定の名前を含むフォルダのみ開いて値の確認をして転記処理をして指定の名前でフォルダ名とフォルダを作成して保存して閉じるの繰り返しなんですけど

330:デフォルトの名無しさん
25/12/28 15:22:23.39 JWXuGwA3.net
いつもの方来た?

331:デフォルトの名無しさん
25/12/28 18:02:34.42 myArDJkz.net
バイブコーディングって1から10までAIに丸投げってのじゃねーけどな

332:デフォルトの名無しさん
25/12/28 19:25:53.22 9H3YXUPn.net
まるハゲでも丸投げしないのか

333:🦲
25/12/28 19:33:14.29 YdT6ic2O.net
だれがハゲだと?

334:デフォルトの名無しさん
25/12/28 20:03:21.81 myArDJkz.net
>>271

335:🦲
25/12/28 20:36:44.22 YdT6ic2O.net
>>334
(ワラ
たしかにそうかもね。
ハゲに反応するのは自分がハゲてるから(核爆)

336:デフォルトの名無しさん
25/12/28 20:56:30.24 eJO0o89A.net
まぁ未だにコードの中身にこだわってるような人は年収低いだろうしね…

337:デフォルトの名無しさん
25/12/28 21:04:19.63 Tzvuk9FY.net
そういう幼稚な見下し方してる時点でお察しってなるから気を付けてな

338:デフォルトの名無しさん
25/12/28 21:38:27.15 PYBlm0Ot.net
AI使うような馬鹿がさあ、
でも俺を見下なよ

うーんずっと年収400万なさそうな感じ

339:デフォルトの名無しさん
25/12/29 12:18:36.81 n3xMWech.net
うbyに挫折したKENYAが今度はAI推しか

340:デフォルトの名無しさん
25/12/30 14:39:14.34 yk4UNPU/.net
VBAができる=年収が高い と考えている馬鹿がいる

341:デフォルトの名無しさん
25/12/30 15:20:27.97 Dx93uLrG.net
そもそもできるにもピンキリ

342:デフォルトの名無しさん
25/12/30 17:49:36.55 vSPO9RyS.net
予算人員的に余裕のない介護現場の事務くらいでしか使えない。

343:デフォルトの名無しさん
25/12/30 18:15:08.33 c0+1R+dC.net
今どき構文について言ってるのなんて会話型AIに小慣れた学生より使えないやん
職業訓練所とかならすまん差別する気はない

344:デフォルトの名無しさん
25/12/30 18:15:38.90 c0+1R+dC.net
今どき構文について言ってるのなんて会話型AIに小慣れた学生より使えないやん
職業訓練所とかならすまん差別する気はない

345:デフォルトの名無しさん
25/12/30 18:19:10.93 cKW52mFo.net
↑真性の使えない子

346:デフォルトの名無しさん
25/12/30 18:29:23.49 z0havdRJ.net
最悪でも年収400万もいかないならエクセルさわってる場合じゃないっしよ
転職活動しないと負け組のままよ
心の拠り所にするもんじゃないぞ

347:デフォルトの名無しさん
25/12/30 18:48:38.52 jl6Rwpd3.net
年収も勝ち負けもそれはお前のルールだ
他人には関係のない話だ

348:デフォルトの名無しさん
25/12/30 19:05:30.25 mrAkfc9C.net
VBAだけが仕事のやつなんていないだろプププ

349:デフォルトの名無しさん
25/12/30 20:10:55.48 8wdgg8h9.net
うちは、仕事でマクロ使ってる人は少ないな
個人的な趣味でやってる人はいるけど
それが標準にはならない
派遣の人とかにやってもらう集計作業とかまあまああるんだけど
担当交代する時に業務として次の人に引き継げないからピボットテーブルまで
せめてパワークエリー使えるようになってほしいけど

350:デフォルトの名無しさん
25/12/30 21:48:43.82 Mx2rHuMX.net
そんな事も知らないのかっていつも上から目線の癖に年収の話になると急にぼかしてとぼけだすのワロタ
AIの台頭で一番立場がなくなってるやん

351:デフォルトの名無しさん
25/12/30 22:01:56.97 RSqz//Iy.net
老人のOffice田中の中の人が数年ぶりにYouTube動画をUPしたぞ!

352:デフォルトの名無しさん
25/12/31 07:05:49.15 oXCxNBNc.net
>>350
スレチの話膨らませる理由なくね?

353:デフォルトの名無しさん
25/12/31 07:34:14.55 4xGQt+yG.net
>>351
ホンマや!(ぶっちゃけYouTubeやってたの知らんかったけどww)
田中さんには初心者の頃にずいぶんお世話になったなぁ…

354:デフォルトの名無しさん
26/01/01 14:26:56.26 TF3Kd1Co.net
誰それ?知らんわ
つかAIにコード書いてもらっても、内容の意味分からんかったらダメじゃね?

355:デフォルトの名無しさん
26/01/01 15:01:57.16 CHla9y9+.net
いい歳だよね偉いな
少なくとも15~20年前にはもう潤沢な情報を非常に使いやすい形に整えて公開してくれてて助かりまくったな

356:デフォルトの名無しさん
26/01/01 17:21:42.61 YNHfSxUg.net
まだブログが全盛だった時代
過去の人

357:デフォルトの名無しさん
26/01/01 18:23:19.37 bUkjlHPx.net
HPとかブログって今はnote?になったのかな

358:デフォルトの名無しさん
26/01/01 20:02:59.07 TF3Kd1Co.net
多少気になってその人の2、3本観たが、大した内容じゃない。上級者なら誰でも知ってる内容だったが。

359:デフォルトの名無しさん
26/01/01 20:15:09.68 KcZB5RS3.net
論点がズレてるんだよなぁ…
そもそも上級者様()の話はしてないんだよ

360:デフォルトの名無しさん
26/01/01 20:41:52.26 w7OaddKW.net
>>358
初心者にそれなりの知識をわかりやすく伝えてるところが評価ポイントなんよ
教育・学習手段としての評価だから、
上から目線で文句しかたれない様な奴は相手にならねんだわ

361:デフォルトの名無しさん
26/01/01 22:25:12.12 wh7PuYrT.net
たしかMicrosoftのVBA系資格の公式の教本か何かも書いていたことなかったっけ? その割には用語の使い方にちょっと不正確なところがあるなと思った記憶がある。

362:デフォルトの名無しさん
26/01/02 01:28:44.12 Vli7jLVH.net
サイト利用者や動画視聴者の知識・経験の程度は問題じゃない感はある。
歴が長く経験の幅も豊富な者にとっても、
意外と知らなかったみたいな手法を拾い上げてトピック立ててくれたりするし。
つまり、大した内容じゃない。事さえも丁寧に扱う点にこそ価値があったりするよね。
言うまでもなく、人によってはだけど。

363:デフォルトの名無しさん
26/01/02 04:52:06.62 rI4aFXDR.net
office 田中のサイトのバナーのお兄さんがイケメンすぎて横のイマイチなお姉さん濡れ濡れやろな、と思ってた

364:デフォルトの名無しさん
26/01/02 10:54:57.66 umQ0E3dm.net
少しでも何かをアウトプットできる人はえらい
世のためになってる
こういう人達がいなかったら、AIすらここまで便利にならなかった

365:デフォルトの名無しさん
26/01/02 13:57:13.94 VCmVN/RE.net
ただのアウトプットではうんこと同じで不十分なのである
悪用すれば汚物になるが正しく使って肥やしにするのだ

366:デフォルトの名無しさん
26/01/02 14:01:25.79 g0DNxXSo.net
AIなんて精度悪いんだ
僕は正しい勉強したんだ
僕は年収低くてもすごいんだ

367:デフォルトの名無しさん
26/01/03 13:11:28.77 5c4yymfP.net
自称 【上級者】程当てにならないモノは無いわ。

368:デフォルトの名無しさん
26/01/03 13:27:14.47 7Bbbhg7N.net
ダニング・クルーガー曲線の2つの山のどっちの上級者かわからんからな

369:デフォルトの名無しさん
26/01/03 14:26:24.47 UsGE4kHZ.net
調べてみたけど、興味深い
ダニング~
勉強になった

370:デフォルトの名無しさん
26/01/03 16:42:49.98 s4iyV0Uq.net
強い言葉を使うやつは前半の山と決まっておる

371:デフォルトの名無しさん
26/01/05 18:11:39.24 5kVYJX2G.net
そして主役に倒される流れ

372:デフォルトの名無しさん
26/01/05 18:29:05.16 nBpoynqu.net
>>371みたいなのを文盲といいます

373:デフォルトの名無しさん
26/01/06 22:11:27.57 gj45HGS5.net
>>328
それぞれの処理ごとにマクロ作らせて、それを合体させるとかの工夫はいるかもな

374:デフォルトの名無しさん
26/01/08 14:35:53.73 dyEzWp8C.net
普段VBAとか触らないプログラム経験なんだが
怖いもの見たさでVBAを書いてみたいんだが
実行環境はエクセル用意するしかないの?

375:デフォルトの名無しさん
26/01/08 14:36:07.94 dyEzWp8C.net
経験者

376:デフォルトの名無しさん
26/01/08 14:37:00.28 hBAtrpse.net
エクセルもないってどんなプログラム経験者だよ

377:デフォルトの名無しさん
26/01/08 14:39:51.61 dyEzWp8C.net
今ってスプレッドシートあればいいしなあ
昔はofficeのパッケージとか買ってたし
プリインストール版も使ってたが
更新しなくなった

お仕事で必要な場合はだいたいそっちで用意されてるし

個人的な趣味の話

378:デフォルトの名無しさん
26/01/08 14:45:44.26 1zIDHWVJ.net
Googleスプレッドシート使ってるんだったらGASにしとけば

379:デフォルトの名無しさん
26/01/08 15:35:10.58 D728qwI/.net
>>374
書くだけならメモ帳でいいんじゃね

380:デフォルトの名無しさん
26/01/08 17:02:09.94 hBAtrpse.net
プログラム経験者じゃくて、引き篭もりがプログラム経験者の主張しとるだけか

381:デフォルトの名無しさん
26/01/08 18:05:38.46 lQdMRVtN.net
Excel縛りでないならPytnonとか他の言語の方がずっと良い気もするが、「怖いもの見たさ」ということはそこらへんは承知の上であえてExcelVBAを試してみたいってことなのかな。
たぶんExcel以外に実行環境ってないよね。365を月額でサブスクするのがお試しなら一番安上がり?

382:デフォルトの名無しさん
26/01/08 19:02:41.05 OFjC85jA.net
Excelで使いたいわけじゃないならVBスクリプトでいいんじゃないの?

383:デフォルトの名無しさん
26/01/08 19:33:03.54 wz1WTxUB.net
office2021ならヤフオクで500円しない

384:デフォルトの名無しさん
26/01/08 20:19:44.22 7gd9a1JD.net
>>377
その昔買ったOfficeのパッケージで試せばいいじゃん
古いバージョンのOfficeでも今のWindowsで普通に動くぞ

385:デフォルトの名無しさん
26/01/08 21:09:41.34 dDNc01zi.net
ExcelVBAが実務的に使ったという意味では初めてのプログラミング言語だし一番使い込んだし歴も長いから、なんだかんだ言いつつも割と一番好きな言語だったりするわ
もちろん不満がないなんて口が裂けても言えんけど

386:デフォルトの名無しさん
26/01/08 21:35:35.70 /Ilb29Eo.net
vbsならjsでええやろ

387:デフォルトの名無しさん
26/01/08 23:53:45.87 bABvp04Z.net
>>386
jsはbyref受け取りや配列とかめんどくせぇ

388:デフォルトの名無しさん
26/01/09 08:37:27.07 cvEE+eZt.net
スクーで先ずは無料の動画でおべんきょうしてみて
URLリンク(schoo.jp)
気に入ったらプレミアム月額980円に登録してみる
記述とその動作を両方いっぺんに確認できるから自前で揃える必要無い
VBAだけじゃ無くて、デジタルリテラシーとかビジネス基礎力とか
もっともっといっぱいあれこれ学べる
VBAがプログラミングのカテゴリーじゃ無くてPCスキルなのはご愛敬

389:デフォルトの名無しさん
26/01/09 09:45:43.10 VcvuEzNL.net
ExcelVBAは依頼者に言われて仕方なく手を出したプログラミング言語だし
それなりに使い込んだし歴も長いけど、なんだかんだ言いつつも一番嫌いな言語だと断言するわ
もちろんVBA使えますなんて恥ずかしいので口が裂けても言えんけど


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch