[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 03/22 05:48 / Filesize : 289 KB / Number-of Response : 1047
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part57



1 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 21:42:39.57 ID:K1uuwFLt.net]
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK


※前スレ
Excel VBA 質問スレ Part56
mevius.5ch.net/test/read.cgi/tech/1534976724/

260 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 18:33:05.98 ID:MQAmc69g.net]
ユーザー定義ワークシート関数作れるようになってから出直せ

261 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 18:35:03.52 ID:uQKWYjQl.net]
>>242
凄く良くなるかは分からん
業務の種類と自分が出来る自動化のスキルによる
うちはシステム化ダメダメだったから日報を2時間掛けて作ってたらしいそれを2分で出来るようにした
土日も作ってるらしいからそこそこになった

262 名前:デフォルトの名無しさん [2018/09/21(金) 18:40:23.75 ID:Qvv9rksr.net]
なるほどー。普段の業務考えてみたらルーチン作業ばっかしてるし自動化できそう


>>252
まさにそんな感じで日報も作ってるわ。部署ごとにわけて〜で2時間は余裕でかかってる
これがもし2分で終わったりしたら夢あるなぁ

263 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 18:44:00.14 ID:liVyxOie.net]
C#あたり使ってVBEのコードペインにユーザー定義関数用のVB6コードを差し込むようにすれば大丈夫だと思うの

264 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 18:46:12.21 ID:MQAmc69g.net]
>>254
で、そのファイルは他の人が開いたらどうなるんや

265 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 18:50:57.60 ID:liVyxOie.net]
ブックのコードペインに差し込んでスタンドアロンなVBAプログラムとして保存すれば他のユーザーがそのブックを開いても普通に関数として使えるじゃん

266 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 18:56:13.68 ID:xQShnEjp.net]
>>251
何に使うの?
ユーザー定義関数を定義する事が目的化してない?

267 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 19:01:09.32 ID:MQAmc69g.net]
>>257
標準関数で書くと低速になるような式のとき、VBAに移す事で大幅に高速化できる。
必要になった時にその場で作るものだから、c#の場合VS起動してコンパイルしてとか論外。
その後、計算書完成したから後よろしくって上司に渡すとかよくある

268 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 19:17:25.97 ID:FvpQrvJK.net]
計算書なんて何度も計算するものじゃないだろ?
それに経過の計算を残すことが重要な書類じゃないのか?

無意味に速度なんて気にして誰も解読できないオナニー関数とか使うなよハゲ



269 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 19:22:37.61 ID:xQShnEjp.net]
え?それだけ?
定義した関数をデリゲートとして渡してコレクションをソートしたり
メタデータを取得してデコレーターを生成したり
再利用

270 名前:ツ能なモジュールとしてシステムに登録したり
とかできないの?
使い捨てのシートに表示するのを高速化するだけのために重いエクセルとVBEを開いてVBAで我慢強くコーディングして動作確認とか辛いんですけど
[]
[ここ壊れてます]

271 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 19:30:10.67 ID:liVyxOie.net]
必要になったときに手軽に使うのはPowerShell

272 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 19:31:16.07 ID:MQAmc69g.net]
そういうのが作りたいなら好きにしてくれ。
VBAが適している場面もあるって話や
あと数秒で計算終わるなら必要ない。物によっては諸元入力のたびに再計算に1分かかる場合とかあるんよ。
エクセルエアプには分からなくても仕方がないが。

273 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 19:35:55.04 ID:FvpQrvJK.net]
どうせSUMPRODUCTとか使いまくって悦に浸ってんだろ
エクセルプロ()さんは凄いですね

274 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 19:42:04.04 ID:xQShnEjp.net]
リアルタイム更新はエクセル弱っちいよね
非同期処理のサポートが残念だから
入力するたび重い計算を同期で待ちってユーザーが激怒する典型的なパターンだよ

