Excel VBA 質問スレ Part56

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


※前スレ
Excel VBA 質問スレ Part55
http://mevius.5ch.net/test/read.cgi/tech/1532236398/l50
128デフォルトの名無しさん
垢版 |
2018/08/25(土) 20:42:30.57ID:KMExyDFm
できました

Files = ReadCsvFiles("*.csv")
Data = ReadCalcPower(Files)
Sort Data, "desc"
ExportExcel Data
2018/08/25(土) 20:44:48.11ID:t7aLMQyu
>>127
例えば隣に座ってるおじさんが呼吸してなかったら驚くし声をかけるだろう?
ねえねえVBAくんさっきから息してないけど大丈夫?生きてる?
まあだいたいそういう感じ
2018/08/25(土) 20:49:05.28ID:Nh0ThV6Y
powershellは凄いぞ!ワンライナーで何でも掛ける!
って言ってる奴が出てきた時はまともなpowershellユーザーがちょっと可愛そうではあった
2018/08/25(土) 20:50:11.46ID:RyVjXt1l
>>128
Subも書けよww
132デフォルトの名無しさん
垢版 |
2018/08/25(土) 20:51:53.55ID:KMExyDFm
>>131
PowerShellと粒度を揃えましてん
133デフォルトの名無しさん
垢版 |
2018/08/25(土) 20:52:42.36ID:KMExyDFm
VBAの書き方がわからないおじさんに教えてあげましてん
134デフォルトの名無しさん
垢版 |
2018/08/25(土) 20:57:11.08ID:zQ0fIRr+
>>130
まともなパワーシェルユーザーなんか居らんわwバカかとんでもないバカだけやw
2018/08/25(土) 20:57:11.62ID:t7aLMQyu
>>128
素晴らしい
ReadCsvFiles、ReadCalcPower、Sortの実装が見えないけどバグかな?
2018/08/25(土) 20:58:25.40ID:t7aLMQyu
誰とは言わないけど負け犬敵前逃亡兵がきゃんきゃん吠えとるのw
137デフォルトの名無しさん
垢版 |
2018/08/25(土) 21:01:55.54ID:KMExyDFm
>>135
バグではないよVBAではこのように抽象化することで
コードをわかりやすく書くの
PowerShellでもExcelExportがどうなってるかは見えないよね
それと一緒
2018/08/25(土) 21:07:45.78ID:RyVjXt1l
検証できないから意味がない >>90は誰でも検証可能
2018/08/25(土) 21:10:25.06ID:3sYR2W/i
今までそーっとしといたけどVBAにソートないんだよね
140デフォルトの名無しさん
垢版 |
2018/08/25(土) 21:13:56.58ID:KMExyDFm
>>138
検証してやるから全部のソース出してよ
Export-Excelもそう、Sort-Objectもそう、それらのソースコードを
提出していただこうか、粒度を合わせるんだよ
141デフォルトの名無しさん
垢版 |
2018/08/25(土) 21:14:46.00ID:KMExyDFm
>>139
ソートはないよ、自分で作るなりネットから拾ってくるなりで
142デフォルトの名無しさん
垢版 |
2018/08/25(土) 21:15:13.16ID:KMExyDFm
粒度の違うものを比較しても仕方がない
2018/08/25(土) 21:24:30.80ID:bGX52BVk
>>137
いやいや抽象化は構わないけど
中身がないとバグだよ

