Excel VBA 質問スレ Part53

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/04/27(金) 19:02:38.39ID:+ocy8bIv
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK


※前スレ
Excel VBA 質問スレ Part52
http://mevius.5ch.net/test/read.cgi/tech/1517052305/
2018/05/04(金) 19:34:09.75ID:u4+2pSW/
だいたい言語の優劣の話をするような奴にはろくな奴がいねえ。
できる奴ならどんな言語でも文句も言わずに使ってるわ。
2018/05/04(金) 19:38:26.12ID:AeMEtXjU
excelはダメだっていうと何を今更と同意される事が多い
でもバカな客と付き合っていくにはExcel使うしかないのも事実だよなぁって諦めのため息もセットで返ってくる
451デフォルトの名無しさん
垢版 |
2018/05/04(金) 19:38:50.18ID:ogBK84PN
>>447
エコシステム?

>>449
それは幻想的すぎる
2018/05/04(金) 20:12:15.32ID:+QSKZiq4
>>436
お前が読み直せ、バカ
PowerShell でも Ruby でも C# で論調はもたいして変わらん
そんなことも理解できてないのかよ w
2018/05/04(金) 20:15:07.24ID:GR9wczdx
「純粋な言語の優劣」とか「小さな世界」とか、なんとか自分の土俵に引きずり込もうとしてるけど、
結局のところ「自分が使い慣れた言語が一番使いやすい!」っていう主張に過ぎないっていう・・・
2018/05/04(金) 20:18:18.62ID:+QSKZiq4
>>441-442
だからせめてまとめてレスしろよ
話をまとめることもできないのかよ

そもそも>>415の後に
> いっぱいあるし簡単に見つかるから自分で探せってことだ。
とか恥ずかしすぎるだろ...

Excel 前提の VBA に Office 抜きとかアホなこと言い出してるし w
2018/05/04(金) 20:21:09.17ID:+QSKZiq4
>>448
> Excelはダメと会社で言ってみろ。
> おかしい人と思われるのがオチだ。
>>450じゃないけど普通に同意されるわ
ただ他に選択肢がないから使わざるを得ないだけ
2018/05/04(金) 20:21:40.32ID:u4+2pSW/
>>452
バカは本当に勘弁してくれ。
>>436がどういう内容に反論してるか、それまでの話の流れがどういうものか理解してから反論してくれ。

お前のようなバカがいるからVBAはどんな時でもダメって奴と大抵の場合はダメって奴とどんな時でもVBAは優れていると言われたと勘違いした奴を相手にしなくちゃならなくなる。
2018/05/04(金) 20:23:46.92ID:u4+2pSW/
>>454
日本語も分からないのかよ。
それとも話の流れを読むのを最初から放棄してるのかどっちだ?
2018/05/04(金) 20:26:12.72ID:u4+2pSW/
>>455
会社でWindowsはこれだからダメってぶつぶつ言ってる奴がいるが本人が気付いて無いだけでおかしい奴と思われてる。
お前と似てるな。
459デフォルトの名無しさん
垢版 |
2018/05/04(金) 20:32:21.30ID:OKXWvsWr
お前ら一体何時まで、愚にもつかない話続ける気?
460デフォルトの名無しさん
垢版 |
2018/05/04(金) 21:02:31.63ID:KGBSeWYt
VBAってドットNETじゃないんだね
2018/05/04(金) 21:21:58.21ID:+QSKZiq4
>>456
理解力がないのに無理すんな w
お前が見境なくレスしてるから泥沼になってるだけだぞ
462デフォルトの名無しさん
垢版 |
2018/05/04(金) 21:22:53.36ID:cfklXzOl
>>458
>会社でWindowsはこれだからダメってぶつぶつ言ってる奴がいるが