275 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 19:54:44.02 ID:liVyxOie.net]
大容量データをエクセルで扱うならパワーピボット使おうよって思うし、ワークシートで行列計算の評価を何重にも行うならそれ全部外部の高速なプログラムにオンメモリでやってもらおうよって思うの

276 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 20:16:40.40 ID:4Tb64i1X.net]
>>260
お前、VBAに何やらせようと思ってるの?
VBAはあくまでOfficeアプリケーション上で使える便利機能でしかないんだよ?
お前が言ってることはデカいシステム作ることに対応した言語持ってきて
アレが出来ないコレが出来ないと騒いでいるに過ぎない。

そもそもそういうことをやるならそれなりのフレームワークを使ってEXCEL吐き出させろ。

277 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 20:23:25.18 ID:+w5W7Qw1.net]
>>258
標準の関数ってスピードすごい早いプログラムじゃないの?
自作のほうが上回るとかあるんか

278 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 20:28:26.36 ID:dSxNadcR.net]
>>267
VB6標準の組み込み関数じゃなくてエクセル組み込みの標準的なワークシート関数のことを言ってるんじゃないかと理解してたんだけど違うのか?



279 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 20:33:56.46 ID:xQShnEjp.net]
>>266
デカイシステム?
日常的な規模のツールもC#やパワーシェルのほうがいいよ
小規模ならまあほとんどパワーシェルだな

エクセルはスケールデカイときは論外だけど
便利で基本的なクラスや言語機能がないからスケールの小さいちょっとした物にも実はそんなに向いてないんだな

外部コマンドの出力結果をパースして並び替えてフィルターしてエクセルに出力してファイルをwebサーバーにHTTPポスト
これぐらいの簡単な作業ですら着手に躊躇してしてしまう

280 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 21:47:31.39 ID:c6u7OXiZ.net]
>>268
いやワークシート関数で合ってると思うけどあれを超えられるユーザー定義関数を作る自信はないわ

281 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 22:47:22.07 ID:oOcVj6Vd.net]
上で言ってるような重い処理じゃないけど、文字列操作系は自作したほうが便利なことが多いよな。

たとえばSplit関数がワークシートに無いのでパスをバラすときとか糞めんどい。
A1:C:\hoge\fugafuga\piyo

