Excel VBA 質問スレ Part52

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/01/27(土) 20:25:05.67ID:Xe+uGT7T
スレ立ての際は一行目に
!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/
382デフォルトの名無しさん
垢版 |
2018/03/13(火) 17:57:59.90
>>381
「vlookup vba」でggrks

検索結果の例: https://www.sejuku.net/blog/29654
383381
垢版 |
2018/03/13(火) 18:11:15.85ID:Fj3wIRvx
すみません。解決しました。
2018/03/14(水) 01:32:37.37ID:jWcIaZnH
済んだハナシで済みません
385デフォルトの名無しさん
垢版 |
2018/03/14(水) 20:38:23.29ID:LX5CWuB3
IEやExcelを非アクティブのままバッチ処理してると、CPUやメモリをやたら消費するのはなんでだろ?
AppActivateで対処はできてるけど、理由が分からないのが気持ち悪い
(ちなみにAppActivateは自アプリを前面にできないのはなんでだろ?いちいち別のVBSを呼び出してる)

Excelが「遅くなる」点については調べてる人がいて、「非アクティブでは遠慮して動くから」と
CPUが櫛型に動いてる様子を紹介してた

ならCPU使用率が下がるはずなのに現実は逆で、やたら使用率が上がり、メモリも何倍も上がる
遅い分イベントが貯まってスタックが貯まってメモリが上がって、そのためにCPUも上がるのかな
「遠慮する」機構が裏目に出てるのかな
2018/03/14(水) 21:36:34.44ID:e3akNBzY
>>385
一目で馬鹿とわかる文章
2018/03/14(水) 21:38:17.91ID:QheYb9tS
IE, Excel などのプロセスを終了していないとか?
ドンドン起動しても終了しないから、プロセスが無限に増えていってるとか?

タスクマネージャーで見れば?
2018/03/14(水) 22:18:16.08ID:LX5CWuB3
>>387
1プロセスの話
それに、プロセスが貯まってる話ならなんでAppActivateで解決するのん?
2018/03/14(水) 23:50:59.44ID:+W/Ve/Kf
>>388
馬鹿丸出し
390387
垢版 |
2018/03/14(水) 23:58:49.45ID:QheYb9tS
例えば、コマンドプロンプトから、Ruby を起動して、そのソースコードから、
Selenium WebDriver で、ブラウザを起動すると、
これらは、GUI のプロセスだから、プロセスに親子関係がある。
(親) コマンドプロンプト → Ruby (子) → ブラウザ (孫)

だから、親か子を終了すると、孫のブラウザも終了する

でも、VBScript(VBS) などで、CUI モードを使うと、親子関係を断ち切るから、
(親) VBS → ブラウザ・Excel (子)

VBS を終了しても、ブラウザ・Excel は終了されない。
子プロセスを、自分で管理せず、OS に任せている状態になる
391385
垢版 |
2018/03/15(木) 01:02:06.87ID:3pohbyhz
>>390
話聞いてる?
392385
垢版 |
2018/03/15(木) 01:06:52.75ID:3pohbyhz
>>390
あ、分かった、俺が悪かった
タスクスケジューラで直接エクセルを起動した場合は、この現象起きなかった気がする
DOSのバッチ経由で起動すると起きる気がする
で、「OSに任せる」と、非アクティブ時に無駄にCPUとメモリを食うと
なるほど
留意点は分かったけど、理屈は分からんw
393387
垢版 |
2018/03/15(木) 01:42:16.85ID:NnpmsWbw
プロセスには、2種類ある

ユーザーが管理している、画面を持つ(GUI)プロセスと、

OS が管理している、画面を持たない(CUI)、
バックグラウンドで動作する、サーバーのようなプロセス

上は、プロセスに親子関係があるけど、
下は、OS がプロセスの親になるとか?
2018/03/15(木) 06:34:45.23ID:z1/gBAj5
フォルダ内の複数のエクセルファイルを開いて指定シートをコピーして閉じるを繰り返したい。コピーするシートは各エクセルに対して1シートのみ。