はいソース
https://github.com/PowerShell/PowerShell
https://github.com/dfinke/ImportExcel
キミは誠実な人だから惨めに言い訳して逃げないでVBAで実装してくれるよね
2018/08/25(土) 21:26:10.63ID:ZKioV505
ここ来るとVBAのおかげで飯が食えてる俺は先が無いなって思わされる
145デフォルトの名無しさん
垢版 |
2018/08/25(土) 21:30:20.04ID:KMExyDFm
>>143
長すぎて読む気にならない
無駄なものを貼るな
2018/08/25(土) 21:38:17.09ID:bGX52BVk
>>145
あれれーキミも言い訳して逃げちゃう人だったんだ
147デフォルトの名無しさん
垢版 |
2018/08/25(土) 21:49:32.83ID:KMExyDFm
>>146
僕は一切言い訳をしないし逃げることもない
ずっとここにいる、君はなぜここに居る
148デフォルトの名無しさん
垢版 |
2018/08/25(土) 21:49:50.30ID:KMExyDFm
なぜPowerShellのソースコードを貼る
2018/08/25(土) 21:54:36.91ID:t7aLMQyu
>>147
>>137
150デフォルトの名無しさん
垢版 |
2018/08/25(土) 21:58:36.58ID:KMExyDFm
>>149
僕が言ってることには完全に筋が通っている
粒度を合わせることによってVBAとPowerShellの比較を可能にして
VBAのコーディング方法をPowerShellユーザに伝授した
もっと丁寧なお礼をいただいても良いと改めて読み返してそう思った
2018/08/25(土) 22:18:30.20ID:t7aLMQyu
>>150
えーつまりVBAのコーディング作法では
未定義の関数を呼び出してエラーが出るのを眺めるのが正義、ということですか
流石vbaerは言うことが一味違いますね
152デフォルトの名無しさん
垢版 |
2018/08/25(土) 22:19:12.23ID:KMExyDFm
>>151
誰もそんなこと言ってないですね
あなた誰ですか?
2018/08/25(土) 22:22:37.73ID:t7aLMQyu
というかことの起こりは

>>79

このレスだぞ
このレス自体はPowerShellとは無関係な純粋なVBAの質問だろ?

そのあとでPowerShellだとどうやるのと聞き返されたから答えたまで

ということで純粋なVBAの質問である>>79への解答を待ってます
VBAでは実現不可能でしたら解答しなくても結構です
154デフォルトの名無しさん
垢版 |
2018/08/25(土) 22:24:42.27ID:KMExyDFm
>>153
VBAで実現可能です
純粋なVBAの最終解答をお示しします

Files = ReadCsvFiles("*.csv")
Data = ReadCalcPower(Files)
Sort Data, "desc"
ExportExcel Data
2018/08/25(土) 22:29:22.06ID:t7aLMQyu
>>154
動きませんでした
嘘をつかれては困ります
156デフォルトの名無しさん
垢版 |
2018/08/25(土) 22:29:54.81ID:KMExyDFm
ワークシートの名前を変更するにはどうしますか?

VBAでどうやるのか聞き返されたら答えるまでですけど
PowerShellではどうやるのか教えてください
157デフォルトの名無しさん
垢版 |
2018/08/25(土) 22:30:42.72ID:KMExyDFm
>>155
だったらPowerShellのプログラムも僕の環境ではピクリともしません
それを嘘つきというならPowerShellの方が嘘つきです
158デフォルトの名無しさん
垢版 |
2018/08/25(土) 22:31:13.63ID:KMExyDFm
>>156
に答えてください
2018/08/25(土) 22:38:12.10ID:t7aLMQyu
>>156
$app = New-Object -ComObject Excel.Application
$book = $app.Workbooks.Open($targetFilePath)
$book.Worksheets($targetSheetIndex).Name = "NewName"
$book.Close($true)
$app.Quit()

こちらは答えましたよ
あなたもはぐらかさないで真面目に>>79に答えてください
160デフォルトの名無しさん
垢版 |
2018/08/25(土) 22:41:51.71ID:KMExyDFm
>>159
VBAではこうです
ActiveSheet.Name = "合計"
ワンライナーで一撃です

>>79に答えます
VBAではこう書きます
Files = ReadCsvFiles("*.csv")
Data = ReadCalcPower(Files)
Sort Data, "desc"
ExportExcel Data
2018/08/25(土) 22:45:42.55ID:t7aLMQyu
>>160
あなたのコードには致命的な欠陥があります
対象とするブックを手作業で開かなければならなりません
これでは自動化を検討する程度の数のブックを相手にした時に間違いなく腱鞘炎になってしまいます