C:・・・・・=MID(A1,1,SEARCH("\",A1,1))
hoge・・・=MID(A1,SEARCH("\",A1,1)+1,SEARCH("\",A1,SEARCH("\",A1,1)+1)-SEARCH("\",A1,1)-1)
fugafuga・・・=MID(A1,SEARCH("\",A1,SEARCH("\",A1,1)+1)+1,
SEARCH("\",A1,SEARCH("\",A1,SEARCH("\",A1,1)+1)+1)-SEARCH("\",A1,SEARCH("\",A1,1)+1)-1)

しかしこれを定義するだけでシンプルになる。
Function SPLIT2(v, deli, idx)
SPLIT2 = Split(v, deli)(idx - 1)
End Function

C:・・・・・=SPLIT2(A1,"\",1)
hoge・・・=SPLIT2(A1,"\",2)
fugafuga・・・=SPLIT2(A1,"\",3)

だから文字列変換が出てきたら大抵VBAで関数組むかな

282 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 22:52:30.61 ID:oOcVj6Vd.net]
>>271
書いてから思ったけど、パス分解するだけなら区切り文字で出来るから例が悪かったわ
上の関数は文字を数式で繋いでコネコネするときによく使う

283 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 22:53:01.55 ID:/N0VzHQb.net]
splitがめんどいのは同意だけどなんでワークシート関数にするの?
vbaで処理完結したほうが良いと思うけど

284 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 23:05:24.48 ID:oOcVj6Vd.net]
>>273
それも場合によるかと
帳票、単票みたいなのをササっと作るときは、セル毎に式を組まないといけないから適してる。
あと行・列挿入が多い表に埋め込むときとか。

たぶんPowerShellerが想像してる表から表に変換するような場合にはあまり適してないね。

あと元の値が頻繁に変化するものは、そのたびにマクロ走らせないといけないから更新漏れが起こるのが困る。

285 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 23:37:14.57 ID:3Rh/KByq.net]
考え方なんかなワークシートで式使われる方がめんどく感じる
大量にあったりすると重いしメンテしづらかったりするし

286 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 23:47:44.41 ID:dSxNadcR.net]
Lispの糞コードいじる気分になるよね

287 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 23:50:48.56 ID:UZbX0jXb.net]
ワークシート関数なら他にはマネ出来ない

データ処理するだけならPowerShell使えって奴も多いんじゃね

288 名前:デフォルトの名無しさん [2018/09/21(金) 23:50:54.80 ID:MqKbhYRD.net]
盛りすぎプロさんw



289 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 00:01:13.95 ID:96L85sWt.net]
SPLITみたいなのはワークシート関数にする派だな
汎用的な関数をワークシート内で使ったほうが見通しがいい
他にもMAP、FILTER、REDUCEみたいなのも自作して使ってるわ

290 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 00:04:01.76 ID:/LVptLz+.net]
JSPやASPの失敗を繰り返しとるな
帳票にデータを埋め込みたいなら式じゃなくシンプルにセル参照を使うといいよ
参照先はプレーンなデータ専用シートね
こうしとけばセキュリティ監査的に面倒なマクロ付きにしなくていい、
データ供給元の言語に依存しなくなる、
データ供給元のコードがシンプルになる、
データモデルがわかりやすくなる、などなどメリットが多い

291 名前:デフォルトの名無しさん [2018/09/22(土) 00:17:31.94 ID:T/6XWx9j.net]
>>279
MAPやREDUCEに渡す無名関数はどうやってる?

292 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 02:18:36.18 ID:niETRueG.net]
ワークシート関数って”使う”のにかかる手間が少ないのがメリットだと思う。
関数の入力と出力だけ書いておけばVBA読めない人でもすぐに理解できる。

ワークシート関数使うのは使い捨ての帳票が大半だろうし>>280は全然違うものを想像してそう。

293 名前:デフォルトの名無しさん [2018/09/22(土) 02:24:34.84 ID:FJlDOW+X.net]
お前ら本当にもっと会社の利益になる事を頑張ってくれよ
やらせてるのは女の子がやる様な簡単な仕事なんだからこんなどーでも良い大して役に立たないVBAなんかに時間を使わずに他の人を手伝うとかちゃんと勤務中は仕事してね
分かったね?

294 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 07:40:51.79 ID:z7BGc1C3.net]
自作のワークシート関数作るとエラー処理とか面倒
特にエクセルの柔軟すぎる型変換は予想しない結果になってしまう

>>283
君はまずハローワークに行こうな

295 名前:デフォルトの名無しさん [2018/09/22(土) 08:08:03.84 ID:T/6XWx9j.net]
>>283
老害かな

296 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 09:49:40.55 ID:/LVptLz+.net]
>>282
使い捨て帳票ならそれこそ手入力で十分
デザインするついでにデータも入れればいい
プログラムするものは何度も繰り返し出力するもの、何人もの社員が出力するものだ
そういうのは先ほどレスした理由でセル参照を使ったほうがいい

297 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 09:55:14.40 ID:MP8LoRbH.net]
質問です
パワーシェルって.Net Freamworkの寄生虫みたいなもので
単体だとただのシェルと変わらないって本当です?

298 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 09:58:32.80 ID:WimPZWqW.net]
VBAがOffice製品の寄生虫なのと一緒



299 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 11:14:47.29 ID:KDDLtPfl.net]
VBAは個々の重いOfficeアプリを起動しないと動かせないけどPowerShellはIDEでも普通のPSコンソールでもPSだけでサクサク動かせるからそこが違う

300 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 11:36:15.01 ID:mc091pM3.net]
PowerShell自体がたかがコマンドラインシェルのくせに起動ゲロ遅いから目糞鼻糞