シート名は個人名でそれぞれバラバラなんだけどいい方法ない?
2018/03/15(木) 06:42:29.06ID:VNc1eFwU
1シートしかないブックにする
396デフォルトの名無しさん
垢版 |
2018/03/15(木) 07:23:11.51
>>394
人が開いたときにそのシートを特定するときはどうしてんの?
それをプログラムに落とせばいい
2018/03/15(木) 08:20:13.69ID:Q+OFwlGZ
質問です。
whatif のデータテーブルで、sheet1にある式をsheet2から参照したいのですが、「代入セルの参照が正しくありません。」というエラーが出ます。
sheet1の同じシート内でやる時はエラーは出ないのですが、別シートは参照出来ないのでしょうか。
398デフォルトの名無しさん
垢版 |
2018/03/15(木) 08:24:47.39
>>397
VBAの質問じゃなくね?
2018/03/15(木) 12:47:59.22ID:kdbViSCg
メゾット君いて草
2018/03/15(木) 13:26:06.11ID:GiNZbVBW
>>397
馬鹿は死ねよ
2018/03/15(木) 19:29:22.65ID:givVJukY
>>397
はい。
対象のシートをアクティブにして下さい、
2018/03/15(木) 21:40:55.79ID:khWCS+hx
入力規則でセルに選択リストを作りました
で、セルのプルダウンで選んだアイテムが
何行目か?っていうのを知りたいんだけれど
doとかfor文でリスト先頭から一致検索するしかないのかな?
一発でアイテムのカウント何件目か取得する事って出来たりするんかなぁ?
2018/03/15(木) 22:18:17.27ID:obWJCYhi
match関数で行けないかな?
2018/03/16(金) 07:44:18.61ID:D9gIY3FC
>>394なんだが、フォルダ内のエクセルをループして開いて、目的のシートのオブジェクト名を統一してファイル開いてオブジェクト名をfor eachでヒットさせて、functionでそのシートをテキストにしたいんだがどうすればいい?ループさせてヒットさせるまではできた。
結果txtファイルは同フォルダ内の1個あってそれに更新して書き込んで行きたいんだが。
誰か教えて下さい。
405デフォルトの名無しさん
垢版 |
2018/03/16(金) 08:28:41.10ID:qMVu/e+c
意味わからんしほぼ丸投げ感ある
2018/03/16(金) 08:55:16.84ID:4vfDYpgH
csvにエクスポートでもすればいいよ
マクロの記録でコード作れば
2018/03/16(金) 17:01:45.82ID:tJ/sJf9+
全キャラエリーン化MOD希望します
2018/03/16(金) 17:02:19.93ID:tJ/sJf9+
誤爆w
2018/03/16(金) 22:56:27.26ID:hrS8kMFb
>>404だけどネットで探しながら作ってみてできたんだけど、
一回目のエクセルブックの指定したシートをoutputでテキストファイルに書き込み。2回目以降をApend?だっけ?で続きに書き込んでいくんだけど、outputとApend の違いだけで書き込みコードが2つあるのを一つにまとめるにはどうしたら出来ますか?
2018/03/16(金) 23:04:26.61ID:ikUU8ykN
>>409
Append でやれば
ファイルがないときは勝手に作ってくれるよ
411デフォルトの名無しさん
垢版 |
2018/03/17(土) 00:32:21.24
>>409
フラグ格納用の変数(初期値False)をFor文の外側で定義して
変数がFalseだったら初回用の処理をしてTrueを代入して
変数がTrueだったら2回目以降の処理をすればいい
2018/03/17(土) 06:33:04.45ID:n47xCJZ+
質問です
今EXCELで対戦格闘ゲームを作っているのですが
キャラクター同士の当たり判定は
それぞれ攻撃用、体用と別々に持つことで
正しく動いています。
ただ攻撃が当たった時のヒットマークを表示する位置を
どのように算出すれば良いかが思いつきません。
何か良い方法はないでしょうか?
ちなみにキャラクターはシートのセルを方眼紙のように見立てて
横256*縦200で1セルを1ドットに見立てて行っています。
2018/03/17(土) 07:23:19.78ID:n47xCJZ+
言い忘れていましたが
当たり判定は各キャラクターの動作毎、絵柄毎に
攻撃用が1〜3個、体用が1〜5個の四角い範囲を持っていて
それが重なったかどうかで判定を行なっています。
動作とは例えば小パンチとか、大パンチとかを指します。
同じ絵柄でも違う動作の場合は
違う範囲で当たり判定を行えるようにしています。
2018/03/17(土) 07:48:47.16ID:71uTBaAx
>>412
スレ違い
ゲームデザインとかアルゴリズムの類であってVBAの質問ではないと思う
2018/03/17(土) 08:14:30.06ID:n47xCJZ+
>>414
多分そう一蹴されて終わるかもとは思っていました。
興味がある方は返答頂けると有り難いです。
416デフォルトの名無しさん
垢版 |
2018/03/17(土) 08:23:52.27ID:0VMaqrOi
>>415
思っていた??
なら最初にそう書けよ
スレ違いの上に後出しじゃんけん
一番嫌われるパターン