>>79への解答は不適切です
このコードには未定義の関数・サブルーチンが含まれているため動作しません
関数・サブルーチン化するならその実装も解答に含めて下さい
2018/08/25(土) 22:46:32.76ID:Jrsn7acQ
確かに、なんでもワンライナーで出来るかのような表現を使うよね、Powershellユーザー。

多分、そうは書いてない、思い込みだろうってレス着くと思うけど。
163デフォルトの名無しさん
垢版 |
2018/08/25(土) 22:51:17.33ID:KMExyDFm
PowerShellとCOMってGCの方式が違いますよね
一方は世代別GC、一方は参照カウント
GC方式の違うものを混ぜるとメモリリークしますよ
>>159はメモリリークしますよ
2018/08/25(土) 22:51:56.89ID:Jrsn7acQ
>>159のソースはそのままで動くの?
2018/08/25(土) 22:52:25.25ID:t7aLMQyu
>>162
あなたの主張はデタラメです
パワーシェルはワンライナーであらゆる処理を書けるほど表現力が高く、基本ライブラリが充実していることは確かに事実ですが
だからと言ってなんでもワンライナーで書くわけではありません
パワーシェルのユーザーは
1つのコマンドで1つの仕事を上手くこなす
コマンドを組み合わせて大きな複雑な仕事をこなす
というシェルプログラミングの良い習慣をもちろん知っています
論より証拠ということで>>143のリンクをみてください
2018/08/25(土) 22:53:00.08ID:t7aLMQyu
>>163
しませんよ
リークするなら証拠を提示してMicrosoftに報告してください
167デフォルトの名無しさん
垢版 |
2018/08/25(土) 22:53:11.40ID:KMExyDFm
>>161
いま開いてるExcelのシート名変えるってことなら問題ないですよね
じゃあそれで、むしろそれで

現在開いてるExcelのシート名をPowerShellで変えるにはどうしますか?
2018/08/25(土) 22:53:42.68ID:r5O9PJUC
>>99 > 呼吸することを自慢する人間はいない

>>129 > 例えば隣に座ってるおじさんが呼吸してなかったら驚くし声をかけるだろう?

こんな脈絡のないことを言い出してて驚くわ
まあ気味悪いから対面してたら放置するけど w
169デフォルトの名無しさん
垢版 |
2018/08/25(土) 22:55:26.08ID:KMExyDFm
>>166
マイクロソフトも認識してます
だから.NETにはReleaseComObjectという
COMのためのメソッドが用意されてます
あなたのコードにはメモリリークのバグが存在します、僕はあなたにそれを報告します
2018/08/25(土) 22:59:43.30ID:t7aLMQyu
>>167
[Runtime.Interopservices.Marshal]::GetActiveObject('Excel.Application').ActiveSheet.Name = "NewName"

逆に聞きますが、エクセルが起動していない時に、指定のブックの指定のシートの名前を変えるVBAコードは、どうやって書けばいいのですか?
171デフォルトの名無しさん
垢版 |
2018/08/25(土) 23:01:55.95ID:KMExyDFm
>>170
まずExcelを起動します
開発のボタンを押してマクロエディタを起動します
そしてワンライナーの一撃コードを実行します
これがVBAの正規の手順です
172デフォルトの名無しさん
垢版 |
2018/08/25(土) 23:03:45.08ID:KMExyDFm
[Runtime.Interopservices.Marshal]::GetActiveObject('Excel.Application').ActiveSheet.Name

これ暗記してるん? すごい
173デフォルトの名無しさん
垢版 |
2018/08/25(土) 23:04:21.09ID:KMExyDFm
メモリリークしてますけど
2018/08/25(土) 23:04:53.64ID:3sYR2W/i
便乗で聞きたいんだけど
powershellでVBAの定数はそのまま使えるの?定数をCOMか何かからロードしたりするの?
あと名前付き引数とかどう処理するの?
2018/08/25(土) 23:05:39.78ID:t7aLMQyu
>>169
ReleaseComObjectは速やかに参照カウントを減らすためのものです
それを実行しなくてもGCやプロセス終了時にリソースが解放され参照カウントも適切に処理されるので安心してください