301 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 11:38:46.45 ID:CkoNNNs2.net]
Cmdプロの人の嫉妬かな

302 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 11:55:38.81 ID:mc091pM3.net]
使ってるよ?
最近はだいたいbashで済ませてるけど

303 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 21:13:08.35 ID:+NSfHsNE.net]
質問です。
ソルバー 機能をvbaで使ってるんだけど、目的や制約をセルを対象じゃなく、vba内の変数に対して適用したいんだけど不可能?

304 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 22:34:22.71 ID:96L85sWt.net]
>>281
クッソダサいしなんちゃってmapだけど文字列で渡してる
=MAP(A1:A10,”$$*EXP($$)”)
みたいな感じで

305 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 23:03:40.40 ID:iO7YjT3j.net]
「=SUM(A1:A10)」のようにSUM関数の引数に計算範囲をして合計値を表示したあとで
その計算範囲のセルの値を書き換えた場合に合計値が更新されないことがあるのですがなぜでしょうか?
そのあと値を書き換えたセルでF2を押して入力状態にし、そのままエンターを押すとようやく合計値が更新されます。

306 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 23:53:28.61 ID:niETRueG.net]
>>295
自動再計算が手動になっているのでは?

307 名前:デフォルトの名無しさん [2018/09/23(日) 13:25:57.01 ID:6+b91Fhf.net]
>>279
是非使いたいから公開してよ

308 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 15:33:34.28 ID:aZjrg24v.net]
>>254
似たようなことやってる。
ユーザー定義関数じゃないけど昔のAPIビューアをドッカブルにした奴をVB.netで作って使ってる。



309 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 15:35:54.14 ID:aZjrg24v.net]
>>258
ただ、ワークシート関数は重くなる場合もあるし自分は敬遠する傾向だな。

でも一長一短でワークシート関数の方が良い場合も当然ある。

310 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 15:38:28.44 ID:aZjrg24v.net]
>>260
バカ丸出しだなあ。
あのね、それで使う側にとって何が良くなるの?
そこを語るべきだろ。

それが納得できるような話が今まで殆ど語られたことがない。

311 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 15:47:46.09 ID:aZjrg24v.net]
>>269
何度言っても分からない人だねえ。
エクセルのファイル作るだけなら何使っても良い。
別にVBAが有利なことも無い。

逆にファイル開いた状態から動かす時は1ファイルで済むVBAが有利だろう。
だからVBAの話題になってるこのスレなんかもメインはそういうVBA有利な場面の話なんだよ。

実際、VBA不利な場面なんていくらでも知ってるけど、不思議とアンチの言葉とは丸っきり被らない。
アンチの言葉は全く説得力がない。
被れば、こっちも「確かに」となる筈なんだけどね。

312 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 16:04:30.67 ID:xERBcwZj.net]
まーた1ファイル論争になってるのか、もう神学論争だよねこれ
VBA以外の言語でもCOMオブジェクトとしてアクティブなブックを操作できるわけだし、想定ユーザーのスキルレベルや運用条

313 名前:件や処理の内容によってVBAを使うべきか使わなくても良いかの判断なんて変わってくるでしょ []
[ここ壊れてます]

314 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 16:04:32.08 ID:9e4CRvDY.net]
大将、ドーナッツ一丁!

315 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 16:30:52.15 ID:H5quPExp.net]
自分の場合はそもそもエクセルを開いた状態で動かしたいプログラムというのがあまり無いです
VBAを普段使いしているひとはどういう用途・目的でエクセルを開いた状態でマクロを使っているのでしょうか?

316 名前:デフォルトの名無しさん [2018/09/23(日) 16:46:09.55 ID:yOUnCcQA.net]
つまりVBAなんて必要ないって事だよね
そんなクソ言語を覚える意味ないもんな

317 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 16:49:36.19 ID:aZjrg24v.net]
>>302
だから、それはそもそも何の言語でも良い話だろ。
VBAのスレなんだからVBA有利な話になるのが当たり前なんだよ。
だから1ファイルの話になるのが当然なの。