要約すると「死ね」
2018/03/17(土) 09:02:41.97ID:8EqoOoha
生きる!!!!!


(´・ω・`)b
2018/03/17(土) 09:10:30.63ID:71uTBaAx
>>415
「ゲームプログラミングなら俺に聞け」とか、そういうスレの方が絶対いいと思う
2018/03/17(土) 11:01:00.47ID:plFeqth9
ヒットマークとやらをどう表示したいのかも書いてない
こんなんで回答がつくわけない
質問の体を装ったただの俺こんなの作ってるスゲーだろアピール
2018/03/17(土) 12:28:23.68ID:zttMJW/5
当たり判定とヒットマークの位置関係だけあらかじめ決めておいて、あとはヒットした当たり判定のセル位置のアドレスなり座標なりからオフセット参照するだけじゃん
421デフォルトの名無しさん
垢版 |
2018/03/17(土) 12:53:01.02ID:0VMaqrOi
>>420
構うなや

どうせまた後出しで「その方法も考えたんですが
〜〜が〜〜だからそれではダメなんです。」とか
慇懃無礼にマウント取ってくるから
2018/03/17(土) 13:02:49.05ID:JhGe8NGg
マウントって簡単に言いすぎ
倫理をふりかざして人を委縮させようとする言動に限らないと
言葉の力がなくなってしまう
2018/03/17(土) 13:38:51.05ID:heA3uIoa
>>410
>>411
助かります。やってみます
2018/03/17(土) 14:18:21.64ID:7XiT0JZV
>>412
もしかして当たった位置が判らないということですか?
2018/03/17(土) 15:07:46.54ID:JHaB3/LC
>>412
へぇ、このスレでは珍しい質問だね。
あくまでひとつの方法としての提案だけど、
当たり判定が出来るということは攻撃範囲と体範囲って呼んでるけど、
それが重なったことは判定出来てるんだよね?

なら重なった範囲の中心にヒットマークを出すようにすればいいと思うよ。

つまりキャラAの右下セルよりキャラBの左上セルが
左上にあって、かつ
キャラAの左上セルよりキャラBの右下セルが右下にある場合、これがキャラが重なった「当たった」ことに該当するんだけど、
この状態からキャラAの右下セルからキャラBの左上セルの縦横それぞれの差分を出して
それを2で割ってキャラAの右下セルの縦と横にそれぞれ足してやれば求められるはず。

後は複数判定用の範囲を持ってるというところで
どの範囲を優先するかの優先順位をつけて。
頑張って下さいね。
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


どなたか助けてください。
2018/03/18(日) 03:11:59.88ID:Ml7D0I3C
複数シートでゴニョゴニョする際は
Worksheets("sheet10").Range(Worksheets("sheet10").Cells(10, 1), Worksheets("sheet10").Cells(i, 2)).Select
と略さずに書くといいよ
デバッグ中につい違うページ開いちゃうと後で泣きを見る
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ブックのセルが読めるかどうか判定することができません。

どうしたらよいでしょうか?
2018/03/18(日) 04:24:15.80ID:/1Of5770
>>429
開けていないものを閉じろと言うのは無理ゲー
2018/03/18(日) 06:47:14.19ID:JFJ3EKTR
最初にタスクマネージャーで、
起動中のすべてのExcel を、強制終了させてから実行すれば?

たぶん、起動中のExcel が、そのブックをつかんでいるのだろう
432412
垢版 |
2018/03/18(日) 11:12:47.56ID:l25Pelu+
皆さん色々返答ありがとうございます。
>>420さんと>>425さんの意見を
参考にさせて頂きました。
特に>>425さんの案は取り入れてみたところ
範囲が大きいときでも小さいときでも
見た目いい位置に表示されしかも汎用的に
使えるようでありがたいです。
>>420さんの案は乱舞系必殺技のような
受けた相手の位置を補正しながら出す技に最適のようです。
ちょっと行き詰まったところだったので
非常に助かりました。ありがとうございました。
2018/03/18(日) 11:21:02.32ID:A1IN0XTG
>>432
VBA初心者でこのスレをたまにチラチラ見ているものですが
「EXCELで対戦格闘ゲーム」ってものがどういうものなのか全然想像できないです
(どうやったらそんなことできるの! てかどんな画面になるの!! 状態です)

もしよろしければ、何か雰囲気の掴めそうな画像か
もしくは、そういう人たちが作ったゲームのリンクなどを紹介していただけると嬉しいです
434427
垢版 |
2018/03/18(日) 21:11:28.30ID:5x2puHKk
>>428
お返事遅くなってすみません。
コード丸写しで略さずにかいたところ、うまく動きました。
エラーの前のbookとsheetをアクティブにしただけでは足りなかったようで。
勉強になりました。
ありがとうございました。
2018/03/18(日) 21:34:46.44ID:utQAsfrI
on
2018/03/18(日) 21:35:52.97ID:utQAsfrI
ontimeでopenするとかは?
2018/03/19(月) 07:21:13.16ID:We1Ev2gv
>>433
ちと古いけどこういうのがある

Excel VBA アクションゲーム作成入門 Excel 2007/2003/2002 対応
https://book.impress.co.jp/books/2686
2018/03/19(月) 20:14:20.80ID:uXl73OAC
>>437
紹介ありがとうだけど…、本だとやっぱりよく実感がつかめない…
でその本のタイトルで色々ググってみたら実際にゲームをやってる動画が出てきた

エクセルでスーパーマリオを作ってみた
http://www.nico video.jp/watch/sm12052293

Excelでこんなものが作れちゃうってすごい!(というか見てもなお信じられないが)
2018/03/19(月) 20:59:21.19ID:Lmqu9UWt
>>438
お前みたいな馬鹿には無理ってだけ
dll呼び出しできるから何でもやろうと思えばできる
440デフォルトの名無しさん
垢版 |
2018/03/19(月) 22:27:28.31ID:bkGJBs4p
スーパーマリオのDLLとかあるんか?
すげーなエクセルって
2018/03/19(月) 23:08:18.69ID:SfVA8M0M
>>440
DLLは自分でいくらでも作れるし、スーパーマリオもDLL化は可能だけど普通はそんなバカなことはやらない
2018/03/20(火) 00:08:55.57ID:w5UAsH4d
>>439
バカはお前
DLLなんていくら出来たところでゲーム作れるだけの知識がなければ何も出来ない
知ったかぶりしてないで死んどけゴミ
2018/03/20(火) 00:13:05.69ID:XeOK7PK4
>>442
作れる知識と作る意義を感じるかは別問題
馬鹿は死ねよ
2018/03/20(火) 01:20:07.81ID:NBntR4Uy
はいはい、メゾット君は無視しましょうね〜
2018/03/20(火) 06:01:07.86ID:w5UAsH4d
メゾット野郎はいつも口先ばかりwwwwwwww
違うってんならゲーム作ってみせろ無能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:uUCQMwFd
>>439
DLL使うんならExcelでやる意味なさそうだがな

Excelのセルでドット絵を描いてVBAでアクションゲームを作るということに
Excelでアクションゲームを作る意義があるんだと思うが
2018/03/20(火) 15:10:05.57ID:HXa9qFC5
>>449
> マリオのゲームってもコントロールしてるわけじゃないでしょ?
> ドットに色表示してるだけじゃないの?
本まである(>>437)のに何言ってるんだろう…
452デフォルトの名無しさん
垢版 |
2018/03/20(火) 16:00:38.63ID:J0Id73NT
DLLしたあとインスコするんだったっけ。
453デフォルトの名無しさん
垢版 |
2018/03/20(火) 19:53:45.15ID:FFuoeUFR
>>452
同じフォルダに置いておけば使えるだろw
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ファイルが一つあります。
どこを修正すれば良いのでしょうか。
教えてください。
457デフォルトの名無しさん
垢版 |
2018/03/20(火) 23:07:13.92ID:BysB7y8w
>>456
UCaseの意味をもう一度調べてみれば?
2018/03/20(火) 23:25:24.58ID:qVb9KqM8
Ruby なら、これだけだが

puts Dir.glob('*.txt').size #=> 5
459デフォルトの名無しさん
垢版 |
2018/03/20(火) 23:29:52.36ID:9kggXYDo
>>457
調べました。
UCaseではなく、LCaseだったんですね。
先に進めました。
ありがとうございました。
2018/03/21(水) 11:16:23.41ID:7pPMZ9pD
>>459
UCase/LCase よりも
StrConv(, vbUpperCase) や StrConv(, vbLowerCase)
を使った方がより良いと思う。

なんとなくだが
461デフォルトの名無しさん
垢版 |
2018/03/21(水) 23:19:13.74ID:1JiLJjJR
そーゆー感性ってすごく大事

なんとなくだが
2018/03/22(木) 23:48:33.27ID:wY4uz5GL
そいうWithの使い方は嫌い

んとなくだが
2018/03/23(金) 05:10:41.67ID:fhxmeXqE
寧ろ、with はああいう使い方をすべきなんじゃないの。単なる記述の省略としてだけでなく。
2018/03/23(金) 07:23:25.20ID:KEQJOoX5
いんや、.NetのUsingみたいに解放は確実に出来るけど
ひとつのスコープにひとつしか使えないし
コーディングに慣れてる人には
一瞬、どこで生成してるの?ってなるから
可読性の見地からイマイチかなと思う
2018/03/23(金) 07:26:59.80ID:L9ucwTOA
既におなじみの使い方だろうとしか
466デフォルトの名無しさん
垢版 |
2018/03/23(金) 07:47:34.14ID:Kb85u4Z4
withってusingみたいに解放してくれるんだ
Set使うより簡潔にできるのね
2018/03/23(金) 08:04:55.76ID:FQA7q+b8
>>464
> コーディングに慣れてる人には
> 一瞬、どこで生成してるの?ってなるから
普通にインデントしてたらそんなことにならん

> 可読性の見地からイマイチかなと思う
お前だけだろ
2018/03/23(金) 08:12:14.14ID:3JBwFnH8
こんなもんコピペグラマーでもしょっちゅう目にしてるはず
この程度でわかりにくいとか、どんだけ素人だ

ただ、老眼の俺にはドットの見落とし、書き漏らしがちょっと怖い
2018/03/23(金) 12:22:12.90ID:5CV31jFy
>>466
自分も初めて知った。
けどネスト深くなると、破棄されたか分かりにくそうではある。
オブジェクト残ってると問題出るプログラムの場合はちょっと使うの怖いな
2018/03/23(金) 18:30:24.67ID:fhxmeXqE
>>466
withでcloseはしないんじゃないの?
あくまでusingぽくて分かりやすいというだけで。
2018/03/23(金) 19:28:31.68ID:L9ucwTOA
>>470
自作クラスに Sub Class_Terminate() を定義してステップ実行してみればわかる。
End With 後にちゃんと呼び出されるから。
472デフォルトの名無しさん
垢版 |
2018/03/23(金) 20:26:02.56ID:qUw1cRZJ
無知なのは仕方がないとしてもEnd Withの後にClass_Terminateが呼び出されるのなら
論理的な帰結としてWithがオブジェクトの解放をしているのではないと気がついて欲しかったなあ
2018/03/23(金) 20:32:59.84ID:L9ucwTOA
>>472
解放、close
どっち?
2018/03/23(金) 20:43:47.72ID:L9ucwTOA
それに「無知」とは何のことかな?
非明示的にデストラクトされてもFreeはされない言語があってその事を知らない、という意味かな?
だとしたら知らない
2018/03/23(金) 22:16:31.73ID:LTH6T9fs
>>467
>>468
同じ階層に同じようなObjectがある場合、
Withを使ってる奴だけそんな方法で解放するの?
統一性のないコーディングだなぁ
2018/03/23(金) 22:31:56.84ID:DV5xQmy6
解放の方法が違う程度の事を気にしてたら現場で発狂しまくりだろうなぁ
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
とか
481470
垢版 |
2018/03/24(土) 02:46:47.80ID:fNSyCTew
スマソが、結局>>456のコードにおいて、fileSystemObjectはEnd withのタイミングでfreeされるってことでok?
で、With OpenTextFile()とした場合も同様にcloseされる理解でok?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況