Excel VBA 質問スレ Part84at TECH
Excel VBA 質問スレ Part84 - 暇つぶし2ch104:デフォルトの名無しさん
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
この前テポドンという半グレ集団捕まってたよな


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