Excel VBA 質問スレ Part69at TECH
Excel VBA 質問スレ Part69 - 暇つぶし2ch179:デフォルトの名無しさん
20/12/31 08:04:03.76 qAEGulJg0.net
>>178
そういうの作りながら動作確認しないの?

180:デフォルトの名無しさん
20/12/31 08:17:09.79 sAh4R5unH.net
ネットにサンプルがいくらでも転がってんだから、素直にコピペしとけばいいのに

181:デフォルトの名無しさん
20/12/31 08:39:17.53 5hauEQny0.net
直ぐにネットの野良コードを見て何も考えずにコピペコピペする人は決して【上級者】ではありません!(キリ

182:デフォルトの名無しさん
20/12/31 10:43:23.83 yfYCC+Dx0.net
>>178
多分そう
>>179
最初はそんな罠があると思わないからな
俺は、間にMsgBox入れたら2回出たのでやっと気づいたわ

183:デフォルトの名無しさん
20/12/31 10:53:25.38 8vAoqqdn0.net
罠なんてのは理解してる人間が陥るものであってただの知識不足には何の関係もない
想定の動きしなかったら一つ一つ確認するのは最低限のことだ

184:デフォルトの名無しさん
20/12/31 11:11:12.57 sAh4R5unH.net
プログラムは決して思った通りには動かず、書いた通りにしか動かない
思った通りに動かない時、それは思った通りに書けてない時

185:デフォルトの名無しさん
20/12/31 11:33:07.51 yfYCC+Dx0.net
いや、Windows Update直後に動かなくなるとか普通にあるから
あとVBSだが、最近InputBoxで第1引数の文字が出ないことがある
どこかのファイルから文字を読み込んでるとかじゃなく、
引数に直接指定してるのに
起動しなおすと出るから間違ってはいない

186:デフォルトの名無しさん
21/01/01 09:42:29.21 Sutdgdij0.net
間違っているのではなく見落としているんじゃね

187:デフォルトの名無しさん
21/01/01 17:08:38.32 PXRj0cmP0.net
そりゃPGの動作ってのは環境含めてだからな

188:デフォルトの名無しさん
21/01/02 20:54:06.70 gYfsTimq0.net
不具合がわかっていて放置できるとかうらやましいな

189:デフォルトの名無しさん
21/01/04 03:24:12.12 SOcZuJtz0.net
>>125
検索結果はARTICLEタグの1番目から3番目迄(0番目は検索結果とは違うものに使用されてる。)。
その下のクラス名LawDownloadの下にクラス名pdfFileが幾つか見つかるが、その直ぐ下にAタグにhref=で始まるURLが見つかる。
どれもGetElements系で取得出来る。
最後はURLDownloadToFile使えば良いんじゃね?

190:デフォルトの名無しさん
21/01/04 16:03:39.37 P/FS/eNz0.net
バッチでデスクトップを再起動する人もあまりいないと思うが
デスクトップを再起動するプロシージャ内でExcelをQuitすると、Excelが勝手に再起動する
という現象が起きるので一応報告しとくね
環境によるかも
最初からWin10のPCで、Excel2019
(Win8からのアプデPCで、Excel2013では起きなかったかも)
デスクトップを再起動するコマンドを実行してるのはShell関数
Shell関数は非同期のはずだが、その同一プロシージャ内では、APIのSleepで5秒待っても駄目
DoEventsも駄目
そのプロシージャを一旦抜けて、タイマーで5秒後にQuitを実行すればExcelが再起動しない
デスクトップを再起動するのは、とあるツールの強制終了で残るタスクバーアイコンをクリアするためで
そんな用事のある人も滅多にいないだろうけど(クリアしなくても問題があるわけでもないし)

191:デフォルトの名無しさん
21/01/04 16:52:13.02 P/FS/eNz0.net
Access VBAに比べるとExcel VBAは随分安定してるが
それでもゴリゴリ開発を繰り返すと、謎の実行エラーは起きるよね
ソースを全部エクスポートしてインポートし直すと直るやつ
結構有名なはずだが
謎は実在するのにないと言い張るのは、経験不足なだけ
話題の動作を確認したわけじゃないがね

192:デフォルトの名無しさん
21/01/04 18:20:52.45 WAisD+UGM.net
あまり何もかもをまとめて処理するのはリスキー過ぎる
小分けにして段階を踏め

193:デフォルトの名無しさん
21/01/04 21:23:02.41 XJuzf2wY0.net
VDI環境でメモリ4ギガしか振られてないんだけど、グローバル変数を4つくらい作るとメモリ不足エラーが出て不安定になります。
割り当てるメモリを増やせばエラー収まりますか?

194:デフォルトの名無しさん
21/01/07 11:25:47.54 vMxmEGnU0.net
質問というか相談です
フォーム上のテキストボックスを右クリックした時、元の背景色が通常色の場合は黄色に、黄色の場合は通常色にと切替を行い、塗り潰しチェックの様な事が出来るようにした物を作りたいです
なのでMouseDown若しくはMouseUpで拾ってButton=2の場合に、テキストボックスの背景色を切り替える方向で行こうと考えました
MouseDownは1度のクリックで2度処理を行ってしまう為、MouseUPを使用しようと思いましたが、
正直押した瞬間ではなく離した時点なのが至極個人的に違和感バリバリなのでMouseDownでどうにか処理できないかと考えています
その場合、静的変数を用いて2回目かどうかの判定を行うのが良いのでしょうか

195:デフォルトの名無しさん
21/01/07 12:14:22.04 lqyAMCWOM.net
Timerで1秒以内の2回目は止めたら

196:デフォルトの名無しさん
21/01/07 13:06:20.76 LEN4uLCLd.net
for eachでフィルターがかけられた列をコレクションし、現在のセルと一つ下のセルの値を比較しようと思ったのですが、offsetだと隠れた行の数値が参照されてしまいます。
フィルタリングして可視状態の一つ下のセルを参照するには、どうすればよいのでしょうか。

197:デフォルトの名無しさん
21/01/07 15:55:15.71 JVCs6nJOM.net
無理だな
一つ上のを覚えといて比較しな

198:デフォルトの名無しさん
21/01/07 17:04:40.85 lqyAMCWOM.net
該当セルから下方向に、
VidibleがTrueなセルに当たるまで探せば

199:デフォルトの名無しさん
21/01/07 20:16:51.59 GNpPPMMj0.net
>>194
マウス離した時に実行するのがExcelに限らず一般的な動作だと思うが

200:デフォルトの名無しさん
21/01/07 23:26:20.22 q8h4Rq+X0.net
確かに
↓\→ 弱ボタン離す、でも波動拳出るな

201:デフォルトの名無しさん
21/01/07 23:51:53.97 CAJlIzxl0.net
はどうけんてなんですか

202:デフォルトの名無しさん
21/01/07 23:59:30.52 GNpPPMMj0.net
イギリスのロックバンドのことです

203:デフォルトの名無しさん
21/01/08 07:36:54.65 /1SPkI99a.net
行とか列のデータのある範囲を選択するメソッドありますか?
currentregionの1行だけみたいなイメージで
今思いつくのは無理くり
Range("C5").CurrentRegion.Offset(略).Resize(略~
ないしは
Endとかで割り出してから選択する
とかなんですが
なんかもう少しスマートな書き方があれば知りたいです

204:デフォルトの名無しさん
21/01/08 07:38:15.90 /1SPkI99a.net
説明捕捉
>>203
の表の列はAからD以上まである感じです

205:デフォルトの名無しさん
21/01/08 08:45:53.52 F7dsXzNTM.net
columnsとかrowsプロパティで範囲から希望の列や行を取り出すじゃ駄目なの?

206:デフォルトの名無しさん
21/01/08 09:53:03.11 /1SPkI99a.net
>>205
いや、rowsだと行全体が選ばれてしまうので
例えば
1行目は4列
2行目は5列
とデータの入っている列数がバラバラな場合
(値は全て入っているものとして)
それぞれ4列とか5列分ぴったりに選ぶメソッドは無いものかと
C列基準とかで選べたら一番いいけど
A1選んで「ctrl+shift+→」と同じ結果でもいいです

207:デフォルトの名無しさん
21/01/08 10:06:49.06 /1SPkI99a.net
すみません
>>205
のヒントで自己解決しました
Range("C5").EntireRow.SpecialCells(引数)
でいけました
失礼しました

208:デフォルトの名無しさん
21/01/08 10:12:04.47 0GZaxWieH.net
>>206
一発で求めるメソッドやプロパティはない
たとえば3行目だけ選択だと、たぶんこれが最短
Range([A3], [A3].End(xlToRight)).Select

209:デフォルトの名無しさん
21/01/08 10:18:16.84 /1SPkI99a.net
>>208
ありがとうございます
やっぱり1発ではないんですね
自分が書いたspecialcellも定数と数式とが混在してると
やはりUnionで繋ぐなどしかないので
煩雑になるなあと思っていたので
その書き方の方が良さそうですね

210:デフォルトの名無しさん
21/01/09 19:33:14.89 tpxthpMW0.net
Dirコマンド、
コマンドプロンプトに直書きだとローカルもネットワークも取れるのに、
VBAからWSHで取ると、ローカルしか取れないのは何故?

211:デフォルトの名無しさん
21/01/09 22:38:35.27 sDO7vtGda.net
理由は知らないけど、コマンドプロンプトのDIRコマンドと、VBAのDir関数は別物です

212:デフォルトの名無しさん
21/01/09 22:40:13.80 sDO7vtGda.net
あ、失礼いたしました
VBAのDirでなく、スクリプト経由なのか
1つ前のレスは撤回します

213:デフォルトの名無しさん
21/01/10 01:05:09.81 kg6XuktW0.net
>>210
まあユーザ認証回りだとおもうけど
ちょっとコード晒してみて

214:デフォルトの名無しさん
21/01/10 01:13:14.86 4Xu9louP0.net
>>213
これそのまま
URLリンク(officetanaka.net)
sCmd = "dir [ローカル]" だとOKで、
sCmd = "dir [ネットワーク]" だと取れない
Len(Result)で調べると0文字になってる
コマンドプロンプトでやると取れるから、打ち間違いじゃないと思うんだけど

215:デフォルトの名無しさん
21/01/10 01:40:53.81 bwHYpHvWH.net
>>214
手動でコマンドプロンプトからネットが見えるか再確認した?
Windows Updateするとファイル共有が勝手にoffにされることがけっこうあるよ

216:デフォルトの名無しさん
21/01/10 02:36:39.33 CEBDD+E50.net
>>215
そんなことねーよ
死ね


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