Macの方が良いに決まってるじゃん。Win10はシステム担当泣かせの酷いシロモノだよ。
2018/05/04(金) 21:24:06.91ID:+QSKZiq4
>>457
> 日本語も分からないのかよ。
指摘されて反論できない低能がよく言う言葉だな w
2018/05/04(金) 21:28:25.18ID:+QSKZiq4
>>458
Excel の話してるのに Windows とか言い出しちゃうとか頭おかしい
そもそも誰もお前の会社に興味ないし w
2018/05/04(金) 21:31:31.13ID:+QSKZiq4
>>460
.NETなら言語としてはかなりマシになるんだけどそうしなかったのはVBA使ってた利用者がついてこれるかが疑問だったのかもな
2018/05/04(金) 22:17:13.18ID:qxasih/r
>>465
それもあるかも知れないけど
別に.Netのようにデカいシステムを作る訳じゃないからそのように発展する必要も無かったんだよ。

だからVBAをやってる人達は
モデルどころかクラスやポリモーフィズムを知らない人も多い。
でも仕方ないよね。それが通用する世界なんだから。

まぁ逆に言えばそれだけ間口の広い言語で
比較的誰でも作り易い言語というのも確か。

そんな世界にやって来て荒らすようなことばかり言ってれば
周りから排除されるようなこと言われるのも当然と言えば当然だよね。
467デフォルトの名無しさん
垢版 |
2018/05/04(金) 22:45:53.35ID:neB5oFyO
まだプロさんごっこしとるのかこのバカ達はw
いい加減にしろ低能ども
468デフォルトの名無しさん
垢版 |
2018/05/04(金) 22:52:24.73ID:ogBK84PN
>>466
じゃあちょっとフェルミ推定でもしてみるか

デスクワーク主体の仕事をしている非IT系の人を母数として
日常的にOfficeソフトに触れている    80%
うちVBAをやってる      10%  (累計 8.0%)
〃分析・設計を意識してる   30%  (累計 2.4%)
〃クラスを知ってる      90%  (累計 2.16%)
〃ポリモーフィズムを知ってる 20%  (累計 0.43%)

これがIT系となるとOfficeソフトに関わるかどうか関係なくほぼ全員が
クラスやポリモーフィズムを知ってると言えるだろうか。
2018/05/04(金) 23:02:46.28ID:FNYKVu0a
>>465
うわ、この馬鹿
.NETが言語だとか言い始めたぞ
2018/05/04(金) 23:33:40.69ID:PShZiAFS
>>452
え?
マジで言ってる?
C#もるびーも後からインストールしないとできないよ?
唯一powershellだけ使えるけど、Excel操作だけに特化した場合、VBAと比べてどれほど優位性があるのか。
何でもかんでも勝手にインストールできる会社ばかりじゃないし、VBAユーザーがエンジニアだけじゃなく事務職とか他の職種にも多いとかそう言う話も含めての流れだと思ったけど、日本語読めないバカには分からんかw


だからVBAでシステム組むとかあほな話に展開するんだねw
2018/05/05(土) 00:06:46.22ID:BI5aBgXm
>>461
お前が流れを理解せずに頓珍漢なこと言ってるんだからバカにされても仕方あるまい。

>>463
だから、お前がレスしてる相手がどういう議論の流れからああいう発言をしたのか理解してからレスしろよ。
それが全く出来てないんだから日本語が理解出来ないと言われるんだ。

>>464
ほら見ろ。
>>462のような奴と一緒なんだよ。お前は。
そんなこと言ったって殆どの会社はWindows使ってるのに。
2018/05/05(土) 00:08:18.78ID:BI5aBgXm
>>470
っていうか、ずっとそれ言ってるんだけど理解出来ないんだ。
よっぽど彼らは頭悪いぞ。
2018/05/05(土) 00:47:39.94ID:yoXg86RX
>>470
無知ってこわいね
2018/05/05(土) 00:49:14.66ID:cuzWr0GO
>>468
少なくても話の主体になっている.Netを使っている人ならほぼ全員がクラスくらいは知ってるよ
何せObject指向言語だから基本になってるそれを知らないと話にならない。