何で当たり前のことも出来ない話をしなきゃならんのかって話。

318 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 16:54:56.19 ID:aZjrg24v.net]
>>304
それはそもそもVBAである必要の無い話だろうに。
何でこのスレに来てるんだということになる。

こっちは殆どブック開いた状態が基本だよ。
だから最初から噛み合わない。

CSVなら分かるけどExcelのブックは開いて人の判断なりを使って何かするのが基本。
じゃなかったらそもそも人間が理解出来る表である必要もなく、単なるバイナリのデータで良いわけだ。



319 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 16:59:47.48 ID:xERBcwZj.net]
落ち着こうや、常にVBAが有利なわけじゃないよねって言っただけだぞ

320 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 17:00:28.44 ID:9e4CRvDY.net]
みんながみんなそういう狭い世界で生きてるわけじゃない
キミのエクセルに対する姿勢はそうだってだけで
他の人は閉じた状態でもエクセルを扱う、
複数のファイルを扱う、エクセル以外との連携もする
その前提は崩しちゃいかんと思うのよ

321 名前:デフォルトの名無しさん [2018/09/23(日) 17:04:15.89 ID:0vXeudiz.net]
みんながエクセル使えないわけやないんやでw

322 名前:デフォルトの名無しさん [2018/09/23(日) 17:06:10.83 ID:bxERXRN+.net]
だからさー、、、、話し相手が居ない淋しいプログラマの皆さんは、プログラ「ム」板のExcel VBAスレはなく
上にあるプログラマー板のどっかそういうスレで話し相手探せっつーの

それすら判らんようになってんのかいな。
ここで思いっきりマウンティングしたいというか、ここでないとマウンティング出来ないのは判るけどさー

323 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 17:08:31.58 ID:xERBcwZj.net]
このスレに来る目的とかVBAに対して取るべき態度とかそんなの人の勝手じゃんよ

324 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 17:11:49.59 ID:aZjrg24v.net]
>>309
違うっちゅうの。
閉じた状態でブック触るならそもそも何の言語でも良いし、というよりむしろVBAは不利なんじゃないの?
じゃあ、何でVBAのスレが有るかと言えばそれは開いた状態で何かする話をしたいからだろ。
そりゃ、VBAだってある程度は汎用的に使えるから閉じた状態からVBAでどうにかする話題が有っても良いけどメインじゃないでしょ。

325 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 17:15:40.69 ID:xERBcwZj.net]
C#とかでCOM経由でエクセル触る前提だけどエクセルのオブジェクトモデルについてだけ質問したいと思った人がこっちに来る可能性だって十分あるんだよなぁ

326 名前:デフォルトの名無しさん [2018/09/23(日) 17:16:23.42 ID:0vXeudiz.net]
ガキかいなw
そもそもvbaがいらない場面でvba使おうとして、あげくの果てにvbaが有利やないとか
訳わからん事言いだすプロさんがおると質問が収束せんねんw
端的に言って迷惑やねんプロさんw
>>312おまえの事やでw

327 名前:デフォルトの名無しさん [2018/09/23(日) 17:50:56.48 ID:icVHbGJq.net]
自演で荒らすのはよくないよPyキチ君

328 名前:デフォルトの名無しさん [2018/09/23(日) 18:06:38.73 ID:cRG95Xcq.net]
vbaとrubyはイロイロと空気がにてる
ゴミっぷりも似てる



329 名前:デフォルトの名無しさん [2018/09/23(日) 18:07:15.36 ID:cRG95Xcq.net]
エクセルは優秀な表計算ソフトウェア
コレは間違いない

しかしエクセルのオマケ機能のvbaはウンコ
コレは間違いない

330 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 18:09:15.69 ID:H5quPExp.net]
>>307


331 名前:キいませんあなたが何を言いたいのかよくわかりません
ブックを開いた状態から起動するマクロで有用な具体例はなにかありませんか?
抽象的な答えでごまかそうとしてませんか?
[]
[ここ壊れてます]