明示的にReleaseComObjectを呼ばなければリークする、などという危険な状態を主力商品の1つである.NET上で放置するほどMicrosoftは怠惰ではありません
2018/08/25(土) 23:06:53.30ID:Jrsn7acQ
>>169
思った通りのレスですねw
2018/08/25(土) 23:07:44.56ID:t7aLMQyu
>>171
それでは手間が多すぎます
おそらく手作業でシート名をクリックして名前を入力する方が早いでしょう
2018/08/25(土) 23:09:52.00ID:t7aLMQyu
>>173
証拠の提示をお願いします
メモリリークの場合最低でも次の3つは欲しいですね

再現性のあるメモリリークを起こすコード
メモリを測定するコード
あなたの環境で測定したデータを分析したレポート
179デフォルトの名無しさん
垢版 |
2018/08/25(土) 23:10:23.46ID:KMExyDFm
>>175
参照カウントじゃないから参照なくなってもGCが動くことが保証されないですよ
プロセスがすぐ終了するかも仕様次第ですし、博打プログラミングですよ

GCの方式が違うからこれは技術的にどうしようもないんですよ
怠惰ではないです、むしろマイクロソフトは頑張ってる方ですよ
実装者の知識と努力に期待せざるを得ないのは宿命です
180デフォルトの名無しさん
垢版 |
2018/08/25(土) 23:12:21.64ID:KMExyDFm
>>177
こう考えてください、VBAを書くときExcelは起動してるんです
マクロエディタも起動してるんです、手間なんて何もありません
手作業では大変なことを行おうとしてるさなかのシート名変更ということですね
181デフォルトの名無しさん
垢版 |
2018/08/25(土) 23:14:42.41ID:KMExyDFm
>>178
GC方式が違う、それが証拠です
PowerShellにデストラクタが存在しないことが
GC方式が違うことの証拠です
GC方式とソースコードからメモリリークは明らかです
明らかなものに調査はそれ以上の調査は必要ありません
2018/08/25(土) 23:14:59.37ID:t7aLMQyu
>>179
すぐには回収されないだけとリークするの間には深い溝があります
遅くともある時点までには解放されることがわかっているわけですから、博打でもなんでもありません
.NETにはそれをコントロールする術も用意されています
183デフォルトの名無しさん
垢版 |
2018/08/25(土) 23:17:12.93ID:KMExyDFm
>>182
コントロール術が用意されてるならそれを使ってコードを書いてくださいよ
解放されることはわかりませんよ、.NETでGCが行われることは保証されません
.NETにはデストラクタがないでしょう? それが証拠です
2018/08/25(土) 23:19:11.39ID:t7aLMQyu
>>180
いいえ
残念ですが起動していないことの方が多いでしょう
もし起動していたとしてもシート名を直接変える方がマシです
2018/08/25(土) 23:20:33.06ID:7hA7VMUm
excelのマクロの効率的な書き方について相談できるサイトってどこかにある?仕事の話なのでこういうところに公開することはできないので…
2018/08/25(土) 23:22:33.22ID:t7aLMQyu
>>181
支離滅裂で全く明らかではありません
GCでインスタンスが回収されると自動的に参照カウントが適切に処理されます
したがって何もせずともリークは起こりません
回収が少し遅れるだけです
2018/08/25(土) 23:24:33.26ID:Jrsn7acQ
>>184
Excel VBAを実行するのにExcelファイルが開いてない??
支離滅裂ですね。
2018/08/25(土) 23:25:30.09ID:t7aLMQyu
>>183
[GC]::Collect()

CLRではデストラクタではなくファイナライザがサポートされています
ご安心ください
189デフォルトの名無しさん
垢版 |
2018/08/25(土) 23:25:42.27ID:KMExyDFm
>>185
マイクロソフトのフォーラムとかどうだろ