でもね、そんなことはどうでもいいんだ
ここはVBAのスレなんだから。
知ってれば使えばいいし
知らなくても知らないなりのものが組める。

こういう例え方して分かるかどうか微妙だとは思うけど
構造化言語であるVBAでGoto文はなるべく使わない方がいい。
エラーのハンドリングなど特例はあるものの、
構造化の考え方を崩しかねないものだから。

それをアセンブラのスレに行って
VBAのGoto文に当るジャンプ命令はなるべく使わない方がいい。構造化の考え方を崩しかねない。
なんて言ったら当然のように猛反発を食らうことになる。

つまり畑違いのところに行って自分の考えを
押し付けようと言うのはナンセンスということ。
VBAは元々初心者は初心者なりの、
上級者は上級者なりのものが組める間口の広さも
利点のひとつなのだから
押し付けたいのなら自分の畑に戻って勝手にやればいい。
2018/05/05(土) 01:15:45.29ID:oZF5wUOA
喩えが的外れ
アセンブラスレでリッチなUWPアプリ作りたいです!という質問にC#使えみたいな極めて正しい回答をしてるだけだ

それにVBAが窓口広いとか冗談だろ
決まり事なので以外に説明しにくい洗練されてない言語仕様で初心者向けとは口が裂けても言えないし
上級者に対して窓口開くならVB.netになって出直してこいとしか
2018/05/05(土) 01:50:59.03ID:cuzWr0GO
>>475
アセンブラでUWP?
何か勘違いしてないか?
通常UWPを触れるのはIl、Windows間との中間言語であって厳密にはアセンブラとはまた別物だ。

VB.Netだって未だにGoSubなんて過去の負の遺産が残ってたり
Formを生成させなければ使えなかったものが
難し過ぎると受け取られて生成しなくても
暗黙のインスタンスが出来るようになったり
右往左往している部分がある。
ましてやVBAは元々古い言語なのだから
そんなことは有って当たり前。

C#が洗練された言語なのは分かるが
元々デカいシステムの保守やひとつのシステムに
複数人が掛かって作成されることまで考慮された言語だ。
最初からそういうものを目指して作っていくのなら
その意見は正しいとは思うが
VBAはそこまでの保守性も求めないものや
ましてや一度に一つのEXCELに対して複数人がVBAで開発を行うシュチュエーションなどそうそうない。

だからそこまでの知識も要らないし
初心者でも手軽に作ることが出来る。
知識があるものはそれを使って作って行けばいいが
押し付けるものではない。

畑違いの人はまず一般的に言われているシステムと
VBAで作るツールの違いを理解して頂かないと
話が噛み合うはずもない。
2018/05/05(土) 01:55:17.65ID:TT2h6sAS
だめだ話が通じねえ
2018/05/05(土) 05:23:12.41ID:N9S74U1A
>>471
ブーメランすぎる
アホなお前がテキトーな理解で掻き回してるだけ
>>462にしてもお前がWindowsとか言い出したから食い付いて来たんだぞ
そんなことも理解してないで何が話の流れだよ w
2018/05/05(土) 05:32:00.27ID:N9S74U1A
>>470
インストールの話は会社によって様々で普通にインストールできる会社もある
って話も出てたはずだが?
あと今時C#コンパイラは標準装備だよ?
2018/05/05(土) 05:33:54.91ID:N9S74U1A
>>469
さすがにこの文脈でVB.NETのことを指してると思えないアホがいるとは恐れいったわ w
2018/05/05(土) 06:14:16.66ID:iSLee/LC
ID:N9S74U1A

