18/08/25 21:49:50.30 KMExyDFm.net
なぜPowerShellのソースコードを貼る
155:デフォルトの名無しさん
18/08/25 21:54:36.91 t7aLMQyu.net
>>147
>>137
156:デフォルトの名無しさん
18/08/25 21:58:36.58 KMExyDFm.net
>>149
僕が言ってることには完全に筋が通っている
粒度を合わせることによってVBAとPowerShellの比較を可能にして
VBAのコーディング方法をPowerShellユーザに伝授した
もっと丁寧なお礼をいただいても良いと改めて読み返してそう思った
157:デフォルトの名無しさん
18/08/25 22:18:30.20 t7aLMQyu.net
>>150
えーつまりVBAのコーディング作法では
未定義の関数を呼び出してエラーが出るのを眺めるのが正義、ということですか
流石vbaerは言うことが一味違いますね
158:デフォルトの名無しさん
18/08/25 22:19:12.23 KMExyDFm.net
>>151
誰もそんなこと言ってないですね
あなた誰ですか?
159:デフォルトの名無しさん
18/08/25 22:22:37.73 t7aLMQyu.net
というかことの起こりは
>>79
このレスだぞ
このレス自体はPowerShellとは無関係な純粋なVBAの質問だろ?
そのあとでPowerShellだとどうやるのと聞き返されたから答えたまで
ということで純粋なVBAの質問である>>79への解答を待ってます
VBAでは実現不可能でしたら解答しなくても結構です
160:デフォルトの名無しさん
18/08/25 22:24:42.27 KMExyDFm.net
>>153
VBAで実現可能です
純粋なVBAの最終解答をお示しします
Files = ReadCsvFiles("*.csv")
Data = ReadCalcPower(Files)
Sort Data, "desc"
ExportExcel Data
161:デフォルトの名無しさん
18/08/25 22:29:22.06 t7aLMQyu.net
>>154
動きませんでした
嘘をつかれては困ります
162:デフォルトの名無しさん
18/08/25 22:29:54.81 KMExyDFm.net
ワークシートの名前を変更するにはどうしますか?
VBAでどうやるのか聞き返されたら答えるまでですけど
PowerShellではどうやるのか教えてください
163:デフォルトの名無しさん
18/08/25 22:30:42.72 KMExyDFm.net
>>155
だったらPowerShellのプログラムも僕の環境ではピクリともしません
それを嘘つきというならPowerShellの方が嘘つきです
164:デフォルトの名無しさん
18/08/25 22:31:13.63 KMExyDFm.net
>>156
に答えてください
165:デフォルトの名無しさん
18/08/25 22:38:12.10 t7aLMQyu.net
>>156
$app = New-Object -ComObject Excel.Application
$book = $app.Workbooks.Open($targetFilePath)
$book.Worksheets($targetSheetIndex).Name = "NewName"
$book.Close($true)
$app.Quit()
こちらは答えましたよ
あなたもはぐらかさないで真面目に>>79に答えてください
166:デフォルトの名無しさん
18/08/25 22:41:51.71 KMExyDFm.net
>>159
VBAではこうです
ActiveSheet.Name = "合計"
ワンライナーで一撃です
>>79に答えます
VBAではこう書きます
Files = ReadCsvFiles("*.csv")
Data = ReadCalcPower(Files)
Sort Data, "desc"
ExportExcel Data
167:デフォルトの名無しさん
18/08/25 22:45:42.55 t7aLMQyu.net
>>160
あなたのコードには致命的な欠陥があります
対象とするブックを手作業で開かなければならなりません
これでは自動化を検討する程度の数のブックを相手にした時に間違いなく腱鞘炎になってしまいます
>>79への解答は不適切です
このコードには未定義の関数・サブルーチンが含まれているため動作しません
関数・サブルーチン化するならその実装も解答に含めて下さい
168:デフォルトの名無しさん
18/08/25 22:46:32.76 Jrsn7acQ.net
確かに、なんでもワンライナーで出来るかのような表現を使うよね、Powershellユーザー。
多分、そうは書いてない、思い込みだろうってレス着くと思うけど。
169:デフォルトの名無しさん
18/08/25 22:51:17.33 KMExyDFm.net
PowerShellとCOMってGCの方式が違いますよね
一方は世代別GC、一方は参照カウント
GC方式の違うものを混ぜるとメモリリークしますよ
>>159はメモリリークしますよ
170:デフォルトの名無しさん
18/08/25 22:51:56.89 Jrsn7acQ.net
>>159のソースはそのままで動くの?
171:デフォルトの名無しさん
18/08/25 22:52:25.25 t7aLMQyu.net
>>162
あなたの主張はデタラメです
パワーシェルはワンライナーであらゆる処理を書けるほど表現力が高く、基本ライブラリが充実していることは確かに事実ですが
だからと言ってなんでもワンライナーで書くわけではありません
パワーシェルのユーザーは
1つのコマンドで1つの仕事を上手くこなす
コマンドを組み合わせて大きな複雑な仕事をこなす
というシェルプログラミングの良い習慣をもちろん知っています
論より証拠ということで>>143のリンクをみてください
172:デフォルトの名無しさん
18/08/25 22:53:00.08 t7aLMQyu.net
>>163
しませんよ
リークするなら証拠を提示してMicrosoftに報告してください
173:デフォルトの名無しさん
18/08/25 22:53:11.40 KMExyDFm.net
>>161
いま開いてるExcelのシート名変えるってことなら問題ないですよね
じゃあそれで、むしろそれで
現在開いてるExcelのシート名をPowerShellで変えるにはどうしますか?
174:デフォルトの名無しさん
18/08/25 22:53:42.68 r5O9PJUC.net
>>99 > 呼吸することを自慢する人間はいない
↓
>>129 > 例えば隣に座ってるおじさんが呼吸してなかったら驚くし声をかけるだろう?
こんな脈絡のないことを言い出してて驚くわ
まあ気味悪いから対面してたら放置するけど w
175:デフォルトの名無しさん
18/08/25 22:55:26.08 KMExyDFm.net
>>166
マイクロソフトも認識してます
だから.NETにはReleaseComObjectという
COMのためのメソッドが用意されてます
あなたのコードにはメモリリークのバグが存在します、僕はあなたにそれを報告します
176:デフォルトの名無しさん
18/08/25 22:59:43.30 t7aLMQyu.net
>>167
[Runtime.Interopservices.Marshal]::GetActiveObject('Excel.Application').ActiveSheet.Name = "NewName"
逆に聞きますが、エクセルが起動していない時に、指定のブックの指定のシートの名前を変えるVBAコードは、どうやって書けばいいのですか?
177:デフォルトの名無しさん
18/08/25 23:01:55.95 KMExyDFm.net
>>170
まずExcelを起動します
開発のボタンを押してマクロエディタを起動します
そしてワンライナーの一撃コードを実行します
これがVBAの正規の手順です
178:デフォルトの名無しさん
18/08/25 23:03:45.08 KMExyDFm.net
[Runtime.Interopservices.Marshal]::GetActiveObject('Excel.Application').ActiveSheet.Name
これ暗記してるん? すごい
179:デフォルトの名無しさん
18/08/25 23:04:21.09 KMExyDFm.net
メモリリークしてますけど
180:デフォルトの名無しさん
18/08/25 23:04:53.64 3sYR2W/i.net
便乗で聞きたいんだけど
powershellでVBAの定数はそのまま使えるの?定数をCOMか何かからロードしたりするの?
あと名前付き引数とかどう処理するの?
181:デフォルトの名無しさん
18/08/25 23:05:39.78 t7aLMQyu.net
>>169
ReleaseComObjectは速やかに参照カウントを減らすためのものです
それを実行しなくてもGCやプロセス終了時にリソースが解放され参照カウントも適切に処理されるので安心してください
明示的にReleaseComObjectを呼ばなければリークする、などという危険な状態を主力商品の1つである.NET上で放置するほどMicrosoftは怠惰ではありません
182:デフォルトの名無しさん
18/08/25 23:06:53.30 Jrsn7acQ.net
>>169
思った通りのレスですねw
183:デフォルトの名無しさん
18/08/25 23:07:44.56 t7aLMQyu.net
>>171
それでは手間が多すぎます
おそらく手作業でシート名をクリックして名前を入力する方が早いでしょう
184:デフォルトの名無しさん
18/08/25 23:09:52.00 t7aLMQyu.net
>>173
証拠の提示をお願いします
メモリリークの場合最低でも次の3つは欲しいですね
再現性のあるメモリリークを起こすコード
メモリを測定するコード
あなたの環境で測定したデータを分析したレポート
185:デフォルトの名無しさん
18/08/25 23:10:23.46 KMExyDFm.net
>>175
参照カウントじゃないから参照なくなってもGCが動くことが保証されないですよ
プロセスがすぐ終了するかも仕様次第ですし、博打プログラミングですよ
GCの方式が違うからこれは技術的にどうしようもないんですよ
怠惰ではないです、むしろマイクロソフトは頑張ってる方ですよ
実装者の知識と努力に期待せざるを得ないのは宿命です
186:デフォルトの名無しさん
18/08/25 23:12:21.64 KMExyDFm.net
>>177
こう考えてください、VBAを書くときExcelは起動してるんです
マクロエディタも起動してるんです、手間なんて何もありません
手作業では大変なことを行おうとしてるさなかのシート名変更ということですね
187:デフォルトの名無しさん
18/08/25 23:14:42.41 KMExyDFm.net
>>178
GC方式が違う、それが証拠です
PowerShellにデストラクタが存在しないことが
GC方式が違うことの証拠です
GC方式とソースコードからメモリリークは明らかです
明らかなものに調査はそれ以上の調査は必要ありません
188:デフォルトの名無しさん
18/08/25 23:14:59.37 t7aLMQyu.net
>>179
すぐには回収されないだけとリークするの間には深い溝があります
遅くともある時点までには解放されることがわかっているわけですから、博打でもなんでもありません
.NETにはそれをコントロールする術も用意されています
189:デフォルトの名無しさん
18/08/25 23:17:12.93 KMExyDFm.net
>>182
コントロール術が用意されてるならそれを使ってコードを書いてくださいよ
解放されることはわかりませんよ、.NETでGCが行われることは保証されません
.NETにはデストラクタがないでしょう? それが証拠です
190:デフォルトの名無しさん
18/08/25 23:19:11.39 t7aLMQyu.net
>>180
いいえ
残念ですが起動していないことの方が多いでしょう
もし起動していたとしてもシート名を直接変える方がマシです
191:デフォルトの名無しさん
18/08/25 23:20:33.06 7hA7VMUm.net
excelのマクロの効率的な書き方について相談できるサイトってどこかにある?仕事の話なのでこういうところに公開することはできないので…
192:デフォルトの名無しさん
18/08/25 23:22:33.22 t7aLMQyu.net
>>181
支離滅裂で全く明らかではありません
GCでインスタンスが回収されると自動的に参照カウントが適切に処理されます
したがって何もせずともリークは起こりません
回収が少し遅れるだけです
193:デフォルトの名無しさん
18/08/25 23:24:33.26 Jrsn7acQ.net
>>184
Excel VBAを実行するのにExcelファイルが開いてない??
支離滅裂ですね。
194:デフォルトの名無しさん
18/08/25 23:25:30.09 t7aLMQyu.net
>>183
[GC]::Collect()
CLRではデストラクタではなくファイナライザがサポートされています
ご安心ください
195:デフォルトの名無しさん
18/08/25 23:25:42.27 KMExyDFm.net
>>185
マイクロソフトのフォーラムとかどうだろ
Technet フォーラム
URLリンク(social.technet.microsoft.com)
196:デフォルトの名無しさん
18/08/25 23:26:47.14 KMExyDFm.net
>>188
ドトネトーは世代別GCなので1回実行しても回収される保証はないですよ
197:デフォルトの名無しさん
18/08/25 23:29:32.44 t7aLMQyu.net
>>187
あるブックのあるシート名を変えたいと思った時にエクセルが都合よく開いているとは限りません
198:デフォルトの名無しさん
18/08/25 23:31:35.44 KMExyDFm.net
>>188
Object.Finalize メソッド (System)
URLリンク(msdn.microsoft.com)(v=vs.110).aspx
| ガベージ コレクションは非決定的であるため、ガベージ コレクターが終了処理を実行すると正確にわかっていません。
| リソースを解放する、すぐにこともできますを実装する、 dispose パターンとIDisposableインターフェイスです。
マイクロソフトも半分支離滅裂ですがファイナライザの使用が非推奨なことが読み取れます
IDisposableインターフェースが用意されてるくらいです
199:デフォルトの名無しさん
18/08/25 23:33:01.95 t7aLMQyu.net
>>190
引数なしのCollectはすべてのジェネレーションのガベージコレクションを直ちに強制実行します
200:デフォルトの名無しさん
18/08/25 23:34:23.56 KMExyDFm.net
>>193
勉強になります
201:デフォルトの名無しさん
18/08/25 23:35:38.63 Jrsn7acQ.net
>>191
Excel VBAを実行するのだからExcel ファイルは開いてますよ。
指定のファイルが開いてないってことを言いたいの?
その場合の処理はあなたのPower shellのコードと大差ないけど。
202:デフォルトの名無しさん
18/08/25 23:35:49.52 KMExyDFm.net
でもそれを呼ぶ前に全部のメモリ参照をなくす必要があります
それってできますか? PowerShellの変数スコープは変態ですから
事実上不可能です
203:デフォルトの名無しさん
18/08/25 23:40:52.15 t7aLMQyu.net
>>192
MSDNの翻訳が酷いことは有名なのでそれは我慢しましょう
リソース解放の時期をコントロールしたいなら決定的なIDisposableを使ってください
決定的でなくても問題がないならIDisposableに頼る必要はありません
スクリプトの利用形態から考えるとプロセスの寿命は非常に短くなります
これはエクセルインスタンスが本当に必要なくなった瞬間とプロセスの終了が時間的にほとんど離れることがないということです
このような場合では決定的な解放にこだわらなくても問題にはなりません
204:デフォルトの名無しさん
18/08/25 23:45:22.40 t7aLMQyu.net
>>195
私の書いたコードでは指定のブックを開く必要がありません
205:デフォルトの名無しさん
18/08/25 23:47:08.86 KMExyDFm.net
>>197
そうとも限らないと思います
スクリプトを使うということは手作業での作業が煩わしく
それを効率化したいという欲求があるためです
スクリプトを書くとき、その時は常に手作業を躊躇する程の事態が発生している
状況と考えるべきで、ある処理がメモリを使んで離さなくて別の処理が
完了できないという経験を僕は山ほど経験してきました
メモリ管理を甘く見ると痛い目を見ます痛い目を見ます
206:デフォルトの名無しさん
18/08/25 23:47:54.93 0r5h6/lL.net
パワー系池沼シェル
207:デフォルトの名無しさん
18/08/25 23:52:33.06 KMExyDFm.net
>>198
パワーシェルのスクリプトを作成して
コマンドプロンプトを起動して
コマンドを入力する必要があるじゃないですか
その時間使ってExcelを起動しましょう
VBAなら一撃です
208:デフォルトの名無しさん
18/08/25 23:54:08.14 t7aLMQyu.net
>>196
処理を適切に構造化して変数のスコープを無闇に伸ばさなければ、自然と不要な変数の参照は辿れなくなります
そして先ほども書いたようにスクリプトはプロセス全体の寿命も短くなりやすいので
変数のスコープはそれほど問題にはなりません
どうしても変数をクリアしたいならClear-Variableというコマンドレットがあります
個人的に使う機会がないコマンドレットですがスコープとワイルドカードを指定してまとめて変数を消去でるそうです
209:デフォルトの名無しさん
18/08/25 23:55:26.38 Jrsn7acQ.net
>>198
>>156
$app = New-Object -ComObject Excel.Application
$book = $app.Workbooks.Open($targetFilePath)
$book.Worksheets($targetSheetIndex).Name = "NewName"
$book.Close($true)
$app.Quit()
ファイル開いてるけど、頭おかしいの?
210:デフォルトの名無しさん
18/08/26 00:02:52.04 MAEGr9r4.net
>>199
シビアなリソース管理が必要ならその時に適切なコードを書けばいいでしょう
なにもすべてのスクリプトを怠惰に書けと強制しているわけではな
211:いのですから ですがほとんどの日常作業でそこまでシビアなリソース管理が要求されることはありません それとリソースの不足は非決定的なリソース解放よりも非効率的なアルゴリズムが原因で発生することが多いということは知っておいた方がいいでしょう
212:デフォルトの名無しさん
18/08/26 00:05:13.99 MAEGr9r4.net
>>201
あなたの書いたコードは名前を変えたいと思うたびにブックを開かなければなりません
シェルを1度起動してパラメータを変えるだけとは訳が違います
213:デフォルトの名無しさん
18/08/26 00:05:54.18 MAEGr9r4.net
>>203
開いているのはプログラムです
手作業で開くのとは全く意味合いが異なります
214:デフォルトの名無しさん
18/08/26 00:07:41.89 MAEGr9r4.net
というか話を戻しますが>>79への解答はまだですか?
どうやら関係ないPowerShellの質問を繰り返して話をそらして逃げようとしているようですが忘れていませんよ
215:デフォルトの名無しさん
18/08/26 00:12:16.95 IHxJX3F+.net
>>207
失礼な、僕は逃げも隠れもしません
>>79に対する解答をお示しします、ご査収ください
Files = ReadCsvFiles("*.csv")
Data = ReadCalcPower(Files)
Sort Data, "desc"
ExportExcel Data
216:デフォルトの名無しさん
18/08/26 00:18:26.74 IHxJX3F+.net
>>204
アルゴリズムが大事なのは知ってますが
スクリプトでExcelを操作するときには計算量を気にしなければ
いけないほどのアルゴリズムを使うことはありません
やることはせいぜいシートの名前を変えて
コピーして集計して並べるくらいでしょう
問題はリソースリークなんです、関数を作りまくって
GCを呼びまくりますか? 僕の目にはそれは狂気と映ります
217:デフォルトの名無しさん
18/08/26 00:19:56.82 IHxJX3F+.net
>>205
VBAでブックを開きたくなりましたか? 教えましょう
Workbooks.Open "C:\Book1.xlsx"
一撃です
VBAは一撃です
218:デフォルトの名無しさん
18/08/26 01:39:01.53 LgI1E3BQ.net
プロセス終了で必ず開放するんだから必要ならそういうスクリプト書けばいいんじゃないの
powershellに限らずリーク問題を解決するためにプロセスサーバ的な構成にしたりするけど
219:デフォルトの名無しさん
18/08/26 01:45:08.66 L5No1MGJ.net
>>189
あ、想定してたのはフェイスtoフェイスで相談かメールで相談する形式なんだけれど、そういうのはやってないかなあ?
220:デフォルトの名無しさん
18/08/26 07:13:59.14 4dFHA/W/.net
>>206
えっとまさか、実行に必要なファイルを全部手で開かないといけないと思ってたの?
バカ丸出しですね。
221:デフォルトの名無しさん
18/08/26 07:57:33.17 w0D5YFHr.net
PowerShell から、Excel, IE とかは、別プロセスを起動するだけだろ?
シェルって、別プロセスを起動するものだろ?
GC のやり方の違いなんて、関係あるか?
222:デフォルトの名無しさん
18/08/26 08:36:31.73 2yDRx5ys.net
VBAの質問です
指定フォルダを再帰的に検索してファイル名が*.csvにマッチするCSVファイルを列挙
各CSVからX列, Y列, Z列を読み取ってD := (X^2 + Y^2 + Z^2)^(1 / 2)を計算する
Dの大きい順に並び替えてX, Y, Z, Dを新規Excelブックに出力して
出力した全行をテーブルレイアウトに変更する
というプログラムを作りたいのですがどのように書けばいいでしょうか?
223:デフォルトの名無しさん
18/08/26 08:56:15.82 4dFHA/W/.net
>>215
Excelに出力するって内容を足したのかw
しかもワンライナーって条件を外したのねw
その内容をPower shellのワンライナーでどうやるんだろうねw
224:デフォルトの名無しさん
18/08/26 09:04:51.11 Kp4FoNKX.net
>>216
>>79 と同じだよ?足したのは「VBAの質問です」だけ
225:デフォルトの名無しさん
18/08/26 09:05:46.45 4dFHA/W/.net
>>217
ごめんなさい、見落としてました。
226:デフォルトの名無しさん
18/08/26 10:12:36.02 H+C43I2p.net
>>208
>Data = ReadCalcPower(Files)
ここだけは許さんw
227:デフォルトの名無しさん
18/08/26 11:26:25.25 uHGK9EwR.net
頭の悪さを全力で競い合ってるスレがあると聞いて飛んできた
どれも最底辺レベルで�
228:b乙つけがたいな
229:デフォルトの名無しさん
18/08/26 11:28:33.75 umld+6tZ.net
大昔何かの雑誌でBASICで一行ゲームとかネタでやってたのを思い出した
>>90 こんなの処理系にパイプ処理があるかないかだけの違いだろ
一行記述できるかどうかは、一行に記述できる最大文字数に加えて
パイプで記述できるか、一命令の区切り記号が設定してあるかくらいで決まる
区切り記号は、C系(C#)では;か}、昔のBASICでは:があったしLISPなんかは括弧で区切ればいくらでも書ける
ワンライナーなんて対話的に使う時に一々スクリプトを立ち上げたり面倒なので使うもの
可読性が悪くなるだけなのでプログラムで絶対に使うもんじゃない
昔のPCのメモリも少なかったのでそれなりに意味はあったんだけど捨てられた
今ではせいぜいネタ、言語のの優位性とは完全に無関係
230:デフォルトの名無しさん
18/08/26 11:30:23.98 IHxJX3F+.net
Excelらしくやるならインポートが先かな
1. インポート_CSV
2. 追加_数式列
3. ソート_数式列
4. 変換_テーブルレイアウト
Excelのパワーをフル活用したいものだね
231:デフォルトの名無しさん
18/08/26 11:31:45.33 umld+6tZ.net
>>220 ほんこれ
232:デフォルトの名無しさん
18/08/26 11:35:30.27 MAEGr9r4.net
>>220
ここはVBAスレだぞ
233:デフォルトの名無しさん
18/08/26 11:45:34.46 IHxJX3F+.net
>>212
僕らの田中さんにお仕事依頼してみるとか
Office TANAKA - お問い合わせ
URLリンク(officetanaka.net)
234:デフォルトの名無しさん
18/08/26 11:49:13.32 MAEGr9r4.net
>>221
流れるようなインターフェースとかパイプラインを使ったワンライナーはモダンなプログラミングでは常識的なテクニックだよ
太古の時代から時が止まってるVBAのユーザーは知らないかもしれないけど
例えばc#のLinqやJavaのstreamなどはもろにパイプラインから影響を受けてるよね
VBAしか使わないのかもしれないけど少しは興味もって知識をアップデートしたら?
235:デフォルトの名無しさん
18/08/26 11:53:35.10 CIvHkKPl.net
>>226
VBAにそんなの必要無い
ただの事務員にStreamなんて理解できるわけないだろう
236:デフォルトの名無しさん
18/08/26 11:58:27.72 4dFHA/W/.net
>>224
低レベルの先頭切ってるのはお前なんだけどw
237:デフォルトの名無しさん
18/08/26 11:59:00.96 MAEGr9r4.net
>>227
必要あるなしでいったらなにも必要ないよ
手作業だけでも仕事はできる
そうじゃなくて、より良い方法はないか?って模索していくことが大事なんだろ
つーか事務員がstreamを理解できないなんてのも決めつけでしかない
所詮は部品の組み合わせだから、手続き型のアルゴリズムを理解するよりずっと簡単だよ
簡単で効果的だから様々な言語が挙って似たような機能を導入したんだ
238:デフォルトの名無しさん
18/08/26 12:01:32.97 MAEGr9r4.net
>>228
の割にはVBAコードが何にも出てこないよな
低レベルのPSerが息をするように簡単に書ける処理を
これだけ時間をかけて答えることができたVBAerがまだ一人もいないってちょっとレベル低すぎでしょ
239:デフォルトの名無しさん
18/08/26 12:03:51.56 4dFHA/W/.net
>>230
開いているのはプログラムです!
だってw
コードうんぬんの前の話ですね!
240:デフォルトの名無しさん
18/08/26 12:04:43.65 4dFHA/W/.net
>>230
どう言う意味だか教えて欲しいですよ!
241:デフォルトの名無しさん
18/08/26 12:09:14.50 Kp4FoNKX.net
ID:4dFHA/W/
こいつなんなの?誰にも無益なレスばかり
242:デフォルトの名無しさん
18/08/26 12:11:11.72 MAEGr9r4.net
>>231
確かに
VBAerはコードを絶対に書こうとしないからコードがどうこう以前の問題なんだよな
意見するのはかまわんけど最低限、コードを書いて実証してからにしてほしいよね
コードも書かずに意見しても、うちで修行すれば空飛べるぜー、とか豪語する真理教のおっさんと大差ない
まさに戯言になってしまう
なんでvbaerさんまずはコードを書きましょう
>>79への解答待ってます
243:デフォルトの名無しさん
18/08/26 12:13:53.71 CIvHkKPl.net
会社のPCにしかExcel入ってないから無理
244:デフォルトの名無しさん
18/08/26 12:15:34.05 NdNCtt3a.net
ユーザー系の仕事でVBAつったら、事務員のスプレッドを少し自動化したものから、業務知識鬼のベテランがプログラム ちょっとかじったものまであるけど、最近またRPAバブルで前者を移植することになった
このRPAっつー半分胡散臭いものが流行るおかげでワシらオッサンPGが食っていけるわけだが、いかんせん胡散臭い
245:デフォルトの名無しさん
18/08/26 12:16:54.34 4dFHA/W/.net
>>233
バカなPower shellユーザーを追い出したいだけ。
このスレにとっては最高に有益だと思うけど。
246:デフォルトの名無しさん
18/08/26 12:17:40.69 4dFHA/W/.net
>>234
>>231は君の書き込みの引用なんだけどw
247:デフォルトの名無しさん
18/08/26 12:27:21.24 IHxJX3F+.net
>>234
これ一個ずつやってみたらどうだろ?
VBAの実装の仕方がわからないって質問ですよね
1. インポート_CSV
2. 追加_数式列
3. ソート_数式列
4. 変換_テーブルレイアウト
自分で調べてみてそれでもわからないことが
出てきたら具体的に聞いてもらうということで
248:デフォルトの名無しさん
18/08/26 12:27:42.40 Kp4FoNKX.net
無能な味方が無自覚にバックファイアしてるようにしか見えん
249:デフォルトの名無しさん
18/08/26 12:30:12.52 IHxJX3F+.net
他人を値踏みするスレじゃないですし
他人と自分を比較して自信をつけるスレでもないと思うんですよ
Excel VBAでわからないことがあったら質問するスレということで
ご理解賜りたいと思う次第でございます
250:デフォルトの名無しさん
18/08/26 12:31:08.57 IHxJX3F+.net
>>240
議論に敵も味方も勝ちも負けも良いも悪いもないと思うんですよ
みんなで意見を出し合ってVBAパワーを高め合いましょう
251:デフォルトの名無しさん
18/08/26 12:38:03.33 gb73y82y.net
>>536
dbからcsvでブッコ抜いた、300万件程度のレコードのなかから
~って条件に該当するレコードをExcelで抜いてくださいと言われたことがあって困惑した
Excelじゃ無理だといったら「なんで出来ないのか、PGなんだからできるでしょ」みたいな言い方された
1週間あげるから、1週間でExcelであげて欲しいと・・
結局なんとか、Excelじゃなくてもいいと説得してその日のうちに
仕上げたら「早すぎるのじゃないか」「正確性が心配だ」と文句言われた
ことを思い出した
252:デフォルトの名無しさん
18/08/26 12:40:55.31 4ngh3oqJ.net
だからなんで読んだ瞬間に組めると思うようなアホ臭い処理で比較してるんだよ。
頭悪いなあ。
そんなもんで比較してもVBAの優位性は変わらんぞ。
Excel上から実行出来るとか1ファイルで済むとか。
例えばフローレイアウトを使うことは無いと思うが、あれならまだ分かる。
あれはVBAじゃ無理だと思うからな。
見て組めると思うようなものをわざわざこんな所で披露するのはアホだと思う。
そんなもんは仕事でやれ。
そんなくだらないことをする時間がもったいない。
253:デフォルトの名無しさん
18/08/26 12:42:38.16 Kp4FoNKX.net
今のExcelって100万行/シートだから3つか4つのシートに分割して読み込んで処理すれば不可能ではないよな、65000行時代なら考えたくないが
254:デフォルトの名無しさん
18/08/26 12:43:02.28 L5No1MGJ.net
>>225
マクロの作成の依頼は無いみたいね。
あまりみんなこういうのやらないのかな。
255:デフォルトの名無しさん
18/08/26 12:45:59.62 MAEGr9r4.net
>>243
VBAにこだわる人ってそんなもんよ
256:デフォルトの名無しさん
18/08/26 12:46:25.60 4ngh3oqJ.net
>>243
いや、仕事でやったことあるぞ。
もっとデータ多かったと思う。
それに引っこ抜くだけじゃなくて、それで演算もしてた。
今、計算してみたらデータは26280000以上だった。
正確には分からないけど多分倍以上だな。
257:デフォルトの名無しさん
18/08/26 12:48:32.93 MAEGr9r4.net
>>244
VBAだと組むのに多大な労力がかかるからレスバトルごときではやりたくないんですよね
その気持ちわかります
これがVBAでもスラスラ短く書けるものだったらほれみたことかと言わんばかりに嬉々として解答してくれていたのでしょうね
258:デフォルトの名無しさん
18/08/26 12:52:38.54 IHxJX3F+.net
>>246
ホントだ受け付けてないんだね
259:デフォルトの名無しさん
18/08/26 12:53:11.08 IHxJX3F+.net
バトルだったのかー
260:デフォルトの名無しさん
18/08/26 12:53:15.29 4ngh3oqJ.net
1000個所以上(多分倍以上)の場所から1時間毎に取得したデータ3年分だな。
これをある時間毎に平均をとって1日に24個の平均値を作り、その最大をその日のデータとする。
で、それを3年分の日数取ってきて・・・
みたいな。
261:デフォルトの名無しさん
18/08/26 12:56:49.15 4ngh3oqJ.net
>>249
いや、スラスラとか関係ない。
5分で出来るものが20分になっても大したことない。
出来ないものは出来ないし、
何とかして頑張って出来るというものだったら5分が10日とかになる。
そういう方が問題。
解決策がみい出せるかどうかの方がよっぽど重要だよ。
262:デフォルトの名無しさん
18/08/26 12:57:52.90 IHxJX3F+.net
/⌒ヽ
\ ⊂[(_ ^ν^) 決闘状を申し込む!
\/ (⌒マ´
(⌒ヽrヘJつ
> _)、
し' \_) ヽヾ\
丶_n.__
[I_ 三ヲ (
 ̄ (⌒
⌒Y⌒
263:デフォルトの名無しさん
18/08/26 12:59:13.59 4ngh3oqJ.net
>>249
短くスラスラ書けるようなものだったら回答しない。
他の誰かが回答するか、そいつが少し調べれば解決出来るだろうから。
264:デフォルトの名無しさん
18/08/26 13:07:54.88 TGlid3xa.net
たとえスラスラ書けてもVBAじゃ1レスに収まらないでしょ
VBAerはpastebinとかgistとかのコード共有サービスの存在も知らなそうだし
265:デフォルトの名無しさん
18/08/26 13:21:54.43 MAEGr9r4.net
>>253
いや問題だよ
>>79みたいな日常的な作業は、解決に時間使っていいような困難な課題じゃないから
266:デフォルトの名無しさん
18/08/26 13:22:28.02 MAEGr9r4.net
>>255
なら誰も答えられないってことはできないってことなんだろうな
267:デフォルトの名無しさん
18/08/26 13:29:43.99 nkjaCm6A.net
ワンライナーじゃなくてもいいけどイミディエイトウィンドウしか使っちゃいけないって趣旨ですね?
268:デフォルトの名無しさん
18/08/26 13:35:01.25 2yDRx5ys.net
>>259
もしできるならイミディエイトがいいけど
どうもVBAでは不可能って結論に落ち着きそうだから無理してイミディエイトを使わなくてもいいよ
普通にbasでもclsでも使ってください
とはいえレス分割するほど長くなると読む気がなくなるのでなるべくスマートに収めてください
269:デフォルトの名無しさん
18/08/26 13:35:33.66 Kp4FoNKX.net
>>243 よくよく考えると 1レコード分のバッファと条件一致したレコードの書き出し先さえ確保すれば
ReadLineの繰り返しで処理可能だから、レコードが何件あっても問題なさそう。
シートに取り込む必要なんてないわw
65000行時代でもできたと思うな
270:デフォルトの名無しさん
18/08/26 14:09:05.11 gniZ58wi.net
下のコードでボタンを押すたびにAの値が増えていくのですが
グローバル変数ってプログラムが終わっても残るものですか
またプログラムが終わったときに消えるにはどうしたらいいです?
Option Explicit
Dim A As Long
Sub ボタン1_Click()
A = A + 1
271:MsgBox A End Sub
272:hoge
18/08/26 14:51:46.48 A6DnlFkA.net
>>79,239
暇だから書いてみた。
素人が書いたコードだからワンライナー?ではないけど許してほしい。
[Module1]
Sub hoge()
Dim i As Long, k As Long
Dim data() As Variant
Dim cCsv As Collection
Dim csv As clsCSV
Dim fso As New FileSystemObject
Dim fn As Variant
'CSV読み込み
k = 0
Set cCsv = New Collection
For Each fn In FileFilter(ThisWorkbook.Path, "csv")
Set csv = New clsCSV
cCsv.Add csv.LoadCSV(CStr(fn))
k = k + csv.RowsCount
Next
'CSV合成・計算
ReDim data(1 To k + 1, 1 To 4)
data(1, 1) = "X": data(1, 2) = "Y": data(1, 3) = "Z": data(1, 4) = "D"
k = 1
For Each csv In cCsv
For i = 1 To csv.RowsCount
k = k + 1
data(k, 1) = csv.Table(i, "X")
data(k, 2) = csv.Table(i, "Y")
data(k, 3) = csv.Table(i, "Z")
data(k, 4) = (csv.Table(i, "X") ^ 2 + csv.Table(i, "Y") ^ 2 + csv.Table(i, "Z") ^ 2) ^ (1 / 2)
Next
Next
273:hoge
18/08/26 14:52:20.01 A6DnlFkA.net
>>263 続き
'XLSXへエクスポート
Dim WB As Workbook
Dim Sh As Worksheet
Dim Tbl As Range
Dim LO As ListObject
Set WB = Workbooks.Add
Set Sh = WB.Worksheets(1)
Set Tbl = Sh.Cells(1, 1).Resize(UBound(data, 1), UBound(data, 2))
Tbl.Value = data
Set LO = Sh.ListObjects.Add(xlSrcRange, Tbl, , xlYes)
LO.Sort.SortFields.Clear
LO.Sort.SortFields.Add Key:=LO.ListColumns("D").Range, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
LO.Sort.Apply
WB.SaveAs ThisWorkbook.Path & "\hoge.xlsx"
WB.Close False
End Sub
274:デフォルトの名無しさん
18/08/26 14:53:06.26 A6DnlFkA.net
>>264 普通は汎用モジュールを使うが自宅にないので、それっぽく再現したもの
Function FileFilter(folder As String, ext As String, Optional ret As Collection) As Collection
Dim fso As FileSystemObject
Dim fil As File
Dim fol As folder
Set fso = New FileSystemObject
If ret Is Nothing Then Set ret = New Collection
For Each fil In fso.GetFolder(folder).Files
If fil.Name Like "*" & ext Then
ret.Add fil.Path
End If
Next
For Each fol In fso.GetFolder(folder).SubFolders
Call FileFilter(fol.Path, ext, ret)
Next
Set FileFilter = ret
End Function
275:hoge
18/08/26 14:54:14.81 A6DnlFkA.net
>>265 続き[clsCsv]
Private data As Variant
Private dCol As Dictionary
Public Function LoadCSV(fn As String) As clsCSV
Dim i As Long, j As Long, k As Long
'インポート
'※CSVの仕様が書いてないから、遅いけどコレで。
With Workbooks.Open(fn)
data = .Worksheets(1).UsedRange.Value
.Close False
End With
'列情報のキャッシュ
Set dCol = New Dictionary
For i = 1 To UBound(data, 2)
dCol.Add data(1, i), i
Next
Set LoadCSV = Me
End Function
Public Property Get Table(Row As Long, Col As String) As Variant
If dCol.Exists(Col) Then
Table = data(Row + 1, dCol(Col))
Else
Err.Raise 9999
End If
End Property
Public Property Get RowsCount() As Long
RowsCount = UBound(data, 1) - 1
End Property
行数制限が辛いわ
276:デフォルトの名無しさん
18/08/26 14:54:45.29 Kp4FoNKX.net
Sub の中で宣言すりゃいい
277:267
18/08/26 14:55:49.03 Kp4FoNKX.net
>>267 は>>262宛
278:hoge
18/08/26 15:01:06.14 A6DnlFkA.net
無理に1行に押し込むより、少しづつステップ実行できる方が読みやすいし、良いのでは無いかと思うのでした。
VBAerの人頑張って最適化して?
279:デフォルトの名無しさん
18/08/26 15:32:56.80 2yDRx5ys.net
長いなぁ
これ事務員さんにメンテナンス出来る?
280:デフォルトの名無しさん
18/08/26 15:52:42.90 Kp4FoNKX.net
dim csv as clsCSV
て通るの?そんな型知らないんだが
281:デフォルトの名無しさん
18/08/26 15:56:23.14 A6DnlFkA.net
>>270
長いだけで素人にはすごく読みやすいよ。
F8で1行づつ動きを確認していって”ここだ!”ってところで追記して、実行して、違ったら矢印をちょっと前まで戻して、また追記して実行してry
って感じなので・・・。
282:デフォルトの名無しさん
18/08/26 15:57:37.27 A6DnlFkA.net
>>271
自作クラス >>266 会社に行けばちゃんとしたクラスがあるけど自宅には無いから必要なものだけ実装した。
283:デフォルトの名無しさん
18/08/26 15:58:18.95 A6DnlFkA.net
間違えた。 >>273は>>271へ
284:デフォルトの名無しさん
18/08/26 16:04:06.82 YE41eTAF.net
ruby厨のせいでrubyが不当に貶められてるのが気に食わないのでrubyで>>79書いた
1レスに収まるこの簡潔さよ
require "csv"
require "win32ole"
path_to_folder = "."
data = Dir[path_to_folder + "/*.csv"]
.map{|path| CSV.read(path, converters: :numeric)}.flatten(1)
.sort_by{|x, y, z| (x**2 + y**2 + z**2) ** 0.5}.reverse
ws = WIN32OLE.new("Excel.Application").tap{|app| app.Visible = true}
.Workbooks.Add.Sheets[1]
cells = ws.Range(ws.Cells(1,1), ws.Cells(data.size, 3))
cells.value = data
ws.ListObjects.Add(nil, cells)
ワンライナーじゃExcel操作するのを綺麗に書けないから諦め
APIが糞ってはっきりわかんだね
285:デフォルトの名無しさん
18/08/26 16:17:18.62 YE41eTAF.net
>>79 Dも出力するのかこれ。ちょっと(1行と1文字)修正
require "csv"
require "win32ole"
path_to_folder = "."
data = Dir[path_to_folder + "/*.csv"]
.map{|path| CSV.read(path, converters: :numeric)}.flatten(1)
.map{|x, y, z| [x, y, z, (x**2 + y**2 + z**2) ** 0.5]}.sort_by(&:last).reverse
ws = WIN32OLE.new("Excel.Application").tap{|app| app.Visible = true}
.Workbooks.Add.Sheets[1]
cells = ws.Range(ws.Cells(1,1), ws.Cells(data.size, 4))
cells.value = data
ws.ListObjects.Add(nil, cells)
なおcsvライブラリは標準添付ライブラリなのでわざわざ自作クラスとか作る必要ないです
286:デフォルトの名無しさん
18/08/26 16:22:13.35 IHxJX3F+.net
>>276
Rubyの実行環境はどうやって入手するん?
事務員にできるん?
287:デフォルトの名無しさん
18/08/26 16:23:38.44 IHxJX3F+.net
Export-Excelはどうやって使うん?
事務員にできるん?
288:デフォルトの名無しさん
18/08/26 16:23:51.10 53MEpRMM.net
>>272
じゃあこのコードに
・ワイルドカードあるいは正規表現を使ったファイル列挙除外機能
・CSVファイルの文字コード指定機能
・CSVファイルのデリミタ指定機能
をサクッと追加できますか?
289:デフォルトの名無しさん
18/08/26 16:25:46.43 IHxJX3F+.net
事務員なら余裕やろな
290:デフォルトの名無しさん
18/08/26 16:26:56.43 53MEpRMM.net
>>280
コードを書かない人はプログラマでも事務員マクラーでもありません
291:デフォルトの名無しさん
18/08/26 16:29:19.59 IHxJX3F+.net
はい。
292:デフォルトの名無しさん
18/08/26 16:30:47.98 A6DnlFkA.net
>>276
自分が慣れてる書き方するために自作クラス作ったけど、作らなくても普通に書けるのでそこはツッコムところじゃないよ!
VBAは複数の二次元配列をマージする処理を自力で書かないといけないし、ソートもRangeに対して実行するか自作するかしないと出来ないので大変だとは思う。
やりたい命令がちゃんと用意されてるのはいいなぁ。
293:デフォルトの名無しさん
18/08/26 16:33:02.31 A6DnlFkA.net
>>279
だからCSV用のクラスはちゃんとしたのが会社に行かないと無いってば。
イジめないで!
ファイル列挙用もこんな即興で書いたのじゃなくて、マトモなのがある。
日常的に使うものだから特にね。。
294:デフォルトの名無しさん
18/08/26 16:37:26.33 LgI1E3BQ.net
WSHのjscript版。with_なんちゃらは適当に補完してね。jscriptにはsafearrayがないから普通に書くとセ
295:ル格納が糞遅い。 var base_path = "C:\base_path" var outxls = "DXYZ.xlsx"; var csv_list = []; with_dir(base_path, function(file) { if (!file.path.match(/\.csv$/i)) return; var i = 1; with_file(file.path, function(str){ if (i++ == 1) return; // exclude header var csv1 = str.split(","); var x = parseFloat(csv1[0]); var y = parseFloat(csv1[1]); var z = parseFloat(csv1[2]); var d = Math.sqrt(Math.pow(x,2) + Math.pow(y,2) + Math.pow(z,2)) csv_list.push([d, x, y, z]); }) }) function csv_list_sort(a, b) { return b[0] - a[0]; } with_excel(outxls, function(excel, book){ var sheet = (new Enumerator( book.Worksheets)).item(); csv_list.sort(csv_list_sort); csv_list.unshift(["D","X","Y","Z"]); for(var i = 0; i < csv_list.length; i++) { sheet.cells(i + 1, 1).value = csv_list[i][0]; sheet.cells(i + 1, 2).value = csv_list[i][1]; sheet.cells(i + 1, 3).value = csv_list[i][2]; sheet.cells(i + 1, 4).value = csv_list[i][3]; } })
296:デフォルトの名無しさん
18/08/26 16:43:57.24 Kp4FoNKX.net
イミディエイトウインドウ縛りを外して貰えれば、Excel標準実装のデータインポートメソッドで文字コードもデリミタも如何様にも設定できたるし、その上速いらしいよ下記のサンプル4ね
URLリンク(www.wat3d.com)
297:デフォルトの名無しさん
18/08/26 16:44:22.05 2yDRx5ys.net
いいね
プログラム板らしくなってきたじゃないか
298:デフォルトの名無しさん
18/08/26 16:46:10.81 TGlid3xa.net
>>286
サンプルじゃなくて完動するコードを貼れやカス
299:デフォルトの名無しさん
18/08/26 16:47:59.21 IHxJX3F+.net
>>288
お前がやるんや
300:デフォルトの名無しさん
18/08/26 16:52:27.57 TGlid3xa.net
>>288
めちゃくちゃ長くなるから無理
301:デフォルトの名無しさん
18/08/26 17:05:59.45 4dFHA/W/.net
>>290
自演ですか?
302:デフォルトの名無しさん
18/08/26 18:01:16.22 4ngh3oqJ.net
>>257
バーカ。
5分が20分になっても、全く時間なんて使ってないというぐらいだ。
まともにプログラム組んだこと無いか、誰でもできるルーチンワ―クしか書いたことないんだろ。
仕事で組んでる時だって上手いアイデア出すのに長い時間使って、15分節約できたことなんて何の意味も無い。
303:デフォルトの名無しさん
18/08/26 18:05:20.39 4ngh3oqJ.net
つまらんプログラムなんで読む気もせん。
304:デフォルトの名無しさん
18/08/26 18:09:10.63 TGlid3xa.net
いいからコードで語れや
305:デフォルトの名無しさん
18/08/26 18:10:19.11 53MEpRMM.net
>>292
バーカ
アイデア出すのに時間を最大限使いたいからくだらん仕事は可及的速やかに終わらせるんだよ
VBAなんかに時間使ったら頭使う時間もエネルギーも勿体なさすぎ
これプログラマの常識よ?
世の中みんなくだらん仕事はできるだけ楽にしてクリエイティブな仕事に時間体力金を使おうって考えてんの
クソやりにくい言語で自らを縛って車輪の再発明を繰り返す変人なんて相手にもされんわ
306:デフォルトの名無しさん
18/08/26 18:11:36.64 FkpCoYCZ.net
>>293
読まなきゃ自尊心傷付かないもんなw
307:デフォルトの名無しさん
18/08/26 18:27:20.32 L5No1MGJ.net
プログラマってクリエイティブなんだ
知らなかったわ
308:デフォルトの名無しさん
18/08/26 18:27:27.81 H+C43I2p.net
>>284
それってさ、
「VBA自体の機能は弱いけどオ�
309:激Iレライブラリを充実させているからいいんです!」 ってことじゃない? そんなの俺だってそうだよ! なにが言いたいかというと特にないです。
310:デフォルトの名無しさん
18/08/26 18:33:57.92 4ngh3oqJ.net
>>295
だからバカなんだよ。
どうせお前はどんだけ時間使ったってアイデアなんて出ないだろう。
そういう問題だ。
そもそも、いくらだってもっと技術的に高度で、VBAでやるのは大変な例なんていくらでも有りそうなもんだが、こんな腐った例しか出せないところが、お前にアイデアなんて出せそうも無いことを物語ってる。
311:デフォルトの名無しさん
18/08/26 18:37:11.70 45EuRAle.net
俺はこんな簡単な仕事をやる人間じゃない(やらない)
もっと難しい仕事をやるべき人間だ(やらない)
いつまでたってもやれない
312:デフォルトの名無しさん
18/08/26 18:41:01.67 NdNCtt3a.net
VBAでもヲタが力んでWindows APIやクラスモジュール使い倒してるのはたまに見るな
マクロで何粋がってるんだ?という
313:デフォルトの名無しさん
18/08/26 18:42:42.82 IHxJX3F+.net
>>301
マクロはお嫌いですか?
314:デフォルトの名無しさん
18/08/26 18:42:43.76 45EuRAle.net
>>299
こんだけ具体的なコードが出てる中でサクッとコードを晒せないお前はどんな演説しても語るに落ちてる
315:デフォルトの名無しさん
18/08/26 18:44:38.87 IHxJX3F+.net
>>303
コード出すんはお前や
316:デフォルトの名無しさん
18/08/26 18:45:09.67 53MEpRMM.net
>>299
お前は、アイデアなし、他言語使えない、頼みの綱のVBAですらコード書けない
バカ三冠王じゃねえか!おめでとう!
317:デフォルトの名無しさん
18/08/26 18:46:15.31 45EuRAle.net
>>304
10レスぐらいになっちゃった
318:デフォルトの名無しさん
18/08/26 18:46:46.98 IHxJX3F+.net
>>306
さようか
319:デフォルトの名無しさん
18/08/26 18:55:51.76 9s/sv5PI.net
ここで語り合うヤツはそもそもクリエイティブではないだろwww
320:デフォルトの名無しさん
18/08/26 20:07:21.75 Gz818OEG.net
まったく、つまらんコードでアホ丸出しだ。
俺はこういう馬鹿ではないのでちょっと面白いコードを出してやる。
結構前のことだが画面上に、あるピクセルを指示する何かを置いておきたいって、
質問(要望)があってその時にプロトタイプ的にサラッと書いたものだ。
機能的に不十分でやっつけだからその時は提示しなかった。
URLリンク(pastebin.com)
俺が思うに.netが使えれば、もっと完成度が高く高機能なものを
簡単に作ることが出来るはずだ。
なんでこういうのを比較に出さないのかということだ。
321:デフォルトの名無しさん
18/08/26 20:18:51.49 Gz818OEG.net
それから、>>243はdbからcsvで抜いた300万件のデータと言ってるな。
これまで提示されたコードだと結構時間がかかると思うぞ。
俺の時は数千万のデータだったが最初に書いたコードではVBAで6時間ぐらい
掛かりそうだった。
で、コアを5~6個使って1時間程度に短縮した。
プロさんは相手と交渉できるんだろ。
dbに計算させた方が明らかに速いだろう。
322:デフォルトの名無しさん
18/08/26 21:00:16.42 2yDRx5ys.net
>>309
アイデアもコードもつまらないものだったけどそのレスには爆笑した
確かにクリエイティブな才能(例えばコメディアンなどの)があるようだね
323:デフォルトの名無しさん
18/08/26 21:05:12.64 YE41eTAF.net
>>309
いやそんな誰が書いたかもよくわからんコードじゃなくて>>79を貼れよ…
要件もわからんコード出されても評価のしようがねえよ…馬鹿なのか…
324:デフォルトの名無しさん
18/08/26 22:18:54.66 4ngh3oqJ.net
>>311
悔しいからって犬の遠吠えですか?
フォームをクラスみたいに使う方法を知らないVBAユーザーは結構いるだろう。
お前のコードのように、見た瞬間に出来ると思うようなものじゃ無いんだよ。
それに、このコードにある機能を追加しようとしたら途端に難しくなる。
C#だったら簡単な筈だからPowerS
325:hellでも難しく無いだろう。 Excelも関係ないし、VBAでやるべきじゃない例としてはお前の挙げた例なんかよりよっぽど適切だ。
326:デフォルトの名無しさん
18/08/26 22:25:22.52 4ngh3oqJ.net
>>312
そんな誰でも出来るくせに仕事で書くようなコード書いて何が楽しいんだ?
仕事じゃねえんだからもっとおもしろいもん作れや。
俺の書いたそんなに高度じゃ無いもので、その割にアイデアが無いと出来ないようなのをな。
327:デフォルトの名無しさん
18/08/26 22:37:30.85 FkpCoYCZ.net
問題が面白いかの話なんて誰もしてないよ
Excelが絡むある作業をどう書くのかという話をしてるんだよお前以外は
早く>>79のコード晒さないと口だけの奴だと思われるぞ
もう遅いかもしれないけど
328:デフォルトの名無しさん
18/08/26 22:41:40.76 IHxJX3F+.net
Microsoftの煽り営業やろな
329:デフォルトの名無しさん
18/08/26 23:02:51.18 4ngh3oqJ.net
>>315
どんなコードを書いてるかを見れば、そいつにそれが出来るレベルにあるかなんてすぐわかる。
だから俺が書く必要はないだろう。
それに、どっかのアホが既にVBAで書いてるだろ。
どうせ似たようなもんになるだけだろう。
そうだな、俺ならFileSystemObjectを使わずにブックのOpenもしない。
csv読み込んで演算するなら古いテキストのOpenで開いてやった方が速いと思う。
スピードを考えるならBinaryでひらいてStrconvを使うかな。
Dictionaryも使わないんじゃないかな。
クラスも使わない。
クラスを作るのにピッタリ来る処理とは思わないから。
まあ、だからといってアホのコ―ドが駄目かといえばそんなことは無い。
俺が見るに趣味の問題。
だが、つまらん作業に時間を使いたく無いからこんな処理のコードは書かん。
330:デフォルトの名無しさん
18/08/26 23:20:41.25 L5No1MGJ.net
プログラマって自尊心の塊なのかってぐらい自分を守るな
331:デフォルトの名無しさん
18/08/26 23:28:57.92 Kp4FoNKX.net
特殊例から一般化しないでくれ...
332:デフォルトの名無しさん
18/08/26 23:31:34.90 53MEpRMM.net
一生ドーナッツ作ってろよw
333:デフォルトの名無しさん
18/08/26 23:37:21.82 53MEpRMM.net
質問に答えられないからってドーナッツ作って話をはぐらかそうとする奴が居るらしいんだがマジか?
334:デフォルトの名無しさん
18/08/26 23:46:44.57 FkpCoYCZ.net
俺もこの目で見るまでは信じられなかった
335:デフォルトの名無しさん
18/08/26 23:49:07.52 4ngh3oqJ.net
>>321
君は言動を見ると、そもそもプログラム書けないんじゃないか?
どの発言みても、レベルが高いようにはとても見えない。
例えば、俺がアホと呼んでる>>263だってコード見れば結構レベルが高いことなんてすぐ分かる。
人のコード見てそんなことも読み取れないんじゃ話にならん。
336:デフォルトの名無しさん
18/08/26 23:53:29.34 YE41eTAF.net
長文書く暇はあるのに15分で書けるコード(rubyの場合。テスト用csvファイルの作成などを含む)を
何故さっさと書かないのかコレガワカラナイ
337:デフォルトの名無しさん
18/08/26 23:54:53.52 FkpCoYCZ.net
>>323
そもそもコード晒さない奴が何言ってんだ
338:デフォルトの名無しさん
18/08/27 00:01:09.25 j6hbWA4v.net
ドーナツの方がすごいと思ったけどね僕は
339:デフォルトの名無しさん
18/08/27 00:01:41.55 0VuCVsh0.net
最高レベルのドーナッツ職人とコメディアンの二足のわらじは大変そうだなあ
そりゃコード書けなくなるわ忙しいもんな
340:デフォルトの名無しさん
18/08/27 00:02:21.90 wSgDz8cK.net
>>320
>>321
ドーナッツやない、ドーナツや
ウェブをウェッブと言うようなものやで
キスをキッスと言うようなものやで
昭和のおっさんか
341:デフォルトの名無しさん
18/08/27 00:04:33.81 0VuCVsh0.net
>>324
PowerShellのは3分で書けたぞ
342:デフォルトの名無しさん
18/08/27 00:12:00.78 e5NQDqcO.net
アホが何を言って煽ろうが、書かないと宣言したもんは書かん。
それに、それなりにスキルのある奴はコードを見ればレベルもわかる筈だ。
343:デフォルトの名無しさん
18/08/27 00:15:43.23 uGiTpI0n.net
自尊心保つの大変そうだなあ
344:hoge
18/08/27 00:18:03.80 rO/r14zS.net
>>323
PowerShellerなんかに褒められて、わ~い♪褒められた~♪と内心喜んでる俺がいる。
が、それは置いといて俺のVBAは準備含めて30分くらい。
(32行に収まらなくて調整するのに10分くらいかかったけども)
345:デフォルトの名無しさん
18/08/27 00:20:11.68 0VuCVsh0.net
>>326
Winapi入門的な本やサイトでありがちな初心者用の練習課題ってとこかな
346:デフォルトの名無しさん
18/08/27 00:22:49.76 uGiTpI0n.net
>>330
そもそもお前が勝手に問題作ったらお前が書いたコードかどうかも怪しいんだよ
そんなこともわからんのかコードが書けないスキルの無い奴は
347:デフォルトの名無しさん
18/08/27 00:25:28.83 e5NQDqcO.net
>>332
君がPowerShellerじゃ無いのか?
「VBAerの人頑張って最適化して?」とか
「やりたい命令がちゃんと用意されてるのはいいなぁ。」とか書いてるし。
それとも、まんまとPowerShellerの口車に乗せられて、コード書いたんか?
348:デフォルトの名無しさん
18/08/27 00:27:32.81 e5NQDqcO.net
>>334
だったら、もっとおもしろいお題を出すんだな。
それに、コード晒さなくてもこれまでの言動からすぐ分かるだろ。
349:デフォルトの名無しさん
18/08/27 00:29:24.09 uGiTpI0n.net
>>336
たしかにわかるな
口先だけの奴だってなwwww
350:デフォルトの名無しさん
18/08/27 00:29:43.53 e5NQDqcO.net
>>334
というか、こんなこと書くからレベルがすぐ分かる。
351:デフォルトの名無しさん
18/08/27 00:31:39.75 e5NQDqcO.net
>>337
お前が碌に書けないのはすぐ分かる。
スキルのある奴なら>>317を読めば最低でも多少は書ける奴だとすぐ分かるんだよ。
352:hoge
18/08/27 00:31:43.24 rO/r14zS.net
>>335
生粋のVBAerだけど素人なので、仕事で使ってるVBAer任せた!ってつもりなのでした。
昼食後の昼寝前に暇だったから、誰も投稿しようとしないコードを上げたらどうなるのかなと・・・
口車に乗せられたってのは間違いないかもね!
353:デフォルトの名無しさん
18/08/27 00:33:43.59 0VuCVsh0.net
これまでの言動から初心者レベルのWinapiを使った面白(?)アプリで有頂天になれる強い自尊心の持ち主ということはわかりました
どんな苦境でも前向きに物事を考えられるその人間性はとてもスゴイことだと思います
354:デフォルトの名無しさん
18/08/27 00:34:57.16 e5NQDqcO.net
>>333
悔しいのかもしれんが、つまらんお題を出した自分が悪いんだよ。
355:デフォルトの名無しさん
18/08/27 00:36:26.47 rO/r14zS.net
>>340
あああわわわ・・この表現だと仕事で使ってないみたい。
会社でコソっと使ってるけど、これで御飯食べてるわけじゃないのでバリバリ使ってる人ならと・・・
356:デフォルトの名無しさん
18/08/27 00:39:17.06 e5NQDqcO.net
結局、PowerShellは大したことできんと証明するようなお題なんだからな。
大したことできるというお題だって提示できた筈なんだ。
それでも、VBAじゃやらない処理だという反論も出来る場合もあるだろう。
でも、俺が見てもどうにもならんからそれだったらC#でやるというものもある。
357:デフォルトの名無しさん
18/08/27 00:42:48.53 TXKBjdm9.net
>>340
あなたのコード見ていっちょrubyでも書いてみるかってなったから先陣を切ったのは偉い
素人でもなんでも実際に動くコードが良いコードだ
358:デフォルトの名無しさん
18/08/27 00:45:26.56 73yCiJDJ.net
outlookのマクロはここでええかの?
359:デフォルトの名無しさん
18/08/27 00:46:16.71 0VuCVsh0.net
>>345
確かに偉い
言い訳ばかりでなんにもコード書かないくせに自信だけはたっぷりの勘違いくんに爪の垢を煎じて飲ませてあげたいね
360:デフォルトの名無しさん
18/08/27 00:47:37.11 wSgDz8cK.net
>>329
おいお前、Export-Excelを使う方法を教えろ
Windows 7、PowerShell 4だ
361:デフォルトの名無しさん
18/08/27 00:49:45.70 0VuCVsh0.net
>>348
URLリンク(github.com)
362:hoge
18/08/27 00:49:47.79 rO/r14zS.net
>>348
あ、私も知りたい。
自信満々に上げてくれた>>90を検証したいのにエラー出てくる。
こっちはWindows 10だ
363:デフォルトの名無しさん
18/08/27 00:50:38.17 wSgDz8cK.net
なんか派閥が形成されてて
364:キモい 自分以外は全部敵だと思え、馴れ合う君たちに価値などない
365:デフォルトの名無しさん
18/08/27 00:51:36.40 wSgDz8cK.net
>>349
その箇所を引用しろハゲ、横着すんな
366:デフォルトの名無しさん
18/08/27 00:55:17.33 rO/r14zS.net
>>352
そこまではわかった。
ダウンロードしたフォルダで>>90を実行すると、こうなるけどどうしたらいいの
PS C:\Users\hoge\Downloads\ImportExcel-master> gci . -Recurse -Filter *.csv | % { ipcsv $_ } | % { $_ | Add-Member -Pass
Thru -MemberType NoteProperty D ([math]::sqrt([math]::pow($_.X, 2) + [math]::pow($_.Y, 2) + [math]::pow($_.Z, 2))) } | S
ort-Object D -Descending | Export-Excel -Now
Export-Excel : 用語 'Export-Excel' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前とし
て認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、
再試行してください。
発生場所 行:1 文字:221
+ ... th]::pow($_.Z, 2))) } | Sort-Object D -Descending | Export-Excel -Now
+ ~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Export-Excel:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
367:デフォルトの名無しさん
18/08/27 00:56:47.08 wSgDz8cK.net
>>353
あ、わかったんだナイス
368:デフォルトの名無しさん
18/08/27 00:57:25.56 0VuCVsh0.net
>>353
CommandNotFoundException
URLリンク(github.com)
369:デフォルトの名無しさん
18/08/27 00:59:49.33 wSgDz8cK.net
>>355
だからお前がどうやったのかを言えや
370:デフォルトの名無しさん
18/08/27 01:00:55.38 rO/r14zS.net
>>354
>>355
わざわざExport-Excel.ps1の入ってるフォルダで>>90を実行しているのにコレが出るから悩んでいる。
dllみたいにsystem32へ保存しないとダメとかなんかルールあるんけ?
371:デフォルトの名無しさん
18/08/27 01:03:11.91 0VuCVsh0.net
>>356,357
URLリンク(github.com)
README.md
372:デフォルトの名無しさん
18/08/27 01:05:41.25 YJAIAvBs.net
急にリンク貼るだけのコミュ障になったなコイツ
ただのクズか
373:デフォルトの名無しさん
18/08/27 01:17:54.97 kP3VgsYY.net
そこに書かれてる
Install-Module ImportExcel -scope CurrentUser
を実行するとこんな感じだった。
---
PS C:\Users\hoge> Install-Module ImportExcel -scope CurrentUser
続行するには NuGet プロバイダーが必要です
PowerShellGet で NuGet ベースのリポジトリを操作するには、'2.8.5.201' 以降のバージョンの NuGet
プロバイダーが必要です。NuGet プロバイダーは 'C:\Program Files\PackageManagement\ProviderAssemblies' または
'C:\Users\hoge\AppData\Local\PackageManagement\ProviderAssemblies'
に配置する必要があります。'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force' を実行して NuGet
プロバイダーをインストールすることもできます。今すぐ PowerShellGet で NuGet
プロバイダーをインストールしてインポートしますか?
[Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): y
信頼されていないリポジトリ
信頼されていないリポジトリからモジュールをインストールしようとしています。このリポジトリを信頼する場合は、Set-PSReposit
ory コマンドレットを実行して、リポジトリの InstallationPolicy の値を変更してください。'PSGallery'
からモジュールをインストールしますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): y
PS C:\Users\hoge>
374:デフォルトの名無しさん
18/08/27 01:20:34.40 KKIFZoE3.net
Installationぐらい読めよ
375:
376:デフォルトの名無しさん
18/08/27 01:20:51.76 kP3VgsYY.net
Export-Excel.ps1のコードなげえなあ
URLリンク(github.com)
377:デフォルトの名無しさん
18/08/27 01:26:56.53 wSgDz8cK.net
>>357
Install-Moduleはオンラインギャラリーからインストールするもので
ローカルのモジュールをインストールするのは↓これでいけるかも
about_Modules
URLリンク(technet.microsoft.com)
モジュールのフォルダを自分で作って
そこにモジュールを放り込んで
Import-Moduleやるみたいよ
378:デフォルトの名無しさん
18/08/27 01:27:16.96 1GtV5xun.net
c;\aaa\bbb\ccc.xls
c;\aaa\AAAAAAA\cccaaaa.txt
みたいに
二つ目のフォルダの階層だけを取得したい場合
どうすればいいのでしょうか?
上記ならbbbとAAAAAAAです
StrReverse関数はあくまでも右から見て最初の\以降しか取れません。
379:デフォルトの名無しさん
18/08/27 01:30:06.85 wSgDz8cK.net
>>361
それでわかるわけないだろ、品川に行くにはと聞いてる人に関東だと答えてるようなもんでしょうが
380:デフォルトの名無しさん
18/08/27 01:30:57.18 wSgDz8cK.net
久しぶりにVBAのまともな質問が
381:デフォルトの名無しさん
18/08/27 01:37:50.69 kP3VgsYY.net
split して配列にぶち込んでArr[2]を参照
382:デフォルトの名無しさん
18/08/27 01:38:48.56 rO/r14zS.net
とりあえず、ps1は絶対パス指定じゃないと動かないらしいことがわかったので
フルパス指定したら先のエラーは突破できたけど、どこのフォルダに保存されたcsvも
>ファイル 'C:\test\1.csv' が見つかりませんでした。
って出て読み込んでさえくれない。
>>363 の方法でなんかすれば動くのかな・・・
とりあえず今日は諦めるわ
383:デフォルトの名無しさん
18/08/27 01:40:41.81 wSgDz8cK.net
明日は良いことあるよ
384:デフォルトの名無しさん
18/08/27 01:42:28.19 GTSRIP0x.net
VBAってファイルを開いてコピーしてペーストして閉じるぐらいのもんじゃないの?
何をこんな難しい話をしてるんだ??
385:デフォルトの名無しさん
18/08/27 01:50:26.83 rO/r14zS.net
>>364
2つ目のフォルダって、最下層から二つ目って意味じゃないかな?
Sub hoge()
Const sample1 = "c;\aaa\bbb\ccc.xls"
Const sample2 = "c;\aaa\AAAAAAA\cccaaaa.txt"
Dim s() As String
s = Split(sample1, "\")
Debug.Print s(UBound(s, 1) - 1)
s = Split(sample2, "\")
Debug.Print s(UBound(s, 1) - 1)
End Sub
386:デフォルトの名無しさん
18/08/27 02:12:40.91 ba8BcfX3.net
>>357
PS で、カレントフォルダ以下を再帰的に、すべての .txt を取得する。
まずcd で、作業フォルダへ移動してから、実行して
$files = ( ls . -Recurse -Filter *.txt )
$files | % { echo $_ }
$files | % { echo $_.fullname }
上は、パス無しのファイル名のみで、下は、フルパス付きのファイル名になる。
ファイル名だけよりも、フルパスにした方が無難
% -> ForEach-Object の、alias だから、以下みたいにも書ける
foreach ( $file in $files ) { echo $file.fullname }
387:デフォルトの名無しさん
18/08/27 06:05:46.61 S3tfItDu.net
>>372
スレチ
388:デフォルトの名無しさん
18/08/27 07:17:40.62 M7z4l4oi.net
一晩(実質2日だが)待ったがドーナツ先生はまだ>>79を解けないのか?
389:デフォルトの名無しさん
18/08/27 07:26:14.29 wSgDz8cK.net
>>374
もはや解いたも同然と言っても過言ではない
390:デフォルトの名無しさん
18/08/27 07:27:36.94 wSgDz8cK.net
>>374
あの、ところでテーブルレイアウトってどういう意味でしょうか?
391:デフォルトの名無しさん
18/08/27 07:28:16.57 wSgDz8cK.net
テーブルレイアウトがこの問題の一番重要なところですよね
392:デフォルトの名無しさん
18/08/27 07:31:29.58 kP3VgsYY.net
元々が「イミディエイトウィンドウで」なので
Excelブックのシートに展開することを指しているんだろうとエスパー
393:デフォルトの名無しさん
18/08/27 07:36:38.4
394:9 ID:wSgDz8cK.net
395:デフォルトの名無しさん
18/08/27 07:37:03.43 wSgDz8cK.net
謎はすべて解けた
396:デフォルトの名無しさん
18/08/27 08:14:42.64 e5NQDqcO.net
そもそも、MS謹製じゃない誰かの作ったライブラリ使って1行で書いて自慢するというんじゃね・・・
それって>>263や>>275の書いたコードを呼び出す1行のコードでも良いってこと?
397:デフォルトの名無しさん
18/08/27 08:32:26.99 LISH444j.net
それはそうやな
398:デフォルトの名無しさん
18/08/27 08:46:14.15 k1/VmCLx.net
MS謹製のドーナツはあるんですか?
399:デフォルトの名無しさん
18/08/27 08:53:07.17 e5NQDqcO.net
>>383
無理矢理こじつけて面白いとでも思ってる?
先のコードを見れば、MSのdllしか使ってないのはすぐ分かると思うのだが。
つまり、無理矢理なのは明らか。
それともそんなことも分からない程スキルが無いのかな?
400:デフォルトの名無しさん
18/08/27 08:55:19.67 LISH444j.net
ドーナツは見事だわ
なかなか出来るもんじゃない
401:デフォルトの名無しさん
18/08/27 08:56:02.93 k1/VmCLx.net
>>384
お前が>>263のコードすら読めてないってのはわかった
402:デフォルトの名無しさん
18/08/27 09:05:04.70 e5NQDqcO.net
>>386
???
先のコードって>>263のコードのことだとでも思ってる?
何で>>263のコードがここで出てくるのか分からん。
403:デフォルトの名無しさん
18/08/27 09:47:37.36 G+Xbl5zq.net
標準でいろんな機能が備わってるか、という基準でならVBAのボロ負け
ってことは皆さん承知でいいんだよね?
404:デフォルトの名無しさん
18/08/27 09:50:03.33 LISH444j.net
そらそやろ
飛行機は空を飛ぶってことに合意とってるようなもんや
405:デフォルトの名無しさん
18/08/27 09:56:12.27 LISH444j.net
喫煙所でタバコは体に悪いよねと合意取るようなもんや
酒、タバコ、VBA
406:デフォルトの名無しさん
18/08/27 09:56:24.26 rSRJsKit.net
>>387
レベルが低いとそんなこともわからないのかw
407:デフォルトの名無しさん
18/08/27 09:57:32.34 QDRZk8kI.net
>>388
それ、 VBAが勝てる言語ってあるのか?
408:デフォルトの名無しさん
18/08/27 10:16:22.11 LISH444j.net
VBAが一番かわいいだろうが
409:デフォルトの名無しさん
18/08/27 10:17:51.89 LISH444j.net
ケンタッキーフライドチキンで鶏肉が不味いと言ってるようなもんだぞ
410:デフォルトの名無しさん
18/08/27 10:18:40.41 LISH444j.net
VBAのスレだぞここは
411:デフォルトの名無しさん
18/08/27 10:21:04.99 LISH444j.net
愛でよ愛せよ慈しめよ!
412:デフォルトの名無しさん
18/08/27 11:33:07.93 e5NQDqcO.net
>>391
何をどう勘違いしてるんだかw
413:デフォルトの名無しさん
18/08/27 11:40:35.85 WsFyAGZ6.net
>>395
VBAは他所でスレ立ててやれ
414:デフォルトの名無しさん
18/08/27 11:56:56.87 LISH444j.net
>>398
あ、はい
415:デフォルトの名無しさん
18/08/27 12:13:16.68 6WD1A1gz.net
>>309
>俺が思うに.netが使えれば、もっと完成度が高く高機能なものを
>簡単に作ることが出来るはずだ。
>なんでこういうのを比較に出さないのかということだ。
ここを読むと技術力の低さが露呈していることがハッキリする
ドーナツアプリを見たがこの程度ではこれを.NETでやっても大きく差はつかない
せいぜい、運が良ければAPIじゃなくてマネージドな部品が用意されてるかもね、程度
>>79はみごとだ
標準のコレクションやライブラリの貧弱さ
ラムダ式の未サポートなどモダンな言語機能の欠如など
VBAの弱点をしっかり捉えた題材と言える
実際に勇気あるVBAerがコードを晒したがPSで書いた時とは全く異なる長ったらしい読みにくいコードだった
題材が的確だから結果にも大きな差がついた
オマケにVBAとは違って強力なライブラリや言語機能を備えたRubyがPSと同じく短くエレガントなコードになったことがこの事実をさらに後押ししている
416:デフォルトの名無しさん
18/08/27 12:22:32.82 UYbrAfc/.net
>>400
最後にテーブルにするというExcelに寄り添いつつも実用性のある操作を加えることで
決してVBAだけに不利な条件にもしないと
417:いう隙の無さもポイント高い (ところでPSのやつ最後テーブルになってるようには見えないんじゃが...)
418:デフォルトの名無しさん
18/08/27 12:22:46.12 LISH444j.net
ルビーは実行環境インスコせなあかんし
池沼シェルはモジュールをインターネッツから
インスコせなあかん、それがネックやな
419:デフォルトの名無しさん
18/08/27 12:23:29.37 KEOzq+7V.net
ドーナツはどこからインスコできますか?
420:デフォルトの名無しさん
18/08/27 12:24:47.83 LISH444j.net
>>401
そこに気づくとは
パワシェルは要件を満たしてないオナヌーコードに成り下がってる
簡単さにこだわる余り目的を見失ってる
421:デフォルトの名無しさん
18/08/27 12:25:12.04 LISH444j.net
>>403
VBAからや
422:デフォルトの名無しさん
18/08/27 12:29:16.75 LISH444j.net
要件を満たして正確に動作すること
これが第一、その上で簡単に書けたら良いよねが来る
簡単に書けました、ただし要件は満たしませんでは駄目なのさ
423:デフォルトの名無しさん
18/08/27 13:30:20.91 osQmxFgv.net
>>401
と思ったけど-Nowオプション付けるとテーブル(というかフィルター?)になるのか
早とちりだった
-TableNameでテーブルになるのかな?
424:デフォルトの名無しさん
18/08/27 13:34:04.87 LISH444j.net
わしもそう思ってた
425:デフォルトの名無しさん
18/08/27 18:38:58.42 e5NQDqcO.net
>>400
はあ、どうしてケチをつける割に人の話を聞かない奴ばかりなんだ?
あれをそのままで.netの方が良いなんて言って無いんだよ。
426:デフォルトの名無しさん
18/08/27 18:42:32.83 gPVC/qB6.net
特大ブーメラン
427:デフォルトの名無しさん
18/08/27 18:54:44.25 e5NQDqcO.net
分かりやすいのは他言語のコードを見ても全く、使おうとは思わない点だ。
VBAで何の問題も無いとしか思えない。
所詮、そんなコードだということ。
428:デフォルトの名無しさん
18/08/27 19:01:40.79 gPVC/qB6.net
その点ドーナツは凄いよな
俺も今やってる仕事でVBAでドーナツ使いたいわ
そんな魅力がドーナツのコードにはある
429:デフォルトの名無しさん
18/08/27 19:18:00.13 e5NQDqcO.net
>>412
話が読めないバカが混じってるな。
日本語が弱いのかな?