Technet フォーラム
https://social.technet.microsoft.com/Forums/ja-jp/home
190デフォルトの名無しさん
垢版 |
2018/08/25(土) 23:26:47.14ID:KMExyDFm
>>188
ドトネトーは世代別GCなので1回実行しても回収される保証はないですよ
2018/08/25(土) 23:29:32.44ID:t7aLMQyu
>>187
あるブックのあるシート名を変えたいと思った時にエクセルが都合よく開いているとは限りません
192デフォルトの名無しさん
垢版 |
2018/08/25(土) 23:31:35.44ID:KMExyDFm
>>188

Object.Finalize メソッド (System)
https://msdn.microsoft.com/ja-jp/library/system.object.finalize(v=vs.110).aspx

| ガベージ コレクションは非決定的であるため、ガベージ コレクターが終了処理を実行すると正確にわかっていません。
| リソースを解放する、すぐにこともできますを実装する、 dispose パターンとIDisposableインターフェイスです。

マイクロソフトも半分支離滅裂ですがファイナライザの使用が非推奨なことが読み取れます
IDisposableインターフェースが用意されてるくらいです
2018/08/25(土) 23:33:01.95ID:t7aLMQyu
>>190
引数なしのCollectはすべてのジェネレーションのガベージコレクションを直ちに強制実行します
194デフォルトの名無しさん
垢版 |
2018/08/25(土) 23:34:23.56ID:KMExyDFm
>>193
勉強になります
2018/08/25(土) 23:35:38.63ID:Jrsn7acQ
>>191
Excel VBAを実行するのだからExcel ファイルは開いてますよ。
指定のファイルが開いてないってことを言いたいの?
その場合の処理はあなたのPower shellのコードと大差ないけど。
196デフォルトの名無しさん
垢版 |
2018/08/25(土) 23:35:49.52ID:KMExyDFm
でもそれを呼ぶ前に全部のメモリ参照をなくす必要があります
それってできますか? PowerShellの変数スコープは変態ですから
事実上不可能です
2018/08/25(土) 23:40:52.15ID:t7aLMQyu
>>192
MSDNの翻訳が酷いことは有名なのでそれは我慢しましょう

リソース解放の時期をコントロールしたいなら決定的なIDisposableを使ってください
決定的でなくても問題がないならIDisposableに頼る必要はありません

スクリプトの利用形態から考えるとプロセスの寿命は非常に短くなります
これはエクセルインスタンスが本当に必要なくなった瞬間とプロセスの終了が時間的にほとんど離れることがないということです
このような場合では決定的な解放にこだわらなくても問題にはなりません
2018/08/25(土) 23:45:22.40ID:t7aLMQyu
>>195
私の書いたコードでは指定のブックを開く必要がありません
199デフォルトの名無しさん
垢版 |
2018/08/25(土) 23:47:08.86ID:KMExyDFm
>>197
そうとも限らないと思います
スクリプトを使うということは手作業での作業が煩わしく
それを効率化したいという欲求があるためです
スクリプトを書くとき、その時は常に手作業を躊躇する程の事態が発生している
状況と考えるべきで、ある処理がメモリを使んで離さなくて別の処理が
完了できないという経験を僕は山ほど経験してきました
メモリ管理を甘く見ると痛い目を見ます痛い目を見ます
200デフォルトの名無しさん
垢版 |
2018/08/25(土) 23:47:54.93ID:0r5h6/lL
パワー系池沼シェル
201デフォルトの名無しさん
垢版 |
2018/08/25(土) 23:52:33.06ID:KMExyDFm
>>198
パワーシェルのスクリプトを作成して
コマンドプロンプトを起動して
コマンドを入力する必要があるじゃないですか

その時間使ってExcelを起動しましょう
VBAなら一撃です
2018/08/25(土) 23:54:08.14ID:t7aLMQyu
>>196
処理を適切に構造化して変数のスコープを無闇に伸ばさなければ、自然と不要な変数の参照は辿れなくなります

そして先ほども書いたようにスクリプトはプロセス全体の寿命も短くなりやすいので
変数のスコープはそれほど問題にはなりません

どうしても変数をクリアしたいならClear-Variableというコマンドレットがあります
個人的に使う機会がないコマンドレットですがスコープとワイルドカードを指定してまとめて変数を消去でるそうです
2018/08/25(土) 23:55:26.38ID:Jrsn7acQ
>>198
>>156
$app = New-Object -ComObject Excel.Application
$book = $app.Workbooks.Open($targetFilePath)
$book.Worksheets($targetSheetIndex).Name = "NewName"
$book.Close($true)
$app.Quit()

ファイル開いてるけど、頭おかしいの?
2018/08/26(日) 00:02:52.04ID:MAEGr9r4
>>199
シビアなリソース管理が必要ならその時に適切なコードを書けばいいでしょう
なにもすべてのスクリプトを怠惰に書けと強制しているわけではないのですから
ですがほとんどの日常作業でそこまでシビアなリソース管理が要求されることはありません
それとリソースの不足は非決定的なリソース解放よりも非効率的なアルゴリズムが原因で発生することが多いということは知っておいた方がいいでしょう
2018/08/26(日) 00:05:13.99ID:MAEGr9r4
>>201
あなたの書いたコードは名前を変えたいと思うたびにブックを開かなければなりません
シェルを1度起動してパラメータを変えるだけとは訳が違います
2018/08/26(日) 00:05:54.18ID:MAEGr9r4
>>203
開いているのはプログラムです
手作業で開くのとは全く意味合いが異なります
2018/08/26(日) 00:07:41.89ID:MAEGr9r4
というか話を戻しますが>>79への解答はまだですか?
どうやら関係ないPowerShellの質問を繰り返して話をそらして逃げようとしているようですが忘れていませんよ
208デフォルトの名無しさん
垢版 |
2018/08/26(日) 00:12:16.95ID:IHxJX3F+
>>207
失礼な、僕は逃げも隠れもしません
>>79に対する解答をお示しします、ご査収ください

Files = ReadCsvFiles("*.csv")
Data = ReadCalcPower(Files)
Sort Data, "desc"
ExportExcel Data
209デフォルトの名無しさん
垢版 |
2018/08/26(日) 00:18:26.74ID:IHxJX3F+
>>204
アルゴリズムが大事なのは知ってますが
スクリプトでExcelを操作するときには計算量を気にしなければ
いけないほどのアルゴリズムを使うことはありません

やることはせいぜいシートの名前を変えて
コピーして集計して並べるくらいでしょう

問題はリソースリークなんです、関数を作りまくって
GCを呼びまくりますか? 僕の目にはそれは狂気と映ります
210デフォルトの名無しさん
垢版 |
2018/08/26(日) 00:19:56.82ID:IHxJX3F+
>>205
VBAでブックを開きたくなりましたか? 教えましょう
Workbooks.Open "C:\Book1.xlsx"
一撃です

VBAは一撃です
2018/08/26(日) 01:39:01.53ID:LgI1E3BQ
プロセス終了で必ず開放するんだから必要ならそういうスクリプト書けばいいんじゃないの
powershellに限らずリーク問題を解決するためにプロセスサーバ的な構成にしたりするけど
2018/08/26(日) 01:45:08.66ID:L5No1MGJ
>>189
あ、想定してたのはフェイスtoフェイスで相談かメールで相談する形式なんだけれど、そういうのはやってないかなあ?
2018/08/26(日) 07:13:59.14ID:4dFHA/W/
>>206
えっとまさか、実行に必要なファイルを全部手で開かないといけないと思ってたの?

バカ丸出しですね。
2018/08/26(日) 07:57:33.17ID:w0D5YFHr
PowerShell から、Excel, IE とかは、別プロセスを起動するだけだろ?
シェルって、別プロセスを起動するものだろ?

GC のやり方の違いなんて、関係あるか?
215デフォルトの名無しさん
垢版 |
2018/08/26(日) 08:36:31.73ID:2yDRx5ys
VBAの質問です

指定フォルダを再帰的に検索してファイル名が*.csvにマッチするCSVファイルを列挙
各CSVからX列, Y列, Z列を読み取ってD := (X^2 + Y^2 + Z^2)^(1 / 2)を計算する
Dの大きい順に並び替えてX, Y, Z, Dを新規Excelブックに出力して
出力した全行をテーブルレイアウトに変更する

というプログラムを作りたいのですがどのように書けばいいでしょうか?
2018/08/26(日) 08:56:15.82ID:4dFHA/W/
>>215
Excelに出力するって内容を足したのかw
しかもワンライナーって条件を外したのねw
その内容をPower shellのワンライナーでどうやるんだろうねw
2018/08/26(日) 09:04:51.11ID:Kp4FoNKX
>>216
>>79 と同じだよ?足したのは「VBAの質問です」だけ
2018/08/26(日) 09:05:46.45ID:4dFHA/W/
>>217
ごめんなさい、見落としてました。
2018/08/26(日) 10:12:36.02ID:H+C43I2p
>>208
>Data = ReadCalcPower(Files)

ここだけは許さんw
220デフォルトの名無しさん
垢版 |
2018/08/26(日) 11:26:25.25ID:uHGK9EwR
頭の悪さを全力で競い合ってるスレがあると聞いて飛んできた
どれも最底辺レベルで甲乙つけがたいな
2018/08/26(日) 11:28:33.75ID:umld+6tZ
大昔何かの雑誌でBASICで一行ゲームとかネタでやってたのを思い出した

>>90 こんなの処理系にパイプ処理があるかないかだけの違いだろ
一行記述できるかどうかは、一行に記述できる最大文字数に加えて
パイプで記述できるか、一命令の区切り記号が設定してあるかくらいで決まる
区切り記号は、C系(C#)では;か}、昔のBASICでは:があったしLISPなんかは括弧で区切ればいくらでも書ける

ワンライナーなんて対話的に使う時に一々スクリプトを立ち上げたり面倒なので使うもの
可読性が悪くなるだけなのでプログラムで絶対に使うもんじゃない
昔のPCのメモリも少なかったのでそれなりに意味はあったんだけど捨てられた

今ではせいぜいネタ、言語のの優位性とは完全に無関係
222デフォルトの名無しさん
垢版 |
2018/08/26(日) 11:30:23.98ID:IHxJX3F+
Excelらしくやるならインポートが先かな
1. インポート_CSV
2. 追加_数式列
3. ソート_数式列
4. 変換_テーブルレイアウト
Excelのパワーをフル活用したいものだね
2018/08/26(日) 11:31:45.33ID:umld+6tZ
>>220 ほんこれ
2018/08/26(日) 11:35:30.27ID:MAEGr9r4
>>220
ここはVBAスレだぞ
225デフォルトの名無しさん
垢版 |
2018/08/26(日) 11:45:34.46ID:IHxJX3F+
>>212
僕らの田中さんにお仕事依頼してみるとか

Office TANAKA - お問い合わせ
http://officetanaka.net/mail/index.htm
2018/08/26(日) 11:49:13.32ID:MAEGr9r4
>>221
流れるようなインターフェースとかパイプラインを使ったワンライナーはモダンなプログラミングでは常識的なテクニックだよ
太古の時代から時が止まってるVBAのユーザーは知らないかもしれないけど
例えばc#のLinqやJavaのstreamなどはもろにパイプラインから影響を受けてるよね
VBAしか使わないのかもしれないけど少しは興味もって知識をアップデートしたら?
2018/08/26(日) 11:53:35.10ID:CIvHkKPl
>>226
VBAにそんなの必要無い
ただの事務員にStreamなんて理解できるわけないだろう
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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