後付けの言い訳ばっかの馬鹿
2018/05/05(土) 06:38:33.56ID:N9S74U1A
>>466
お前さんの見てる世界が狭いだけじゃね?
業務システムの一部としてExcel使ってる例はごまんとある
あとVB.NETだからと言って無理にポリモーフィズムなんて使わなくてもいい
リストとかハッシュとか便利な.NETライブラリだけ使うとかでもいい
2018/05/05(土) 06:49:20.44ID:II6m7tZa
まぁ要するに「複数の言語使える僕ちゃんスゴイ」を言われたくてやってんだろうけど
仕事だろうが趣味だろうがプログラムやってりゃ複数の言語使えるようになるのが普通なんで
どっかの現場でVBAすらまともに扱えないヤツを相手にするならともかく
色んな人間が書き込む場所でやったって満足できる結果にはならんわな
2018/05/05(土) 07:28:20.54ID:BfpDb3xn
>>479
C#をメモ帳で書くのか?スゴイねw
2018/05/05(土) 07:33:52.33ID:BfpDb3xn
>>482
OOPがサポートされてないと非モダンなVBAを批判するのに多態性は使わなくて良いのかw
お前、理解してないだろw
2018/05/05(土) 08:25:06.82ID:cuzWr0GO
>>483
前何かVBAで格闘ゲーム作ってる人のヒットマーク位置の質問してた人に
「〜が出来る僕ちゃんスゲーって言われたいんだろ」って言ってた人か。

VBAは色んな状況や立場の人が使ってるから
別に自分の知らないことを知ってるからって不思議でも偉くとも何ともないけど
それを妬むのはよくないと思うよ。
2018/05/05(土) 08:36:30.03ID:cuzWr0GO
>>484
これは冗談みたいな話だけど以前C#をメモ帳で書いたことがある。

.NetFreamworkが入っててVisualStudioが入ってない環境で
VisualStuduoインストールの申請が降りるまで少し時間が有ったのでそれまで
ビジネスロジック部をメモ帳で書いてた。

一応コンパイルも出来るし実行も出来るけど
インテリセンスの全く効かない状況でやるのは
結構辛かった記憶があるわ。
2018/05/05(土) 08:40:14.96ID:N9S74U1A
>>484
別にたいしたことではないと思うがお前にはスゴいことに思えるんだろうな w
2018/05/05(土) 08:43:38.96ID:N9S74U1A
>>485
多態性だけが全てじゃないしな
よくわかってない奴ほど全ての機能を使おうとするんだよな
所詮道具なんだから自分にとって便利だと思う部分だけ使えばいいのにね w
2018/05/05(土) 08:44:54.66ID:N9S74U1A
>>487
まあ面倒ではある
でもすごいこととは思えないよね
2018/05/05(土) 08:53:03.82ID:II6m7tZa
「全てをムリヤリ使う必要はない。便利だと思う部分だけを使えばいい」と言いつつ
「世界はVBAだけじゃない!他にもっと言語はあるからムリヤリ使え!」と言い出す矛盾
2018/05/05(土) 09:01:46.50ID:BfpDb3xn
>>489
スゲェ、多態性が全てじゃないってオブジェクト指向全く理解してない発言だって分からないんだろうなw
デザインパターンとかお勉強した方が良いですよw
2018/05/05(土) 09:05:16.60ID:BfpDb3xn
>>488
それでVBAより作業が早いなら、本当にすごいと思うけど、オブジェクト指向すら理解できないレベルだからまぁ知れてるよねw
開発環境がない上に君の言う多態性すら必要ない発言を合わせてどれほど優位性があるのか説明してもらいたいよw
2018/05/05(土) 09:27:09.09ID:cuzWr0GO
>>492
まぁそうだね。これがVBAだけやってる人の発言なら問題ないかも知れないけど
VB.Netやってての発言ならObject指向の存在価値全否定してるようなものだからね。

そんな人にデザインパターンとかは
まだちょっと早いんじゃないかな?
2018/05/05(土) 09:33:08.82ID:LicTraOR
VBAがホットなのかレガシーなのかは偏にMSのロードマップ次第じゃないの
VBAのサポートがずっと続くと見てるならばそれ自体有力な材料になるはず

