スレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※関連スレ
VBAなんでも質問スレ Part2
http://mevius.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
http://mevius.2ch.net/test/read.cgi/tech/1328536426/
※前スレ
Excel VBA 質問スレ Part51
http://mevius.2ch.net/test/read.cgi/tech/1510107990/
探検
Excel VBA 質問スレ Part52
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/01/27(土) 20:25:05.67ID:Xe+uGT7T392385
2018/03/15(木) 01:06:52.75ID:3pohbyhz >>390
あ、分かった、俺が悪かった
タスクスケジューラで直接エクセルを起動した場合は、この現象起きなかった気がする
DOSのバッチ経由で起動すると起きる気がする
で、「OSに任せる」と、非アクティブ時に無駄にCPUとメモリを食うと
なるほど
留意点は分かったけど、理屈は分からんw
あ、分かった、俺が悪かった
タスクスケジューラで直接エクセルを起動した場合は、この現象起きなかった気がする
DOSのバッチ経由で起動すると起きる気がする
で、「OSに任せる」と、非アクティブ時に無駄にCPUとメモリを食うと
なるほど
留意点は分かったけど、理屈は分からんw
393387
2018/03/15(木) 01:42:16.85ID:NnpmsWbw プロセスには、2種類ある
ユーザーが管理している、画面を持つ(GUI)プロセスと、
OS が管理している、画面を持たない(CUI)、
バックグラウンドで動作する、サーバーのようなプロセス
上は、プロセスに親子関係があるけど、
下は、OS がプロセスの親になるとか?
ユーザーが管理している、画面を持つ(GUI)プロセスと、
OS が管理している、画面を持たない(CUI)、
バックグラウンドで動作する、サーバーのようなプロセス
上は、プロセスに親子関係があるけど、
下は、OS がプロセスの親になるとか?
394デフォルトの名無しさん
2018/03/15(木) 06:34:45.23ID:z1/gBAj5 フォルダ内の複数のエクセルファイルを開いて指定シートをコピーして閉じるを繰り返したい。コピーするシートは各エクセルに対して1シートのみ。
シート名は個人名でそれぞれバラバラなんだけどいい方法ない?
シート名は個人名でそれぞれバラバラなんだけどいい方法ない?
395デフォルトの名無しさん
2018/03/15(木) 06:42:29.06ID:VNc1eFwU 1シートしかないブックにする
396デフォルトの名無しさん
2018/03/15(木) 07:23:11.51397デフォルトの名無しさん
2018/03/15(木) 08:20:13.69ID:Q+OFwlGZ 質問です。
whatif のデータテーブルで、sheet1にある式をsheet2から参照したいのですが、「代入セルの参照が正しくありません。」というエラーが出ます。
sheet1の同じシート内でやる時はエラーは出ないのですが、別シートは参照出来ないのでしょうか。
whatif のデータテーブルで、sheet1にある式をsheet2から参照したいのですが、「代入セルの参照が正しくありません。」というエラーが出ます。
sheet1の同じシート内でやる時はエラーは出ないのですが、別シートは参照出来ないのでしょうか。
398デフォルトの名無しさん
2018/03/15(木) 08:24:47.39 >>397
VBAの質問じゃなくね?
VBAの質問じゃなくね?
399デフォルトの名無しさん
2018/03/15(木) 12:47:59.22ID:kdbViSCg メゾット君いて草
400デフォルトの名無しさん
2018/03/15(木) 13:26:06.11ID:GiNZbVBW >>397
馬鹿は死ねよ
馬鹿は死ねよ
401デフォルトの名無しさん
2018/03/15(木) 19:29:22.65ID:givVJukY402デフォルトの名無しさん
2018/03/15(木) 21:40:55.79ID:khWCS+hx 入力規則でセルに選択リストを作りました
で、セルのプルダウンで選んだアイテムが
何行目か?っていうのを知りたいんだけれど
doとかfor文でリスト先頭から一致検索するしかないのかな?
一発でアイテムのカウント何件目か取得する事って出来たりするんかなぁ?
で、セルのプルダウンで選んだアイテムが
何行目か?っていうのを知りたいんだけれど
doとかfor文でリスト先頭から一致検索するしかないのかな?
一発でアイテムのカウント何件目か取得する事って出来たりするんかなぁ?
403デフォルトの名無しさん
2018/03/15(木) 22:18:17.27ID:obWJCYhi match関数で行けないかな?
404デフォルトの名無しさん
2018/03/16(金) 07:44:18.61ID:D9gIY3FC >>394なんだが、フォルダ内のエクセルをループして開いて、目的のシートのオブジェクト名を統一してファイル開いてオブジェクト名をfor eachでヒットさせて、functionでそのシートをテキストにしたいんだがどうすればいい?ループさせてヒットさせるまではできた。
結果txtファイルは同フォルダ内の1個あってそれに更新して書き込んで行きたいんだが。
誰か教えて下さい。
結果txtファイルは同フォルダ内の1個あってそれに更新して書き込んで行きたいんだが。
誰か教えて下さい。
405デフォルトの名無しさん
2018/03/16(金) 08:28:41.10ID:qMVu/e+c 意味わからんしほぼ丸投げ感ある
406デフォルトの名無しさん
2018/03/16(金) 08:55:16.84ID:4vfDYpgH csvにエクスポートでもすればいいよ
マクロの記録でコード作れば
マクロの記録でコード作れば
407デフォルトの名無しさん
2018/03/16(金) 17:01:45.82ID:tJ/sJf9+ 全キャラエリーン化MOD希望します
408デフォルトの名無しさん
2018/03/16(金) 17:02:19.93ID:tJ/sJf9+ 誤爆w
409デフォルトの名無しさん
2018/03/16(金) 22:56:27.26ID:hrS8kMFb >>404だけどネットで探しながら作ってみてできたんだけど、
一回目のエクセルブックの指定したシートをoutputでテキストファイルに書き込み。2回目以降をApend?だっけ?で続きに書き込んでいくんだけど、outputとApend の違いだけで書き込みコードが2つあるのを一つにまとめるにはどうしたら出来ますか?
一回目のエクセルブックの指定したシートをoutputでテキストファイルに書き込み。2回目以降をApend?だっけ?で続きに書き込んでいくんだけど、outputとApend の違いだけで書き込みコードが2つあるのを一つにまとめるにはどうしたら出来ますか?
410デフォルトの名無しさん
2018/03/16(金) 23:04:26.61ID:ikUU8ykN411デフォルトの名無しさん
2018/03/17(土) 00:32:21.24412デフォルトの名無しさん
2018/03/17(土) 06:33:04.45ID:n47xCJZ+ 質問です
今EXCELで対戦格闘ゲームを作っているのですが
キャラクター同士の当たり判定は
それぞれ攻撃用、体用と別々に持つことで
正しく動いています。
ただ攻撃が当たった時のヒットマークを表示する位置を
どのように算出すれば良いかが思いつきません。
何か良い方法はないでしょうか?
ちなみにキャラクターはシートのセルを方眼紙のように見立てて
横256*縦200で1セルを1ドットに見立てて行っています。
今EXCELで対戦格闘ゲームを作っているのですが
キャラクター同士の当たり判定は
それぞれ攻撃用、体用と別々に持つことで
正しく動いています。
ただ攻撃が当たった時のヒットマークを表示する位置を
どのように算出すれば良いかが思いつきません。
何か良い方法はないでしょうか?
ちなみにキャラクターはシートのセルを方眼紙のように見立てて
横256*縦200で1セルを1ドットに見立てて行っています。
413デフォルトの名無しさん
2018/03/17(土) 07:23:19.78ID:n47xCJZ+ 言い忘れていましたが
当たり判定は各キャラクターの動作毎、絵柄毎に
攻撃用が1〜3個、体用が1〜5個の四角い範囲を持っていて
それが重なったかどうかで判定を行なっています。
動作とは例えば小パンチとか、大パンチとかを指します。
同じ絵柄でも違う動作の場合は
違う範囲で当たり判定を行えるようにしています。
当たり判定は各キャラクターの動作毎、絵柄毎に
攻撃用が1〜3個、体用が1〜5個の四角い範囲を持っていて
それが重なったかどうかで判定を行なっています。
動作とは例えば小パンチとか、大パンチとかを指します。
同じ絵柄でも違う動作の場合は
違う範囲で当たり判定を行えるようにしています。
414デフォルトの名無しさん
2018/03/17(土) 07:48:47.16ID:71uTBaAx415デフォルトの名無しさん
2018/03/17(土) 08:14:30.06ID:n47xCJZ+416デフォルトの名無しさん
2018/03/17(土) 08:23:52.27ID:0VMaqrOi417デフォルトの名無しさん
2018/03/17(土) 09:02:41.97ID:8EqoOoha 生きる!!!!!
(´・ω・`)b
(´・ω・`)b
418デフォルトの名無しさん
2018/03/17(土) 09:10:30.63ID:71uTBaAx >>415
「ゲームプログラミングなら俺に聞け」とか、そういうスレの方が絶対いいと思う
「ゲームプログラミングなら俺に聞け」とか、そういうスレの方が絶対いいと思う
419デフォルトの名無しさん
2018/03/17(土) 11:01:00.47ID:plFeqth9 ヒットマークとやらをどう表示したいのかも書いてない
こんなんで回答がつくわけない
質問の体を装ったただの俺こんなの作ってるスゲーだろアピール
こんなんで回答がつくわけない
質問の体を装ったただの俺こんなの作ってるスゲーだろアピール
420デフォルトの名無しさん
2018/03/17(土) 12:28:23.68ID:zttMJW/5 当たり判定とヒットマークの位置関係だけあらかじめ決めておいて、あとはヒットした当たり判定のセル位置のアドレスなり座標なりからオフセット参照するだけじゃん
421デフォルトの名無しさん
2018/03/17(土) 12:53:01.02ID:0VMaqrOi422デフォルトの名無しさん
2018/03/17(土) 13:02:49.05ID:JhGe8NGg マウントって簡単に言いすぎ
倫理をふりかざして人を委縮させようとする言動に限らないと
言葉の力がなくなってしまう
倫理をふりかざして人を委縮させようとする言動に限らないと
言葉の力がなくなってしまう
423デフォルトの名無しさん
2018/03/17(土) 13:38:51.05ID:heA3uIoa424デフォルトの名無しさん
2018/03/17(土) 14:18:21.64ID:7XiT0JZV >>412
もしかして当たった位置が判らないということですか?
もしかして当たった位置が判らないということですか?
425デフォルトの名無しさん
2018/03/17(土) 15:07:46.54ID:JHaB3/LC >>412
へぇ、このスレでは珍しい質問だね。
あくまでひとつの方法としての提案だけど、
当たり判定が出来るということは攻撃範囲と体範囲って呼んでるけど、
それが重なったことは判定出来てるんだよね?
なら重なった範囲の中心にヒットマークを出すようにすればいいと思うよ。
つまりキャラAの右下セルよりキャラBの左上セルが
左上にあって、かつ
キャラAの左上セルよりキャラBの右下セルが右下にある場合、これがキャラが重なった「当たった」ことに該当するんだけど、
この状態からキャラAの右下セルからキャラBの左上セルの縦横それぞれの差分を出して
それを2で割ってキャラAの右下セルの縦と横にそれぞれ足してやれば求められるはず。
後は複数判定用の範囲を持ってるというところで
どの範囲を優先するかの優先順位をつけて。
頑張って下さいね。
へぇ、このスレでは珍しい質問だね。
あくまでひとつの方法としての提案だけど、
当たり判定が出来るということは攻撃範囲と体範囲って呼んでるけど、
それが重なったことは判定出来てるんだよね?
なら重なった範囲の中心にヒットマークを出すようにすればいいと思うよ。
つまりキャラAの右下セルよりキャラBの左上セルが
左上にあって、かつ
キャラAの左上セルよりキャラBの右下セルが右下にある場合、これがキャラが重なった「当たった」ことに該当するんだけど、
この状態からキャラAの右下セルからキャラBの左上セルの縦横それぞれの差分を出して
それを2で割ってキャラAの右下セルの縦と横にそれぞれ足してやれば求められるはず。
後は複数判定用の範囲を持ってるというところで
どの範囲を優先するかの優先順位をつけて。
頑張って下さいね。
426デフォルトの名無しさん
2018/03/17(土) 22:00:46.63ID:plFeqth9 自演死ね
427デフォルトの名無しさん
2018/03/18(日) 01:02:38.92ID:5x2puHKk 教えてください。
別ブックを範囲(A10:B24)指定してコピーして
現在のブックA10をはじめとした範囲にペーストしたいのですが、
なぜか参照ブックをアクティブにした上で範囲指定ができません。
最初のブック・・・A.xlsm
参照ブック・・・nal.xls 参照シート:sheet10
参照ブックのデータ最終行・・・i (24が入っています)
Dim i As Integer
Workbooks("nal.xls").Activate
i = Worksheets("sheet10").Range("A10").End(xlDown).Row
Workbooks("nal.xls").Activate
Worksheets("sheet10").Activate
Range(Cells(10, 1), Cells(i, 2)).Select ←RangeクラスのSelectメソッドが失敗しました。
Selection.Copy
どなたか助けてください。
別ブックを範囲(A10:B24)指定してコピーして
現在のブックA10をはじめとした範囲にペーストしたいのですが、
なぜか参照ブックをアクティブにした上で範囲指定ができません。
最初のブック・・・A.xlsm
参照ブック・・・nal.xls 参照シート:sheet10
参照ブックのデータ最終行・・・i (24が入っています)
Dim i As Integer
Workbooks("nal.xls").Activate
i = Worksheets("sheet10").Range("A10").End(xlDown).Row
Workbooks("nal.xls").Activate
Worksheets("sheet10").Activate
Range(Cells(10, 1), Cells(i, 2)).Select ←RangeクラスのSelectメソッドが失敗しました。
Selection.Copy
どなたか助けてください。
428デフォルトの名無しさん
2018/03/18(日) 03:11:59.88ID:Ml7D0I3C 複数シートでゴニョゴニョする際は
Worksheets("sheet10").Range(Worksheets("sheet10").Cells(10, 1), Worksheets("sheet10").Cells(i, 2)).Select
と略さずに書くといいよ
デバッグ中につい違うページ開いちゃうと後で泣きを見る
Worksheets("sheet10").Range(Worksheets("sheet10").Cells(10, 1), Worksheets("sheet10").Cells(i, 2)).Select
と略さずに書くといいよ
デバッグ中につい違うページ開いちゃうと後で泣きを見る
429デフォルトの名無しさん
2018/03/18(日) 03:58:35.89ID:JrJJTzVM Aブックに、BブックをOpenするコードが書いてあります。
困ったことにBブックが正常に開くこともあれば、
長時間たってもビジー状態が続き開かないこともあります。
これはAブックから開くときだけでなく、Bブックのアイコンをダブルクリックしても同様です。
そんなときでも、エクセルを強制終了した後にBブックを開くとなぜか問題なく開くことも多いです。
Bブックの問題を取り除くのが正しい方法なんでしょうが、とりあえずの対策として、
wb = Workbooks.Open(strPath & "\" & "B.xslm")
で、AブックがBブックをOpenした後に一定時間経過後にBブックの特定のセルの内容を読み取れなければ、
Bブックを強制的に閉じて、再度Bブックを開き直すというコードを書こうと思ったのですが、
wb = Workbooks.Open(strPath & "\" & "B.xslm") を実行すると、
Bブックが開くまでAブックのマクロが止まってしまい、Bブックのセルが読めるかどうか判定することができません。
どうしたらよいでしょうか?
困ったことにBブックが正常に開くこともあれば、
長時間たってもビジー状態が続き開かないこともあります。
これはAブックから開くときだけでなく、Bブックのアイコンをダブルクリックしても同様です。
そんなときでも、エクセルを強制終了した後にBブックを開くとなぜか問題なく開くことも多いです。
Bブックの問題を取り除くのが正しい方法なんでしょうが、とりあえずの対策として、
wb = Workbooks.Open(strPath & "\" & "B.xslm")
で、AブックがBブックをOpenした後に一定時間経過後にBブックの特定のセルの内容を読み取れなければ、
Bブックを強制的に閉じて、再度Bブックを開き直すというコードを書こうと思ったのですが、
wb = Workbooks.Open(strPath & "\" & "B.xslm") を実行すると、
Bブックが開くまでAブックのマクロが止まってしまい、Bブックのセルが読めるかどうか判定することができません。
どうしたらよいでしょうか?
430デフォルトの名無しさん
2018/03/18(日) 04:24:15.80ID:/1Of5770 >>429
開けていないものを閉じろと言うのは無理ゲー
開けていないものを閉じろと言うのは無理ゲー
431デフォルトの名無しさん
2018/03/18(日) 06:47:14.19ID:JFJ3EKTR 最初にタスクマネージャーで、
起動中のすべてのExcel を、強制終了させてから実行すれば?
たぶん、起動中のExcel が、そのブックをつかんでいるのだろう
起動中のすべてのExcel を、強制終了させてから実行すれば?
たぶん、起動中のExcel が、そのブックをつかんでいるのだろう
432412
2018/03/18(日) 11:12:47.56ID:l25Pelu+433デフォルトの名無しさん
2018/03/18(日) 11:21:02.32ID:A1IN0XTG >>432
VBA初心者でこのスレをたまにチラチラ見ているものですが
「EXCELで対戦格闘ゲーム」ってものがどういうものなのか全然想像できないです
(どうやったらそんなことできるの! てかどんな画面になるの!! 状態です)
もしよろしければ、何か雰囲気の掴めそうな画像か
もしくは、そういう人たちが作ったゲームのリンクなどを紹介していただけると嬉しいです
VBA初心者でこのスレをたまにチラチラ見ているものですが
「EXCELで対戦格闘ゲーム」ってものがどういうものなのか全然想像できないです
(どうやったらそんなことできるの! てかどんな画面になるの!! 状態です)
もしよろしければ、何か雰囲気の掴めそうな画像か
もしくは、そういう人たちが作ったゲームのリンクなどを紹介していただけると嬉しいです
434427
2018/03/18(日) 21:11:28.30ID:5x2puHKk >>428
お返事遅くなってすみません。
コード丸写しで略さずにかいたところ、うまく動きました。
エラーの前のbookとsheetをアクティブにしただけでは足りなかったようで。
勉強になりました。
ありがとうございました。
お返事遅くなってすみません。
コード丸写しで略さずにかいたところ、うまく動きました。
エラーの前のbookとsheetをアクティブにしただけでは足りなかったようで。
勉強になりました。
ありがとうございました。
435デフォルトの名無しさん
2018/03/18(日) 21:34:46.44ID:utQAsfrI on
436デフォルトの名無しさん
2018/03/18(日) 21:35:52.97ID:utQAsfrI ontimeでopenするとかは?
437デフォルトの名無しさん
2018/03/19(月) 07:21:13.16ID:We1Ev2gv >>433
ちと古いけどこういうのがある
Excel VBA アクションゲーム作成入門 Excel 2007/2003/2002 対応
https://book.impress.co.jp/books/2686
ちと古いけどこういうのがある
Excel VBA アクションゲーム作成入門 Excel 2007/2003/2002 対応
https://book.impress.co.jp/books/2686
438デフォルトの名無しさん
2018/03/19(月) 20:14:20.80ID:uXl73OAC >>437
紹介ありがとうだけど…、本だとやっぱりよく実感がつかめない…
でその本のタイトルで色々ググってみたら実際にゲームをやってる動画が出てきた
エクセルでスーパーマリオを作ってみた
http://www.nico video.jp/watch/sm12052293
Excelでこんなものが作れちゃうってすごい!(というか見てもなお信じられないが)
紹介ありがとうだけど…、本だとやっぱりよく実感がつかめない…
でその本のタイトルで色々ググってみたら実際にゲームをやってる動画が出てきた
エクセルでスーパーマリオを作ってみた
http://www.nico video.jp/watch/sm12052293
Excelでこんなものが作れちゃうってすごい!(というか見てもなお信じられないが)
439デフォルトの名無しさん
2018/03/19(月) 20:59:21.19ID:Lmqu9UWt440デフォルトの名無しさん
2018/03/19(月) 22:27:28.31ID:bkGJBs4p スーパーマリオのDLLとかあるんか?
すげーなエクセルって
すげーなエクセルって
441デフォルトの名無しさん
2018/03/19(月) 23:08:18.69ID:SfVA8M0M >>440
DLLは自分でいくらでも作れるし、スーパーマリオもDLL化は可能だけど普通はそんなバカなことはやらない
DLLは自分でいくらでも作れるし、スーパーマリオもDLL化は可能だけど普通はそんなバカなことはやらない
442デフォルトの名無しさん
2018/03/20(火) 00:08:55.57ID:w5UAsH4d443デフォルトの名無しさん
2018/03/20(火) 00:13:05.69ID:XeOK7PK4444デフォルトの名無しさん
2018/03/20(火) 01:20:07.81ID:NBntR4Uy はいはい、メゾット君は無視しましょうね〜
445デフォルトの名無しさん
2018/03/20(火) 06:01:07.86ID:w5UAsH4d メゾット野郎はいつも口先ばかりwwwwwwww
違うってんならゲーム作ってみせろ無能wwwwwwwwwww
違うってんならゲーム作ってみせろ無能wwwwwwwwwww
446デフォルトの名無しさん
2018/03/20(火) 08:02:11.84ID:Su8VuYEw ゲームをエクセルで作る意味って何があるの?
447デフォルトの名無しさん
2018/03/20(火) 08:03:53.80ID:TJC60I00 意味は他人に教わるものじゃない
自分で見出すのだ
自分で見出すのだ
448デフォルトの名無しさん
2018/03/20(火) 08:14:23.93ID:mdjnVZmX やろうと思えばできるって言ってもなあ
やってない人が言ってもみたいな
やってない人が言ってもみたいな
449デフォルトの名無しさん
2018/03/20(火) 08:32:50.91ID:Su8VuYEw マリオのゲームってもコントロールしてるわけじゃないでしょ?
ドットに色表示してるだけじゃないの?
ドットに色表示してるだけじゃないの?
450デフォルトの名無しさん
2018/03/20(火) 09:49:54.48ID:uUCQMwFd451デフォルトの名無しさん
2018/03/20(火) 15:10:05.57ID:HXa9qFC5452デフォルトの名無しさん
2018/03/20(火) 16:00:38.63ID:J0Id73NT DLLしたあとインスコするんだったっけ。
453デフォルトの名無しさん
2018/03/20(火) 19:53:45.15ID:FFuoeUFR >>452
同じフォルダに置いておけば使えるだろw
同じフォルダに置いておけば使えるだろw
454デフォルトの名無しさん
2018/03/20(火) 20:20:30.33ID:GZSZ4At9 ボケ殺し
455デフォルトの名無しさん
2018/03/20(火) 22:16:37.59ID:BysB7y8w アスペなんやで
456デフォルトの名無しさん
2018/03/20(火) 22:48:23.28ID:9kggXYDo 質問です。
任意のフォルダ(ThisBookと同じフォルダ)の中にある
xlsファイルの数を取得する方法を考えています。
Dim N as Integer
With CreateObject("Scripting.FileSystemObject")
For Each ff In .GetFolder(ThisWorkbook.Path).Files
If UCase(.GetExtensionName(ff.Path)) = "xls" Then N = N + 1
Next
End With
ネットで調べてみたものの、カウントがされません。
現在対象のフォルダにはxlsファイルが一つあります。
どこを修正すれば良いのでしょうか。
教えてください。
任意のフォルダ(ThisBookと同じフォルダ)の中にある
xlsファイルの数を取得する方法を考えています。
Dim N as Integer
With CreateObject("Scripting.FileSystemObject")
For Each ff In .GetFolder(ThisWorkbook.Path).Files
If UCase(.GetExtensionName(ff.Path)) = "xls" Then N = N + 1
Next
End With
ネットで調べてみたものの、カウントがされません。
現在対象のフォルダにはxlsファイルが一つあります。
どこを修正すれば良いのでしょうか。
教えてください。
457デフォルトの名無しさん
2018/03/20(火) 23:07:13.92ID:BysB7y8w >>456
UCaseの意味をもう一度調べてみれば?
UCaseの意味をもう一度調べてみれば?
458デフォルトの名無しさん
2018/03/20(火) 23:25:24.58ID:qVb9KqM8 Ruby なら、これだけだが
puts Dir.glob('*.txt').size #=> 5
puts Dir.glob('*.txt').size #=> 5
459デフォルトの名無しさん
2018/03/20(火) 23:29:52.36ID:9kggXYDo460デフォルトの名無しさん
2018/03/21(水) 11:16:23.41ID:7pPMZ9pD461デフォルトの名無しさん
2018/03/21(水) 23:19:13.74ID:1JiLJjJR そーゆー感性ってすごく大事
なんとなくだが
なんとなくだが
462デフォルトの名無しさん
2018/03/22(木) 23:48:33.27ID:wY4uz5GL そいうWithの使い方は嫌い
んとなくだが
んとなくだが
463デフォルトの名無しさん
2018/03/23(金) 05:10:41.67ID:fhxmeXqE 寧ろ、with はああいう使い方をすべきなんじゃないの。単なる記述の省略としてだけでなく。
464デフォルトの名無しさん
2018/03/23(金) 07:23:25.20ID:KEQJOoX5 いんや、.NetのUsingみたいに解放は確実に出来るけど
ひとつのスコープにひとつしか使えないし
コーディングに慣れてる人には
一瞬、どこで生成してるの?ってなるから
可読性の見地からイマイチかなと思う
ひとつのスコープにひとつしか使えないし
コーディングに慣れてる人には
一瞬、どこで生成してるの?ってなるから
可読性の見地からイマイチかなと思う
465デフォルトの名無しさん
2018/03/23(金) 07:26:59.80ID:L9ucwTOA 既におなじみの使い方だろうとしか
466デフォルトの名無しさん
2018/03/23(金) 07:47:34.14ID:Kb85u4Z4 withってusingみたいに解放してくれるんだ
Set使うより簡潔にできるのね
Set使うより簡潔にできるのね
467デフォルトの名無しさん
2018/03/23(金) 08:04:55.76ID:FQA7q+b8468デフォルトの名無しさん
2018/03/23(金) 08:12:14.14ID:3JBwFnH8 こんなもんコピペグラマーでもしょっちゅう目にしてるはず
この程度でわかりにくいとか、どんだけ素人だ
ただ、老眼の俺にはドットの見落とし、書き漏らしがちょっと怖い
この程度でわかりにくいとか、どんだけ素人だ
ただ、老眼の俺にはドットの見落とし、書き漏らしがちょっと怖い
469デフォルトの名無しさん
2018/03/23(金) 12:22:12.90ID:5CV31jFy470デフォルトの名無しさん
2018/03/23(金) 18:30:24.67ID:fhxmeXqE471デフォルトの名無しさん
2018/03/23(金) 19:28:31.68ID:L9ucwTOA472デフォルトの名無しさん
2018/03/23(金) 20:26:02.56ID:qUw1cRZJ 無知なのは仕方がないとしてもEnd Withの後にClass_Terminateが呼び出されるのなら
論理的な帰結としてWithがオブジェクトの解放をしているのではないと気がついて欲しかったなあ
論理的な帰結としてWithがオブジェクトの解放をしているのではないと気がついて欲しかったなあ
473デフォルトの名無しさん
2018/03/23(金) 20:32:59.84ID:L9ucwTOA474デフォルトの名無しさん
2018/03/23(金) 20:43:47.72ID:L9ucwTOA それに「無知」とは何のことかな?
非明示的にデストラクトされてもFreeはされない言語があってその事を知らない、という意味かな?
だとしたら知らない
非明示的にデストラクトされてもFreeはされない言語があってその事を知らない、という意味かな?
だとしたら知らない
475デフォルトの名無しさん
2018/03/23(金) 22:16:31.73ID:LTH6T9fs476デフォルトの名無しさん
2018/03/23(金) 22:31:56.84ID:DV5xQmy6 解放の方法が違う程度の事を気にしてたら現場で発狂しまくりだろうなぁ
477デフォルトの名無しさん
2018/03/24(土) 00:04:50.79ID:X8NV5dnx スタイルは大事だから気にするわな。
気にしない奴はバグ増えまくりだ。
現場が忙しくなると崩れて来る。
そして俺のバグも増えるというわけさ。
気にしない奴とは仕事したくないな。
気にしない奴はバグ増えまくりだ。
現場が忙しくなると崩れて来る。
そして俺のバグも増えるというわけさ。
気にしない奴とは仕事したくないな。
478デフォルトの名無しさん
2018/03/24(土) 00:39:44.09ID:TyYpGZwY 解放の方法てwそんなもんないわwww
479デフォルトの名無しさん
2018/03/24(土) 01:08:51.19ID:nM3MUJGs プログラマってどういう大学のでの人たちがやってるんだ?
あんま高学歴のイメージ湧かないんだけど
あんま高学歴のイメージ湧かないんだけど
480デフォルトの名無しさん
2018/03/24(土) 02:40:55.22 Withをネストして内側から外側を参照するにはどうすればいいの?
最悪それ自身のオブジェクトを変数に保持できればいいけどできないよね?
>>456を例にとると(この場合ネストするメリットは何もないけど)
Dim N As Integer
With CreateObject("Scripting.FileSystemObject")
Dim obj As Object
Set obj = .
With .GetFolder(ThisWorkbook.Path)
For Each ff In .Files
If LCase(obj.GetExtensionName(ff.Path)) = "xls" Then N = N + 1
Next
End With
End With
とか
Dim N As Integer
With CreateObject("Scripting.FileSystemObject")
With .GetFolder(ThisWorkbook.Path)
For Each ff In .Files
If LCase(..GetExtensionName(ff.Path)) = "xls" Then N = N + 1
Next
End With
End With
とか
最悪それ自身のオブジェクトを変数に保持できればいいけどできないよね?
>>456を例にとると(この場合ネストするメリットは何もないけど)
Dim N As Integer
With CreateObject("Scripting.FileSystemObject")
Dim obj As Object
Set obj = .
With .GetFolder(ThisWorkbook.Path)
For Each ff In .Files
If LCase(obj.GetExtensionName(ff.Path)) = "xls" Then N = N + 1
Next
End With
End With
とか
Dim N As Integer
With CreateObject("Scripting.FileSystemObject")
With .GetFolder(ThisWorkbook.Path)
For Each ff In .Files
If LCase(..GetExtensionName(ff.Path)) = "xls" Then N = N + 1
Next
End With
End With
とか
481470
2018/03/24(土) 02:46:47.80ID:fNSyCTew スマソが、結局>>456のコードにおいて、fileSystemObjectはEnd withのタイミングでfreeされるってことでok?
で、With OpenTextFile()とした場合も同様にcloseされる理解でok?
で、With OpenTextFile()とした場合も同様にcloseされる理解でok?
482デフォルトの名無しさん
2018/03/24(土) 02:53:52.34ID:fNSyCTew483デフォルトの名無しさん
2018/03/24(土) 03:02:44.42 >>481
With New ObjectX
.Exec
End With
は、
Dim obj As ObjectX
Set obj = New ObjectX
obj.Exec
Set obj = Nothing
と同等という理解
根拠となる文献は↓の人が挙げてくれるはず
With New ObjectX
.Exec
End With
は、
Dim obj As ObjectX
Set obj = New ObjectX
obj.Exec
Set obj = Nothing
と同等という理解
根拠となる文献は↓の人が挙げてくれるはず
484デフォルトの名無しさん
2018/03/24(土) 03:12:24.84ID:TyYpGZwY つまりNothingを代入してもオブジェクトが解放されないのと同様にEnd Withでオブジェクトは解放されない
たまたまそこでオブジェクトの参照カウントが0になったから解放されただけ
たまたまそこでオブジェクトの参照カウントが0になったから解放されただけ
485デフォルトの名無しさん
2018/03/24(土) 04:09:07.06ID:fNSyCTew > freeされる
という表現が悪かったか。
Nothing代入と等価ならそれでええです。いずれにせよその類の機能はwithに無いと思っていたので。
ありがとう。
という表現が悪かったか。
Nothing代入と等価ならそれでええです。いずれにせよその類の機能はwithに無いと思っていたので。
ありがとう。
486デフォルトの名無しさん
2018/03/24(土) 05:50:00.67ID:3Pb/XQ// >>484
うん?.Net系と勘違いしてない?
.Net系は確かに参照しているところが無くなればガベージコレクションで解放するけど
VBAや旧VBであるVB6はNothingを入れるとそのObjectそのものが解放される仕組みだと思ったけど
うん?.Net系と勘違いしてない?
.Net系は確かに参照しているところが無くなればガベージコレクションで解放するけど
VBAや旧VBであるVB6はNothingを入れるとそのObjectそのものが解放される仕組みだと思ったけど
487デフォルトの名無しさん
2018/03/24(土) 05:57:47.30ID:Ou2f/XLi 参考までに
With New ObjectX
.Exec
End With
→End Withで解放される
With New ObjectY
.Exec
GoTo Line1
End With
Line1:
→解放されない(関数の最後で解放)
GoTo Line2
With New ObjectZ
Line2:
.Exec
End With
→生成されない(.Execで実行時エラー)
With New ObjectX
.Exec
End With
→End Withで解放される
With New ObjectY
.Exec
GoTo Line1
End With
Line1:
→解放されない(関数の最後で解放)
GoTo Line2
With New ObjectZ
Line2:
.Exec
End With
→生成されない(.Execで実行時エラー)
488デフォルトの名無しさん
2018/03/24(土) 06:08:07.14ID:Ou2f/XLi >>486
仮にClass1で以下のプロパティが定義されているとすると
Public Property Get Self() As Class1
Set Self = Me
End Property
以下のWithで生成されたオブジェクトはEnd Withで解放されない
Dim obj As Class1
With New Class1
Set obj = .Self
End With
仮にClass1で以下のプロパティが定義されているとすると
Public Property Get Self() As Class1
Set Self = Me
End Property
以下のWithで生成されたオブジェクトはEnd Withで解放されない
Dim obj As Class1
With New Class1
Set obj = .Self
End With
489デフォルトの名無しさん
2018/03/24(土) 06:24:23.25ID:3Pb/XQ// >>488
同様にNotingを入れると?
同様にNotingを入れると?
490デフォルトの名無しさん
2018/03/24(土) 08:07:41.90ID:dVRvT3Vm491デフォルトの名無しさん
2018/03/24(土) 08:16:33.84ID:wM3wzjps■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 【悲報】日本人「日本が中国と戦争になったら世界中の国が応援してくれるぞ!」 [616817505]
- 小野田経済安保相「すぐに経済的威圧するところへの依存はリスク」😲 [861717324]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 【ほんこん悲報】吉本新喜劇の中国公演が中止に! [523957489]