332 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 18:31:08.96 ID:RgL9otrm.net]
ハンカクでまた別人アピールしてるの?
いい加減に板を荒らすのは止めな

333 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 00:45:26.83 ID:LqyRy1HC.net]
ちょっと質問です。
とあるコードで
If 条件1 Then
MsgBox "メッセージ1"
End
ElseIf 条件2 Then
MsgBox "メッセージ2"
End
Else
End If
という記述を見たんですけど、Ifの中でEnd使うことってあるんですか?
やってる内容は
If 条件1 Then
MsgBox "メッセージ1"
End If
If 条件2 Then
MsgBox "メッセージ2"
End If
と同じなのかなと思ったんですけど、ご存知の方御教示頂ければ幸いです。

334 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 00:51:36.52 ID:cyCxPH/A.net]
>>321
Endのことはさておき、そのふたつのコードの意味は異なるよ

335 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 01:02:46.39 ID:LqyRy1HC.net]
>>322
本来意味が異なるのは分かるんですが、処理内容がそんな感じだったのでEndにはそういった意味があるのかな?と思って質問した次第です。

336 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 01:54:26.03 ID:GrunNCaI.net]
>>321
全く意味が違う。END使ったらプログラムが強制終了されてしまう。絶対に使うべきではない。
Sub main1()
Call sub1(True, True)
MsgBox "main終了"
End Sub
Sub sub1(条件1 As Boolean, 条件2 As Boolean)
If 条件1 Then
MsgBox "メッセージ1"
End
ElseIf 条件2 Then
MsgBox "メッセージ2"
End
Else

End If
End Sub
'結果:メッセージ1しか出ない

Sub main2()
Call sub2(True, True)
MsgBox "main2終了"
End Sub
Sub sub2(条件1 As Boolean, 条件2 As Boolean)
If 条件1 Then
MsgBox "メッセージ1"
End If
If 条件2 Then
MsgBox "メッセージ2"
End If
End Sub
'結果:メッセージ1、メッセージ2、main終了

337 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 03:08:18.87 ID:3gV95ADu.net]
Exit Sub とか Exit Function とかと違って、呼び出し元のプロシージャに返ることもなく一切のプログラムがそこで終了するコードってことだ。
Ifの中でEndを使うことがあるのかと訊かれれば、文法上は問題ないが俺だったら使わん。
もっとも、「早く返す」や「早く終了する」を追い求めたその人なりの結果かもしれんので、見かけたとしても内容次第で、問題のあるコードでなければとやかくは言わない。

338 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 05:43:58.48 ID:sHYzq55w.net]
>>321
Endステートメントを使うと、単にコードの実行が止まるだけでなくアプリケーションで保持していた全ての変数の値がリセットされ、アプリケーションに対する外部プロセスからの参照も遮断される

モードレス表示でフォームを表示している場合、値管理やカスタム常駐クラス使用のためにグローバル変数を使っている場合等には問題が生じるので本当に要注意



339 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 07:37:11.59 ID:E4VB1fuR.net]
状況わからんからなんとも言えんが致命的なエラー時に強制終了させるぐらいしかないと思う
>>321のコードは微妙にそう言うコード片な感じもするし

340 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 09:12:46.29 ID:ALTh+r7C.net]
>>321
多分エラーメッセージの後、後続処理をやりたくないのでendって書いたんだろう
exit subで抜けても呼び元に帰って続行するから

341 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 09:24:57.98 ID:LqyRy1HC.net]
皆さまありがとうございます。
ちゃんと読んでみたら終了するコードでした…お恥ずかしい…
今後質問する際は頭をリフレッシュさせて読み直してからに致します。
ご迷惑をお掛けしました。ありがとうございました!

342 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 09:47:07.47 ID:ltYXr3cK.net]
psやらrubyやら喚き叫ぶバカよりは良い w