MSの動きそっちのけで最強だの最弱だのはいくらなんでも無意味なんじゃ
2018/05/05(土) 09:37:40.26ID:N9S74U1A
>>491
デザインパターン w
聞いてもないのに知ったかがよく使う言葉がぞろぞろ出てきて笑うわ
2018/05/05(土) 09:41:08.55ID:N9S74U1A
>>493
多態性云々はVB.NETの話
開発環境云々はC#の話
混ぜて話すのは頭が悪いのか?
それとも混乱させてごまかそうと必死なのか? w
2018/05/05(土) 09:47:35.00ID:BfpDb3xn
>>497
それで混乱しちゃうの?
OOPがサポートされてない古くさいんだろ、VBAは。
じゃあサポートされてる言語では活用するのが当然だと思ったけど違うのか?

マジで恥ずかしいレスしてることが理解できないの?
2018/05/05(土) 10:03:32.45ID:DnMdiEfY
>>498
この人ねえ、根本的に頭悪いんだわ。
スキルの問題じゃなくて。

だからあんたの意図も読めて無いんですな。
論理的じゃ無いんだろうね。
ここまでず一っと同じ感じで破綻した話ばかりしてる。
今にオブジェクト指向も必要無くても、便利な機能を使わなくても、レガシーな使い方しかしなくてもVBAじゃなければ素晴らしいと言い出すぞ。
2018/05/05(土) 10:04:07.55ID:TTUQSH5z
>>498
もろお前が混乱してるだろ w

> OOPがサポートされてない古くさいんだろ、VBAは。
そうだよ、事実でしょ?

> じゃあサポートされてる言語では活用するのが当然だと思ったけど違うのか?
なんで全員が活用する必要があるんだ?
必要だと思う奴が使えばいいだけだろ

> マジで恥ずかしいレスしてることが理解できないの?
お前のレスのことを言ってるならよく理解できるよ w
2018/05/05(土) 10:08:34.52ID:DnMdiEfY
それぞれにメリット、デメリットが有るのにVBAのメリットについては無くても良い「場合」が有ると、部分的事象で全否定し、他言語で無くても良い「場合」については何故か必須になってるんだよ。
この人は。

全く論理的じゃない。
2018/05/05(土) 10:11:25.64ID:DnMdiEfY
>>500
じゃあ必要と思ってない奴にとってはVBAで問題ないと言いたいのかね?
2018/05/05(土) 10:14:07.65ID:BfpDb3xn
OOPがサポートされていない言語は古くさくてダメ!
例えメモ帳しかなくてもC#のがマシ!
でも、オブジェクト指向は使わない!
多態性は理解できない!
デザインパターンは知ったかぶり!
VB.netとC#は全くの別物なので同時に話す奴は混乱している!

以上を理解できない奴は頭が悪い!
2018/05/05(土) 10:16:05.89ID:Quj/VaeY
>>500
活用するしないじゃなくて
多態性はObject指向の根底をなす部分だからだよ。

それを使わなくていいということは
別にObject指向言語じゃなくていいじゃんってことになる。
2018/05/05(土) 10:31:48.06ID:TTUQSH5z
>>504
> 活用するしないじゃなくて
> 多態性はObject指向の根底をなす部分だからだよ。
だからなに?

> それを使わなくていいということは
> 別にObject指向言語じゃなくていいじゃんってことになる。
いいんじゃないの?
たまたまVB.NETの話が出てるからオブジェクト指向言語云々と言う知ったかさんが来てるだけで使える言語の使える部分を便利に使えばいいだけだろ?
俺は一応多態とかも使えるから使うけど関係ない人に使えとかは言わないよ
2018/05/05(土) 10:34:08.38ID:TTUQSH5z
>>502
そんなことを言ってないし
お前の理解力が足りないだけ
まあ>>499, >>501とか見たら単に煽りたいだけなんだが失敗してるって感じしかしない w
2018/05/05(土) 10:37:32.47ID:BfpDb3xn
一応使えるから多態も使う!

このレスの時点で意味理解してないこと丸出しなんだけどw
2018/05/05(土) 11:04:21.82ID:Quj/VaeY
>>505
だからそれだったらVB.Netの話出す必要もなければ
VB.Netを知っていると言うことは
ある程度Object指向のことも知ってると思ってこっちはレスするじゃない。
まともに使ったことないなら最初からそう言えばいいのに・・・

ちょっとガッカリ
2018/05/05(土) 11:15:37.16ID:TTUQSH5z
>>508
バカなの?
俺がオブジェクト指向知ってることとVBA使ってた奴等がオブジェクト指向使えるかどうかは別の話
そもそも>>465
> .NETなら言語としてはかなりマシになるんだけどそうしなかったのは「VBA使ってた利用者が」ついてこれるかが疑問だったのかもな
って明記してあるのに...
2018/05/05(土) 11:33:42.38ID:Nv1xEN+m
>>509
それはVB.Netをまともに理解していない君が口走るのはおこがましいと思う
511デフォルトの名無しさん
垢版 |
2018/05/05(土) 11:39:51.52ID:tjPqjwLQ
>>509
おまえはもう黙れ。というかまだしゃべる許可は与えとらんよ。

このスレの皆様へ
この度はバカの ID:TTUQSH5z を野放しにしてしまい、皆様に多大なる
ご迷惑をおかけした事、深く陳謝いたします。
今後は更なる監視の強化を行ない、二度とこのバカが勝手な発言を行えないよう
務めてまいりますので何卒ご理解の程お願い致します。
2018/05/05(土) 11:48:08.54ID:TTUQSH5z
>>510
だから俺の話なんて元々してないんだが...
2018/05/05(土) 11:49:15.85ID:TTUQSH5z
>>511
5ちゃんオーナー現る!!
こうですか? w
2018/05/05(土) 11:51:38.73ID:Quj/VaeY
>>512
もういいから
おまえちょっとヤキソバパン買ってこい
2018/05/05(土) 12:17:24.31ID:TTUQSH5z
はい、ごまかしモード入りましたー w
2018/05/05(土) 12:19:45.99ID:yoXg86RX
>>493
メモ帳C#のほうが生産性が高いと思う
洗練されたオブジェクト指向サポート
モダンな言語機能
これだけでもだいぶ楽になる
シンタックスハイライトとインテリセンスはあくまでオマケかな
まあでもVBAよりマシってだけだから最初から全てが揃ってるPowerShellを使ったほうがいいけどな
2018/05/05(土) 12:43:41.18ID:NYhud1FJ
はやくGW終わらないかなぁ
とりあえず生産性どうこう言ってるやつは、どういう物を生産するのかはっきりしてから話してくれ

っと思ったけどPS最高君だったか
すまん、この書き込みともども無視しといてくれ
518デフォルトの名無しさん
垢版 |
2018/05/05(土) 12:49:42.90
で、 >>397-398 の答えはまだかね?
Rubyでのワンライナーの書き方を待ってるんだが
2018/05/05(土) 12:51:17.94ID:FU4Pcb/d
PowerShelの伝道師 ID:yoXg86RX

w
2018/05/05(土) 13:44:32.48ID:LkKePK4y
VBAしか使えない人々かわいそう
2018/05/05(土) 17:09:49.49ID:063K4Ypr
早く静かにならなかな、、
2018/05/05(土) 17:16:03.00ID:063K4Ypr
流れを読まずに質問!
他シートをActiveにせずに、座標指定で .FreezePanesを指定したいんだけど
方法ある? (もしかして多言語からならできるのか!?)
2018/05/05(土) 17:18:11.72ID:063K4Ypr
>>522
あちゃ、誤変換。他言語ね。
今話題のRubyとか、Pythonとか、、
2018/05/05(土) 17:57:53.09ID:LkKePK4y
SplitRow
SplitColumn
ではいかんのか?
2018/05/05(土) 18:18:56.66ID:063K4Ypr
>>524
それ、画面分割じゃなくて? 専ら使わんです。
、、と思ったら、事前に .SplitRow; .SplitColumn; しとけば
ActiveCell変更しなくても .FreezePanes で指定座標でLock
できるわけね。
For回さずに別シートの行列Lockがしたかったんだけど、これだけでも
収穫でした。 Tnx!!

別シートのを .FreezePanes 設定するのはやっぱり無理かね?
(com経由ならできる?)
2018/05/05(土) 18:31:36.42ID:II6m7tZa
エクセルの操作に限って言うなら同じものにアクセスするだけだから
接続する為のコードが増えるだけでVBAで出来ない事を出来るようにはならんだろうなぁ
527デフォルトの名無しさん
垢版 |
2018/05/05(土) 18:54:43.44ID:z4c77ZQa
カプセル化ですらオブジェクト指向のコアじゃない、という意見も世の中にはあるんだし、
多態性なんてそれほど大したもんじゃないよ。
それはさておきVBAでは多態性よりダックタイピングの方が何かと使いやすい。
2018/05/05(土) 20:03:32.26ID:cuzWr0GO
>>527
ダックタイピングと言うものはよく知らなかったのでググって見たけど
「オブジェクトがあるインタフェースのすべてのメソッドを持っているならば、
たとえそのクラスがそのインタフェースを宣言的に実装していなくとも、
オブジェクトはそのインタフェースを実行時に実装しているとみなせる」と言うことだとか。

でもこれって明示的にインターフェースを実装宣言していないだけで
結局は移譲で多態性の一種じゃないの?
2018/05/05(土) 20:06:33.33ID:WYM5IUV2
"D:\tmp\"からファイル名が"^2018-\d\d-\d\d\.xlsx$"に正規表現マッチするファイルを再帰的に検索する
検索された全てのファイルに対してシート名が"tmp"で始まるワークシートを削除して上書き保存

いったいどうやればいいのでしょうか?
2018/05/05(土) 20:19:29.56ID:YAuvYSr4
>>529
自分で考えたほうが早いんじゃねw
2018/05/05(土) 20:23:15.18ID:z4c77ZQa
>>529
二つの問題を一度に出すのは良くないね。
それはさておき、深さが大したことないから再帰でやるのがいいと思います。
2018/05/05(土) 20:28:29.47ID:cuzWr0GO
>>529
Dir関数かなんかで拾ったブックから正規表現でマッチングしたブックを対象にブック開いて
tmpで始まるシート名のシート削除して上書き保存すればいいんじゃないの?
2018/05/05(土) 20:31:32.46ID:cuzWr0GO
再帰的にって話だったから
Dir関数で拾ったものの名称やらアトリビュートやらで
それがフォルダだったら更に下の階層を漁るようにすれば
出来るような気がするけど?
そういうことではない?
2018/05/05(土) 20:46:42.41ID:z4c77ZQa
>>529
マッチするファイル名を列挙して配列にして返す。これを再帰関数で作る。
ファイル名の配列を受け取ってシート消去などの処理をする関数は別に作る。
がいいと思う。
2018/05/05(土) 21:17:32.31ID:8uGGiv/v
いちいちシートに書き出してからでないと処理出来ない関数多くて萎えるな
linestとか、配列(variant型)から直接呼び出したくても出来ないぽい
2018/05/05(土) 22:15:32.03ID:LkKePK4y
長すぎワロタ
なお動作確認はしていない

Sub GetProcessTargetFilesImpl(ByVal folder As Object, ByVal tester As Object, ByVal result As Collection)
For Each file In folder.Files
If tester.Test(file.Name) Then
result.Add file
End If
Next
For Each subFolder In folder.SubFolders
GetProcessTargetFilesImpl subFolder, result
Next
End Sub

Function GetProcessTargetFiles(ByVal rootFolderPath As String) As Collection
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim tester As Object
Set tester = CreateObject("VBScript.RegExp")
tester.Pattern = "^2018-\d\d-\d\d\.xlsx$"
tester.IgnoreCase = True
Set GetProcessTargetFiles = New Collection
GetProcessTargetFilesImpl fso.GetFolder(rootFolderPath), tester, GetProcessTargetFiles
End Function
2018/05/05(土) 22:16:12.51ID:LkKePK4y
Sub DeleteTempWorksheets(ByVal filePath As String)
Dim book As Workbook
Set book = Workbooks.Open(filePath)
Dim tempSheets As Collection
Set tempSheets = New Collection
For Each sheet In book.Worksheets
If Left(tempSheets.Name, 3) = "tmp" Then
tempSheets.Add sheet
End If
Next
For Each sheet In tempSheets
sheet.Delete
Next
book.Save
book.Close
End Sub

Sub MainProgram()
For Each file In GetProcessTargetFiles()
DeleteTempWorksheetsDeleteTempSheet file.Path
Next
End Sub
2018/05/05(土) 23:42:21.67ID:LkKePK4y
PSだとこう
rubyやpythonだとどうなるのかね?

$app = New-Object -ComObject Excel.Application
$app.DisplayAlerts = $false
Get-ChildItem -Path "D:\tmp\" -Recurse -Filter "*.xlsx" |
 where { $_.Name -match "^2018-\d\d-\d\d\.xlsx" } |
 foreach {
  $book = $app.Workbooks.Open($_.FullName)
  $sheets = $book.Worksheets | where { $_.Name.StartsWith("tmp") }
  $sheets | foreach { $_.Delete() | Out-Null }
  $book.Close($true)
 }
$app.Quit()
2018/05/05(土) 23:43:45.55ID:95YSYNlN
Ruby で作った

# . で始まる、directory, file を除く
Dir.glob('D:/tmp/**/*.xlsx') do |file| # 再帰的
next if File.directory? file # ファイルだけを処理する

fn = File.basename(file, '.xlsx') # 拡張子を除いた部分

# 正規表現に一致した、ファイルだけを処理する
next unless /^2018-\d\d-\d\d$/ =~ fn
puts fn #=> 2018-01-31
end
2018/05/06(日) 00:13:02.96ID:5pacMdKU
配列も処理出来ないもんですかね、、、。

一旦バリアント型の配列に入れて、
1列目と2列目でlinest、
2列目と3列目で、
1列目と2列目3列目の2列で、
など列単位比較を取っていきたいんです。
結局シートに値貼り付けて戻してから計算しないとダメで、時間が掛かりすぎる。
2018/05/06(日) 00:56:27.40ID:c6V5Tk/M
なんで無理してなんでもExcelでやろうとするのか
2018/05/06(日) 01:36:23.42ID:aPyLzrz1
ちょっと調べたら別にシートに転記する必要はないみたいだが
単に理解してないだけか
543デフォルトの名無しさん
垢版 |
2018/05/06(日) 02:17:09.53
>>539
全然やりたいことできてないじゃん
2018/05/06(日) 03:10:14.74ID:WI8S4nUT
>>540
何をやりたいのかイマイチ伝わらないけど
Insertと言ってるのは列の追加?

SQLで出来る範囲のことであれば
一度シートにSQL投げて取得した結果を
シートをクリアした後に貼り直すのが
一番早くて楽かなとは思うけど。
545デフォルトの名無しさん
垢版 |
2018/05/06(日) 03:44:28.04
>>544
回帰分析も知らないんなら黙っとけよ
2018/05/06(日) 05:01:24.60ID:WI8S4nUT
>>545
確かに回帰分析知らないからじゃ頼むわ
2018/05/06(日) 08:38:26.21ID:c6V5Tk/M
>>538
VBA信者はこれより簡単に書けんの?
2018/05/06(日) 08:43:24.29ID:c6V5Tk/M
>>540
python
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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