343 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 10:16:18.94 ID:Z99vN/yN.net]
>>329
ところで

If 条件1 Then
 ・・・
ElseIf 条件2 Then
 ・・・
End If



If 条件1 Then
 ・・・
End If
If 条件2 Then


344 名前: ・・・
End If

では意味が違ってくるのはわかってますか?
[]
[ここ壊れてます]

345 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 10:25:02.72 ID:oCpujaFY.net]
周回遅れなアホ質問要らん

346 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 10:26:57.24 ID:Z99vN/yN.net]
>>332
いや、>>323のレスを見ると不安になるだろ

347 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 10:34:31.82 ID:LqyRy1HC.net]
>>331
ほんと何処に目をつけていたのか自分でも分からなくてお恥ずかしい限りですがElseの意味は分かっています。申し訳ないです…

348 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 12:24:14.30 ID:0AspGVrS.net]
>>334
訊かれてるのは ElseIf の意味だぞ



349 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 12:47:03.05 ID:3gV95ADu.net]
質問(した方が逆に質問される)スレ

350 名前:デフォルトの名無しさん [2018/09/24(月) 16:16:37.08 ID:Z99vN/yN.net]
https://qiita.com/Q11Q/items/b525330d043e2a775594
いつもながら薄気味悪い
誰に語りかけてるんだよ?

351 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 16:35:59.07 ID:e4NBE4Fp.net]
>>319
そもそもの考え方が違うから思い付かないんだろう。
例えば日付毎の生産量を表す表とグラフが有ったとする。
表示する期間を指定することでグラフ表示が変化するプログラムが有ったとしよう。

何でそんな機能が必要かといえば、表とグラフをにらめっこして、1週間後のグラフはどうだろうという要望や判断が有るからだ。

こんな例すら思い付かないんだから知識や技術が有ってもダメプログラマーなんだろうな。

352 名前:デフォルトの名無しさん [2018/09/24(月) 18:01:08.47 ID:qkXKwQlD.net]
荒らし本人が言ってもな

353 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 18:02:07.29 ID:NcXWYl5J.net]
>>337
webってそういうもんだよ
知らないの?何十年前の人間なの?

354 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 18:06:57.12 ID:In5MTxMl.net]
そんなのPowerShellかRubyで十分

355 名前:デフォルトの名無しさん [2018/09/24(月) 18:20:22.67 ID:Z99vN/yN.net]
>>340
qiita VBAタグの劣化は許しがたい
そうは思わないか?

356 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 18:28:34.71 ID:sPlVwsRd.net]
>>338
どの言語でも簡単にできる上にそういうツールって今はいくらでもあるんでVBAでやる理由としてはちょっち弱いですね
これはエクセル開いた状態のVBAじゃないと絶対無理だっていう事例を知りたいです

357 名前:デフォルトの名無しさん [2018/09/24(月) 18:32:02.32 ID:qkXKwQlD.net]
>>342
頭大丈夫か?

358 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 18:44:10.41 ID:e4NBE4Fp.net]
>>343
バーカ。
何でブックで保存するんだ?
そのファイルは結局どうするんだ?

Excelで開くんだよ。
何の為にそんなことするんだ?
業務では開いた上で人間が何らかの判断をする為だ。
そうじゃ無かったらExcelは必要ないし、人間が開く必要も無いし、ファイルもバイナリで良い筈なんだ。

開いた上で動作するものばかりである必要は無いが開いた上で作業するのが基本なんだからプログラムも開いた上で動作するのがメインなのは当たり前だろう。



359 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 18:47:21.59 ID:sPlVwsRd.net]
>>345
意味不明ですね
エクセルを開いたままVBAを使うことのメリットを納得させる決定的な具体例はまだですか?

360 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 18:48:07.49 ID:e4NBE4Fp.net]
>>343
お前の主張はExcelである必要も無い場合も含んでる。
というかその割合も多いだろう。
だからお前がここに来てるのもまったくおかしい。

絶対に無理とか






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<289KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef