X



Excel VBA 質問スレ Part53
レス数が1000を超えています。これ以上書き込みはできません。
0004デフォルトの名無しさん
垢版 |
2018/04/27(金) 20:37:12.23ID:5jKnhP1D
質問します


最近ティンコが痒いのですが
どうすれば良いですか
教えてくさい
0006デフォルトの名無しさん
垢版 |
2018/04/27(金) 21:14:15.97ID:rM2AyKG8
前スレでも教えていただいたコードを変えて

F1の値が5繰り上がるごとに、シート"納品書を"印刷するようにしたいのですが
F1が繰り上がらないです。
F1を繰り上げるにはどうしたらよいでしょうか


Sheets("名簿").Select
For i = Range("F1") To Range("F2") - 1 Step 5
Range("F1") = i
Sheets("納品書").Select
ActiveSheet.PrintOut
Next
End Sub
0008デフォルトの名無しさん
垢版 |
2018/04/27(金) 21:49:23.67
>>6
Sheets("名簿").Select
For i = Range("F1") To Range("F2") - 1 Step 5
Range("F1") = i
Sheets("納品書").Select
ActiveSheet.PrintOut
Sheets("名簿").Select
Next
End Sub

まあ下みたいにしたほうがプログラムっぽいかもしれないけど、まずは上の形でいいと思う

Dim wksList As Worksheet
Dim wksSlip As Worksheet
Dim rngF1 As Range

Set wksList = Sheets("名簿")
Set wksSlip = Sheets("納品書")
Set rngF1 = wksList.Range("F1")

For i = rngF1 To wksList.Range("F2") - 1 Step 5
rngF1 = i
wksSlip.PrintOut
Next
End Sub
0009デフォルトの名無しさん
垢版 |
2018/04/27(金) 22:09:27.05
>>6
で、結局仕様がよく分からないんだけど、
A8に1、A9に2、A10に3、A11に4、A12に5、A13に6、A14に7
という形で連続した行番号が入っているの?
空白セルがあったらその前の行が最終行とみなしていいの?
5行ずつの場合、A8(1)からA14(7)までのデータがあったら
印刷するのは3回で、1回目はF1に1を格納して印刷、
2回目はF1に6を格納して印刷、3回目はF1に11を格納して印刷ってことでいいの?
(最初は2行ずつで偶数と言ってたけど、どうやら5行に変わったみたいなので)
0010デフォルトの名無しさん
垢版 |
2018/04/28(土) 08:11:58.78ID:bL+b5Osr
この納品書出力アプリってまさに
・入出力とデータが分別できてない
・MVCを理解していない
の典型例だな
VBAerって本当にこういう酷いユーザーが多い
素人の事務員さんならまあ許すけど、本職がプログラマでもExcelになるとなぜかこういう酷いツールを作る人が出てくる
0011デフォルトの名無しさん
垢版 |
2018/04/28(土) 08:27:14.36ID:Ydf4b474
こんな基本もわからない奴に迂闊に教えると、そいつの会社へのテロに加担するようなもんだぞ
0012デフォルトの名無しさん
垢版 |
2018/04/28(土) 08:40:20.51
糞みたいな構成のシートとVBAコードでも最終的にやりたいことができて
それまで手動で6時間かかってた作業が3時間で終わるようになったらええやん
その間PCで作業はできないから新聞読んだりダベったりしてればいいよね
ちゃんと作ったらバックグラウンドでPC作業を邪魔せず30分で終わるかもだけど
0013デフォルトの名無しさん
垢版 |
2018/04/28(土) 09:01:21.06ID:bL+b5Osr
使い捨てを含めて長期にわたりメンテナンスの必要性がない
運用中に入力のストレスが無い
レスポンスが許容できる
バグが無い

これだけ満たしてれば中身が悲惨でもいい
でも現実にそんなケースは殆ど無い
だから中身をクリーンで改良しやすい状態に保たなければならない
0014デフォルトの名無しさん
垢版 |
2018/04/28(土) 09:07:58.99
>>13
んなこたあない
無駄や欠点があってこそ雇用が生まれる
0015デフォルトの名無しさん
垢版 |
2018/04/28(土) 09:11:16.45ID:bL+b5Osr
>>14
なら全部手作業でやれば?
確かに雇用は増えるだろう
国際競走にはぼろ負けするけどな
0016デフォルトの名無しさん
垢版 |
2018/04/28(土) 09:14:13.80
>>15
1か0かの極論でしか物を考えられないんですね^^
0019デフォルトの名無しさん
垢版 |
2018/04/28(土) 10:32:10.98ID:8ncxUL6T
誘導無しのスレ立て直後に>>2をレスしてっから粘着に命かけてるよな
しかもMVCだの国際競争だのと意識高い系が好みそうなワード

そんで小うるさい割に「アプリ」の定義が正確じゃないんで
「なんかかっこいいから」っていうふざけた理由でSEになって心が折れたタイプで
かつて自分が言われてた事を内容を理解せずにそのまま吐き出してるとかなんじゃないの
0024sage
垢版 |
2018/04/28(土) 11:20:38.79ID:Gwyos15m
>>8
できました。ありがとうございました。
0025デフォルトの名無しさん
垢版 |
2018/04/28(土) 14:36:45.18ID:VMgQedNe
>>19
なかなかのプロファイリングスキルやなw
言っとっけどマジに褒めとるんやでw
0026デフォルトの名無しさん
垢版 |
2018/04/28(土) 15:00:33.62ID:9z8isRDe
>>21
ソフトウェアじゃない業界での国際競争って意味なら大いに関係あるし、VBAってそういう用途でしょ
0027デフォルトの名無しさん
垢版 |
2018/04/28(土) 15:08:42.01
>>26
国際競争やないで、国際競走やでw
0029デフォルトの名無しさん
垢版 |
2018/04/28(土) 15:58:28.39ID:hSIpEl6G
>>26
国際競争になりそうなところはシッカリしたソフト作らないとダメだと思うよ。
それをVBAでやろうとするのは流石にどうかしてる。VBAでできるのは人力でカバーできる範囲で楽になるかならないかってところだと思う。
国際競走では知らんけどw
0030デフォルトの名無しさん
垢版 |
2018/04/28(土) 16:39:30.81ID:9z8isRDe
>>29
ソフトウェアそのものの力の意味だったら仰る通り
ま、労働効率・生産性って意味の競争力ね
0031デフォルトの名無しさん
垢版 |
2018/04/28(土) 17:07:17.48ID:8ncxUL6T
RubyマンはMVCデザインパターン推しとアプリという言葉の使い方から、
クソみたいな人材が大量雇用されるWebアプリ業界の人間だと思うけど、
そこで言われる競争力だの効率だのってのは新人のケツ叩くためのものだから真に受けない方がいいぞ

ついでに言えば雨後の竹の子の様に生えてくるWebアプリ開発に追いつく為に開発効率が重視されるRubyだのPythonだのと、
社内で飽きるほどやった事務作業を決まった手順で再現可能にすりゃいいだけのVBAじゃ分野が全然違うしな
0033デフォルトの名無しさん
垢版 |
2018/04/28(土) 19:58:17.34ID:bL+b5Osr
>>31
業務作業のオートメーションが目的ってのはVBAとか関係ないわな
俺がメインで使ってるC#もJavaも同じWeb屋が使うRubyなんかも同じ

MVCがWeb屋の専売特許みたいな勘違いをしているのかもしれんがMVCはGUIアプリケーションを作る際の伝統と実績のあるパターンだよ
MVCはWebアプリでもデスクトップアプリでもスマホアプリでも通用するものだ
Excel VBAで作るようなアプリの多くはデスクトップGUIアプリに分類できるからMVCはExcel VBAでも恩恵を得られる
そしてそれは生産性を高めるだけではなくプログラムの見通しを良く設計をしやすく保守性を高める効果がある
誰だって同じものを作るなら早く綺麗に作りたいと思うだろう
VBAerは偏屈だからそうではないのかもしれないが……

分野が違うなどと言うがITの世界では色んな物や知識が繋がっているものなんだよ
VBAという狭い世界に閉じこもっているから気が付かないだけでね
VBAerはもっと積極的に色んな言語や環境に手を出して見聞を広めるべきだよ
0034デフォルトの名無しさん
垢版 |
2018/04/28(土) 20:31:10.11
やっぱりWeb屋だったか
自分で起業して一発当てれば大きいが
雇われエンジニアとしては最底辺の業界
0035デフォルトの名無しさん
垢版 |
2018/04/28(土) 22:42:41.40ID:6AYZ4JmZ
Excel VBAでGUIアプリねぇ
表計算のシートで正規化とか言い出すより失笑もんだな
0036デフォルトの名無しさん
垢版 |
2018/04/28(土) 23:09:17.56ID:hSIpEl6G
VBAユーザーの多くはプログラマじゃなくて事務屋だってのが理解できないんだな。
MVCだの設計だのって本職じゃない人がどこまでやるってんだろう。
プログラミングは手段であって目的じゃないんだよ。
偏屈なweb屋には理解できないだろうけどw
0037デフォルトの名無しさん
垢版 |
2018/04/29(日) 00:14:51.00ID:hAJLRgtx
エクセルエンジニアは、プログラマーじゃない普通の社員。
プログラマーは、プログラミングができる専門家

出される問題が表計算なら、エクセルエンジニアでもできるけど、
出される問題がプログラミングなら、プログラマーじゃないと出来ない

出される問題によって、解決者や手法を変えないといけないが、
それをせずに、エクセルとエクセルエンジニアでやろうとするから無理

ループしたり、条件制御したり、解決すべき問題が、プログラミングになってる。
それが、エクセルとエクセルエンジニアの問題としては、おかしい
0038デフォルトの名無しさん
垢版 |
2018/04/29(日) 00:24:10.94ID:WGmi9FI0
>>37
そんな遠慮する必要はどこにもないぞ
普通の社員だろうがプログラマじゃなかろうが、
まともなプログラミングができて仕事に活用できるなら、
それは強みになるってだけだ。
0039デフォルトの名無しさん
垢版 |
2018/04/29(日) 00:42:13.25ID:uTtrmgKE
>>36
だったらプログラム板から出ていくのが筋だろう
事務処理技術板なんてのがあるか知らんがそっち系の板を探してそっちでやれ
ここはあくまでプログラム専門の板だ
プログラムに関する専門的な話をするための板だ
事務員でしかないエクセルエンジニアの居場所じゃない
0041デフォルトの名無しさん
垢版 |
2018/04/29(日) 00:49:33.41ID:OxSnUJcm
>>39
本職のプログラマ以外はプログラムの話をしてはいけないのか?
えくVBAのスレでVBAは使えないと連呼する奴が出て行くのが筋だろうにw
0042デフォルトの名無しさん
垢版 |
2018/04/29(日) 08:14:17.07ID:WGmi9FI0
「ど素人が来るな」はまあわかるけど、さすがにプロが来る場所じゃないよね
0045デフォルトの名無しさん
垢版 |
2018/04/29(日) 10:54:52.98ID:uTtrmgKE
事務員専用とプログラマ専用とでスレを分ければいい
事務員専用VBAスレでは前スレの納品書みたいな話題を永遠に繰り返す
プログラマ専用VBAスレではより良いプラクティスや設計論、他ツールとの連携、代替、移行などもう少し高度な議論を扱う
お互いレベル差ありすぎて関わり合いたくないだろう
0046デフォルトの名無しさん
垢版 |
2018/04/29(日) 11:02:41.41ID:3LH0pXZd
現場の事務員がどんな酷いマクロを作ってるのか、プログラムをどんなアバウトな感覚でイメージして外注に出してるかをプロのVBAプログラマが知るにはうってつけの場所だと思うけどな、ここは
0047デフォルトの名無しさん
垢版 |
2018/04/29(日) 11:06:46.99ID:cmKSXaTU
>>45
んじゃPythonスレをプログラマ専用として活用してくれ
当然君はハイレベルだからPythonスレ行って、こっちのローレベルなスレには関わらないでくれるだろ?
0049デフォルトの名無しさん
垢版 |
2018/04/29(日) 11:10:12.32ID:hkCcAsD/
レベルが云々とかあまり関係なくね
ブラウザ自動化だの文字コード変換だのがExcelのやるべき仕事なのかって話で
0050デフォルトの名無しさん
垢版 |
2018/04/29(日) 11:19:57.15ID:cmKSXaTU
>>48
「関わり合いたくないだろう」とか言いながら、体裁よく追い出されそうになると焦るってなかなか可愛いな

一応答えておくと、Pythonスレが既にあって使われてないからだよ
あっちのスレなら外部連携の話したって支障ないだろうし、是非あっちの住人になってくれ
そしてこっちのスレを覗きさえしなければ君の望んだ環境になるだろ
0053デフォルトの名無しさん
垢版 |
2018/04/29(日) 11:45:11.32ID:OxSnUJcm
関わりたくないなら出ていけばいい、誰も拘束してないよ。
それにプログラマ専用VBAスレなんて過疎るの目に見えてる。
プロの現場でVBA使うって聞いたことないしな。
探せばあるのかもしれないけど。
0054デフォルトの名無しさん
垢版 |
2018/04/29(日) 11:51:31.41ID:c7H/x4nv
質問!
VBAって何のことですか?
全くわからないのでゼロから詳しく教えてください!
0055デフォルトの名無しさん
垢版 |
2018/04/29(日) 11:52:56.51ID:WGmi9FI0
プロは別格ってことで

プロがアドバイスくれるのはありがたいけど、
2chに来てドヤってるプロとかあまり想像したくはない
0056デフォルトの名無しさん
垢版 |
2018/04/29(日) 12:18:58.04
やっぱり俺の中じゃVBAとかRubyとかPythonとかって
本職の事務員やらプログラマやらテスターやらが
片手間に触るものというイメージしかないから
VBAのプロの話はぜひ聞きたいなあ
0058デフォルトの名無しさん
垢版 |
2018/04/29(日) 14:24:38.72ID:hAJLRgtx
MVC みたいに、データと表示を分離して、
TDD とか、ソフトウェア工学に基づいて作っていれば良いけど

エクセルエンジニアも、ソフトを作っている者とみなせば、
ソフトウェア工学やテスティング手法を学ぶ必要がある

基本は、データと表示を分離して、テスト可能にしないといけない。
依存性注入・dependency injection (DI)
0063デフォルトの名無しさん
垢版 |
2018/04/29(日) 18:42:03.62ID:j8doNKq/
頑張って皮肉を書いているだろうけど
VBAが何なのかわからない奴 はこのスレまで辿り着けないと思うぞw
0064デフォルトの名無しさん
垢版 |
2018/04/30(月) 07:49:26.19ID:a6pyjgPW
搭載の意味知らんだけやんかwプロさんw
0065デフォルトの名無しさん
垢版 |
2018/04/30(月) 12:11:01.74ID:7cXegnu0
>>10
コードを見ればすぐにHelloWorldに毛がはえたレベルとわかる。
それに対して本職だの言ってるお前のレベルもお里が知れるぞ。
0066デフォルトの名無しさん
垢版 |
2018/04/30(月) 12:12:31.44ID:7cXegnu0
>>13
アホ。
1回動かして終わりな場合も沢山あるんだよ。
VBAの場合は。
もちろんそうじゃない場合も沢山あるがな。
0068デフォルトの名無しさん
垢版 |
2018/04/30(月) 12:20:41.54ID:7cXegnu0
VBAは単にExcel、Access上で都合が良いから使ってるだけで、何かより上とか下とか、そういうもんじゃない。
Excel上で作業してる時に別の言語の話を持ち出されても困るんだよ。

Excel上にある表を加工する場合の方法なんて沢山あるが、Excel上で作業してる時に一番しっくりくるのはVBAなんだよ。
0069デフォルトの名無しさん
垢版 |
2018/04/30(月) 13:26:37.51ID:EYWg1Al3
インタラクティブかつ使い捨ての処理ってシェルやその他のスクリプト言語の得意分野だからexcelではやらんなぁ
excelが優位性を発揮する場面って表形式のデータを入力・編集する時ぐらいだろう
まあその場合でもVBAは使わんけど
0070デフォルトの名無しさん
垢版 |
2018/04/30(月) 14:44:17.61ID:0wPoBdag
エクセルに関するちょっとしたことをさせるために、実行環境を整えさせる手間を考えると、
VBAを使う以外の選択肢はないよ。

保存時にファイルのバックアップをリビジョンとして残すとか、VBA以外のなにでやれと
0072デフォルトの名無しさん
垢版 |
2018/04/30(月) 14:48:25.80ID:EYWg1Al3
もっとも気軽に用意できる環境ってpowershellだと思うぞ
メニューからpowershell開くだけ
0074デフォルトの名無しさん
垢版 |
2018/04/30(月) 15:15:09.06ID:2gOeUPtD
Excel自体を操作する場合はPowerShellやpython
VBAを使うのはユーザー定義関数を作るときぐらい
こんな感じで使い分けするようになった
0075デフォルトの名無しさん
垢版 |
2018/04/30(月) 15:45:16.72ID:ppsFRTOd
高性能よりもお手軽さを優先するのが一般人なんだよね
俺もそうなんだけど
0078デフォルトの名無しさん
垢版 |
2018/04/30(月) 16:01:34.63
PowerShellってバージョンをかなり気にしなきゃいけなくて面倒なんだよね

Windows8.1/10で動くコードがWindows 7で動かなかったり

Excelのバージョンさえ気にしてればいいVBAが楽チン
0080デフォルトの名無しさん
垢版 |
2018/04/30(月) 16:10:13.77ID:JIBHQrev
ワシの事を「世間知らずの糞プログラマーが!!!」って言って言葉攻めしてくさい



それで逝きますのでな(´・ω・`)b
0081デフォルトの名無しさん
垢版 |
2018/04/30(月) 16:16:47.94ID:9DOSDrcb
ハード設計屋のオレがVBA使う理由は
職場の他の社員がそれくらいまでしか理解できないからだな

数万から数百万行のデータ使う時はVBAでは遅すぎるので
awkか面倒のはC#使うが、それだと後で自分しか使い回し出来ない
他の奴はテキストを小分けしてエクセル関数駆使してるわ
0083デフォルトの名無しさん
垢版 |
2018/04/30(月) 16:23:02.64ID:9DOSDrcb
ちなみに本職のプログラマーに依頼すると
出来上がるのが数週間から数ヶ月掛かる、工数見積もり云々
今日、明日に結果が必要なのに
0086デフォルトの名無しさん
垢版 |
2018/04/30(月) 16:26:20.77
>>83
それな
このスレにも出没しているが、そういうプロ(笑)は費用対効果という言葉を知らない
0087デフォルトの名無しさん
垢版 |
2018/04/30(月) 16:31:09.30ID:JIBHQrev
今中華料理やにいるんだけど
「餃子とpawar sell くれ」って言ったら
殺されたぞ

(´・ω・`)b
0089デフォルトの名無しさん
垢版 |
2018/04/30(月) 16:44:31.62ID:2gOeUPtD
結局の所自分が使える、今まで使ってきたツールが一番使いやすいし最高だって話でしょ
そしてそれ以外のツールは時間がないのかスキルが無いのか食わず嫌い
0090デフォルトの名無しさん
垢版 |
2018/04/30(月) 16:48:17.42ID:EYWg1Al3
VBAというかエクセルのタチの悪いところは他人に強制させられることだな
これさえなければ非効率でもやりたい奴の好きにしてくれと言えるんだが
0091デフォルトの名無しさん
垢版 |
2018/04/30(月) 16:56:40.82ID:+6yJ25bv
事務仕事でよくありがちなアプリって、
対象フォルダ2〜3個、対象ファイルを5〜6個並べた領域と、マクロボタン一個みたいな
パターンが多いだろ。
あとはSQL文書くところとかID・パスワード入力エリアとか。
そういう設定を保存しておくのにエクセルブック一つで十分。ていうか最適解だと思う。
0094デフォルトの名無しさん
垢版 |
2018/04/30(月) 17:51:12.06ID:dZa8Dw2V
>>92
そのテキストファイルとアプリの関連をどう可視化するの?
0096デフォルトの名無しさん
垢版 |
2018/04/30(月) 18:02:19.23ID:dZa8Dw2V
>>95
「このアプリのこの設定を変えるにはこのテキストファイルのここをこう変えればいい」
をユーザーにどう明示できるか
0097デフォルトの名無しさん
垢版 |
2018/04/30(月) 18:15:18.00ID:EYWg1Al3
>>96
そのまんまじゃん
「この設定ファイルのこの項目をこう変えればいい」

つうかユーザーに納品するようなものVBAなんかで作らねえっての何度も言ってるよねぇ
0098デフォルトの名無しさん
垢版 |
2018/04/30(月) 18:22:11.85ID:vxB4xISW
こんにちは
お助けください。

\5,000

といったテキストを、

5000

と数字だけにしたいのですが、

Replace(hoge, "\", "")

とやっても置換されません。

やり方後教示お願いします。
0100デフォルトの名無しさん
垢版 |
2018/04/30(月) 18:25:44.02ID:dZa8Dw2V
>>97
「納品」なんて言葉が出てくること自体
スレ違いって何度も指摘されているよね?
0101デフォルトの名無しさん
垢版 |
2018/04/30(月) 18:26:48.62ID:vxB4xISW
>>99
コメントありがとうございます。
ファイル等から配列に読み込んだデータなので、
データシートには移していないのです。
0102デフォルトの名無しさん
垢版 |
2018/04/30(月) 18:29:28.12ID:dZa8Dw2V
>>101
イミディエイトウィンドウ上で
?CInt("\5,000"), CDbl("\5,000")
とやると
5000 5000
て表示されるけど、これでいいの?
0105デフォルトの名無しさん
垢版 |
2018/04/30(月) 18:42:13.56ID:gX+uTXPX
どんだけ力説して見ても具体例が出てこなきゃ無視されるだけ
そのユーザーに納品した実例を(タイトルやラベルとかは黒塗りでいいから)見せてみ
(そんなものがあるなら) 
まさか全編コマンドラインで手打ちじゃあるまい?
ユーザーが操作するGUI環境整えるには WPF とかってじゃないだろな?
で、それを設計するのに Visual Studio だとかってんじゃないだろな?

DOSベースのPCがWindows仕様にして飛躍的にシェア伸ばしたように
いかに人口に膾炙するか が肝要 ってトコを見逃すんなら、なんでも言えるし書ける
0107デフォルトの名無しさん
垢版 |
2018/04/30(月) 18:47:53.44ID:4eo3LVsx
>>97
なんども書かれてるのはプロはVBAなんて使わないってこと。
使ってるのはあなたの言うユーザー。
分かりやすい具体例は事務職など。
納品先など無いのだよ。
0108デフォルトの名無しさん
垢版 |
2018/04/30(月) 18:55:09.17ID:9DOSDrcb
>>88
そんなのデータの規模ではなくて、扱うデータの種類によると思う
自分のはpythonの数学ライブラリとかRで扱うようなデータが多いから
0109デフォルトの名無しさん
垢版 |
2018/04/30(月) 19:06:15.98ID:dZa8Dw2V
>>106
Structured Query Language の略だから言語の意味だけど?
クエリー言語とプログラミング言語を一緒にしてどうするの?
0111デフォルトの名無しさん
垢版 |
2018/04/30(月) 19:33:45.09ID:VNEaK4nF
なんやもうプロさんしかおらんなこのスレw
0112デフォルトの名無しさん
垢版 |
2018/04/30(月) 19:51:26.10ID:yTyfNq6A
>>109
> クエリー言語とプログラミング言語を一緒にしてどうするの?
一緒だろ?
SQL使ったことないのか?
0113デフォルトの名無しさん
垢版 |
2018/04/30(月) 20:12:45.83ID:EYWg1Al3
>>105
あーホンマもんの素人さんなんだ
開発情報なんてそう簡単に社外に持ち出せんのよ常識でわかるっしょ?
0114デフォルトの名無しさん
垢版 |
2018/04/30(月) 20:54:24.18ID:gX+uTXPX
>>113
逃げんなよ 具体例出してみ っつってんの 自社例出さんでもいいから
おれも WPF なんて今日初めて知ったレベルだ

https://cdn-ak.f.st-hatena.com/images/fotolife/I/Itsukara/20170402/20170402211150.png
https://cdn-ak.f.st-hatena.com/images/fotolife/I/Itsukara/20170402/20170402211402.png

http://itsukara.hateblo.jp/entry/2017/04/02/213525 ここの例だけどな
コマンドラインなのかGUIで片付けるのがぐらいも答えられんのか
それを納品してんだろ? 客ウケはどうなんだ? 大好評かどうかぐらい末端でも教えてもらえるだろ
もっと違うGUIあるなら、そおゆう情報流してこそだろ 
でなきゃ単なる陰湿な嫌がらせや間抜けな戯言に過ぎんぞ
0115デフォルトの名無しさん
垢版 |
2018/04/30(月) 20:57:57.37ID:dZa8Dw2V
>>112
さっぱり意味がわかりませんな。

VBAが遅い言語でもクエリで使うSQLはその影響を受けない。
なにが一緒だというんだ?「一緒」ってなんだよ?
0116デフォルトの名無しさん
垢版 |
2018/04/30(月) 21:14:37.26ID:EYWg1Al3
>>114
なんかアホみたいな勘違いしねえか?
客に出すものはVBAもPowerShellも使わねえよ
常識で考えてわかると思うけどね
最近はほとんどC#とJavaでUIはブラウザが多い

PowerShellを使うのは個人用のツールな
こっちは9割以上CUIでGUIが欲しい時はFormsやWPFを使う
0117デフォルトの名無しさん
垢版 |
2018/04/30(月) 21:39:28.70ID:URWX118v
客に出すものっていうか、元々Excelで納品って仕事も有るけどな。

というかExcel操作するのにPythonとか言ってる奴とは仕事したくないな。
Excelファイル出力とかならわかるけど。

dll作ってExcelから呼び出すことも有るけど、そういうのって苦肉の策なんだね。
本来ならExcel上で完結すべきだろ。
それがExcel上では出来ないとか、その処理においてはスピードがどうにも遅くて仕方なくやるもんで、積極的にやるもんじゃない。

じゃあ、どうしてもVBAでは出来ないとかどうしても遅いとか言ってる奴が本当に分かってて言ってるかと言えば、単にそいつのスキルが低いだけという場合も結構ある。
0118デフォルトの名無しさん
垢版 |
2018/04/30(月) 21:46:53.02ID:yTyfNq6A
>>115
頭大丈夫か?
>>81から読み直せよ
でかいデータの時にawk やC#を使う話にお前がSQLとか言い出してる
C#とSQLってプログラム言語のくくりだと同じだぞ
0119デフォルトの名無しさん
垢版 |
2018/04/30(月) 21:48:43.79ID:URWX118v
>>116
PowerShellだってGUIのプログラム書けると思うけど。
まあ、それはかっこ悪いか。
なぜC#があるのにPowerShellを使うのか?ということになるからな。

でも開発環境入れられる仕事ばかりじゃ無いから苦肉の策でPowerShellってのも有りかも知れない。

結局、その場に合った物を使うということだろ。
0120デフォルトの名無しさん
垢版 |
2018/04/30(月) 21:53:49.94ID:dZa8Dw2V
>>118
でかいデータをawkやC#で直接扱うわけじゃないだろ?
でかいデータは「プログラミング言語」じゃなくて「クエリ言語」であるSQLで扱うんだろ?
ってのが>>88の意図だ。
それに対して「そうじゃない」という反論は出ていない。だからその線で話しているわけだが?
0121デフォルトの名無しさん
垢版 |
2018/04/30(月) 21:54:14.99ID:URWX118v
>>118
デカイデータの時にawkとかC#ってのがよく分からんな。
そのデータってのがExcelとどう関係するんだ?

Excelで扱うデータでシートに入れるようなものならExcelの方が良いだろ。
0123デフォルトの名無しさん
垢版 |
2018/04/30(月) 22:34:21.00ID:yTyfNq6A
>>120
> でかいデータをawkやC#で直接扱うわけじゃないだろ?
それは>>81に聞いてくれ

> でかいデータは「プログラミング言語」じゃなくて「クエリ言語」であるSQLで扱うんだろ?
クエリ言語ってプログラム言語の一種だよ...
いろいろ思い込みが激しすぎるんじゃね?
0124デフォルトの名無しさん
垢版 |
2018/04/30(月) 22:38:03.61ID:6VH5WEVh
adodbStreamを使って、jisコード(ISO-2022-JP)で書かれたテキストファイルを読み込んで色々するマクロを作っています
対象のテキストは1行120バイトのレコードが何行も含まれるという体裁になっているファイルです
このファイルを入力ファイルに指定したところ、なぜか3行目のみ最初の12バイト分が読み込まれません
レコードの内容を変えて何度か試してみたのですが、決まって3行目のみ行頭の12バイトが抜け落ちてしまいます
adodbを使う際に何か必要なことがあるのでしょうか?
0125デフォルトの名無しさん
垢版 |
2018/04/30(月) 22:38:58.58ID:yTyfNq6A
>>121
> デカイデータの時にawkとかC#ってのがよく分からんな。
それは>>81に聞いてくれ

> Excelで扱うデータでシートに入れるようなものならExcelの方が良いだろ。
処理内容によるとしか言えない
0127デフォルトの名無しさん
垢版 |
2018/04/30(月) 22:46:03.65ID:dZa8Dw2V
>>123
>クエリ言語ってプログラム言語の一種だよ...

かなり違うと思うよ。
「違う」というのは、プログラミング言語の選択とクエリ言語の選択が直交している
という意味で言っている。
0128デフォルトの名無しさん
垢版 |
2018/04/30(月) 22:50:53.98ID:dZa8Dw2V
>>124
>レコードの内容を変えて何度か試してみたのですが

じゃあ例えば1行目の内容と全く同じものを10行繰り返しても
3行目だけおかしいの?
0129デフォルトの名無しさん
垢版 |
2018/04/30(月) 22:54:51.03ID:URWX118v
>>125
そう。
処理内容によるのに、しかもExcel内の作業ならVBAの方が有利なことも多いのに、どうしてなんでもかんでもかたくなに否定するのか分からん。

そういう頭の堅い奴は、最適なものを選ぶというセンスが無いんだろうな。

PowerShellとか言ってる奴も意味分からん。
Excel.Application使ってるならVBA使ってるということだと思うんだがなあ。
0130デフォルトの名無しさん
垢版 |
2018/04/30(月) 22:57:06.73ID:yTyfNq6A
>>127
それ君の思い込みでしょ
VBAからC++で書いたdllにデータ処理させるのと、VBAからSQL発行してDBMSにデータ処理させるのと何が違うと言うんだ?
0131デフォルトの名無しさん
垢版 |
2018/04/30(月) 23:02:27.95ID:yTyfNq6A
>>129
> 処理内容によるのに、しかもExcel内の作業ならVBAの方が有利なことも多いのに、どうしてなんでもかんでもかたくなに否定するのか分からん。
簡単に使えると言うこと以外でVBAが有利な点なんてたいしてない
規模が大きくなるほど短所が目立ってくるし

> そういう頭の堅い奴は、最適なものを選ぶというセンスが無いんだろうな。
ブーメラン刺さってるぞ w

> Excel.Application使ってるならVBA使ってるということだと思うんだがなあ。
さすがにその認識には同意できない
ExcelのCOMがVBAで書かれてる訳じゃないし
0133デフォルトの名無しさん
垢版 |
2018/04/30(月) 23:06:52.92ID:swT07kN/
VBAは使えないって人はこのスレ自体を全否定してるわけだから、もう来なければいいのに
0134デフォルトの名無しさん
垢版 |
2018/04/30(月) 23:28:47.25ID:dZa8Dw2V
>>130
同じだよね
だからプログラム言語についてはどれを選ぼうとも、
クエリー性能は大して変わらんだろと>>88の段階から
言ってるじゃないか???
0135デフォルトの名無しさん
垢版 |
2018/04/30(月) 23:42:40.97ID:URWX118v
>>131
>>132
もしかして本当に頭悪いの?
Excelのオブジェクトを扱うのに最適というのが最大の有利な点だろ。
Excelのファイル単体でという制限をかけるだけで他の言語全滅じゃねーか。

秀丸の機能を拡張するのに秀マクロが有利な点は無いと言ってるようなもんだ。
0136デフォルトの名無しさん
垢版 |
2018/04/30(月) 23:43:43.66ID:79M9OXD4
>>128
あー
全く同じのレコードでは試してないですね
最初の12バイトが欠落するので、最初の12バイトは1-4行目まで同じ内容にしてみたんですが、それでも3行目のみ欠落しました

もうGW入ってしまったのでサンプル引っさげての質問はまた来週にお願いすることにします
0137デフォルトの名無しさん
垢版 |
2018/05/01(火) 00:03:13.05ID:n2aDkIog
>>135
オブジェクト指向も半端にしかサポートしてないVBのクソ文法で最適とはちょっとな

データとプログラムは混ぜないで欲しいからVBAは無しでって言われたらVBA終わりじゃん
そういうバカバカしい制限を仮定する意味はないな
そもそも個人利用だから制限する理由もない

秀丸なんかマクロ組んでも大したことねえ
そんなのやめてもっと生産性高いエコシステム使おうぜって話な
0138デフォルトの名無しさん
垢版 |
2018/05/01(火) 01:11:15.38ID:vrT8pQgC
>>135
Excelのオブジェクト触るのはCOM使える言語ならできるので
ワークブックにマクロとして埋め込む必要のあるVBAが最適とは言えない
内輪のツールならともかく、他所向けにマクロ入りワークブック渡したら普通気持ち悪がられる
少なくとも俺は他人が作ったマクロ入りワークブックは気持ち悪いと思っている
0139デフォルトの名無しさん
垢版 |
2018/05/01(火) 01:39:29.59ID:Jo6zEwE8
マクロブックで気持ち悪いなら、どこの馬の骨が作ったとも分からない自作プログラムの方がよっぽど気持ち悪いだろw
0140デフォルトの名無しさん
垢版 |
2018/05/01(火) 05:26:46.36ID:jueZ4+qW
お前が気持ち悪かろうがどうだろうが知ったことか
普通の人間はそれで自分の仕事ができりゃ文句ないんだよ
0141デフォルトの名無しさん
垢版 |
2018/05/01(火) 05:45:01.42ID:Bc26VZi4
>>134
> だからプログラム言語についてはどれを選ぼうとも、
> クエリー性能は大して変わらんだろ
えっ?
C++で書いたコードとSQLの性能が同じってどこから言えるんだ?
俺が同じって言ってるのはVBAから呼び出すサブルーチンとしては(記述する言語が違うだけで)機能としては同じと言ってるだけで性能の話なんてしてない
0142デフォルトの名無しさん
垢版 |
2018/05/01(火) 05:57:03.28ID:Bc26VZi4
>>135
> Excelのオブジェクトを扱うのに最適というのが最大の有利な点だろ。
だから処理内容によってはそれを上回るデメリットが目立ってくるって話
さすがにVBAは設計も古いし言語としては最もいい言語とは言えない
あと>>137も書いてるけどデータとプログラムコードが一体になってるのは便利だけど例えば社内に配布してるExcelファイルのコードだけ修正したい時に面倒なことになる
0143デフォルトの名無しさん
垢版 |
2018/05/01(火) 06:16:57.61
>>142
わざわざ*.basファイルや*.frmファイルだけエクスポートしてバージョン管理したり
各部署の担当者がVBAコードだけマージしたり一応運用できてはいるけど面倒だね
0145デフォルトの名無しさん
垢版 |
2018/05/01(火) 06:45:51.96ID:wEM4Z1OO
VBAが使えない、他のが良いってならそろそろそのもっと便利な言語のスレに移動してくれよ。
荒らしでしかねーよ。
0146デフォルトの名無しさん
垢版 |
2018/05/01(火) 06:52:48.09ID:Jo6zEwE8
本気で別の言語がいいと思ってるわけじゃなくて、
構ってくる相手が居なくて寂しいからウザ絡みしてきてるだけだから何言っても無駄
0147デフォルトの名無しさん
垢版 |
2018/05/01(火) 07:25:38.90ID:pz418p4m
>>143
バージョン管理は面倒とは言えこっちでやる話だからまだいいけど利用者にコード部分を更新させるのが大変
>>135はそういう経験が無さすぎ
0150デフォルトの名無しさん
垢版 |
2018/05/01(火) 13:57:43.74ID:qtX5HV4u
>>137
データとブログラムは分離したいのでワークシートに業務データは置かないでね。

となるべきでは?
0151デフォルトの名無しさん
垢版 |
2018/05/01(火) 13:57:53.11ID:LR2WXBGb
VBAでまともに開発できなかったから、VBAをけなすしかないかわいそうなアホがいるな
システム設計能力もプログラム設計能力も足りてないし
趣味でやってるんじゃないなら転職した方が良いよ
0152デフォルトの名無しさん
垢版 |
2018/05/01(火) 14:21:11.05ID:n2aDkIog
平凡なプログラマの仕事から考えるとVBAではまともに開発できないってのは事実だね
スキルが足りないとかそんなバカバカしい理由じゃなく
VBAというプラットフォームが貧弱すぎて並の業務システムとしての利用に耐えられない
VBAでまともに開発できると思ってる人は本人が考えるよりもかなり小規模なシステムしか組んだことがないんだろう
0153デフォルトの名無しさん
垢版 |
2018/05/01(火) 14:33:30.91ID:qtX5HV4u
仕事で使う != 業務システム

という前提なんじゃないかな、このスレのみんなは
0154デフォルトの名無しさん
垢版 |
2018/05/01(火) 14:36:33.47ID:pz418p4m
>>151
ソフトウェアだから開発できるできないの話になればそりゃできるよ
ただもっとモダンな言語なら簡単にできることを長々とコーディングしたりいろいろ面倒ってこと
要するにできない奴がいると思ってるお前の見識が無さすぎるだけ
0155デフォルトの名無しさん
垢版 |
2018/05/01(火) 14:56:57.02ID:Jo6zEwE8
VBAで長々とコーディングしなければならず、かつ他の言語でも達成可能な事を書くって前提が既にアホが極まってる
VBAでやる事はVBAで短くサクッと書ける事に限定されるに決まってんだろw
0157デフォルトの名無しさん
垢版 |
2018/05/01(火) 15:05:45.90ID:pz418p4m
>>155
> VBAでやる事はVBAで短くサクッと書ける事
だからそれ以上の場合はどうするんだって話
知らないなら黙ってなよ
0158デフォルトの名無しさん
垢版 |
2018/05/01(火) 15:12:53.07ID:cSjrPdPw
元来Excel VBAでやってた自動化作業は全部rubyでやるようになったんだけど
ユーザー定義関数だけは移行できないからpythonには期待している
0159デフォルトの名無しさん
垢版 |
2018/05/01(火) 15:15:40.26ID:Jo6zEwE8
>>157
それ以上の事をする人間がVBAしか扱えないわけないだろ
お前は本当に何も知らないんだなぁ
0161デフォルトの名無しさん
垢版 |
2018/05/01(火) 15:23:39.78ID:Jo6zEwE8
>>160
お前が「それ以上の時はどうするんだよ」って言ったんだろ、それも覚えてられないのか
まぁお前って無能そうだもんなw 仕方ないかw
0162デフォルトの名無しさん
垢版 |
2018/05/01(火) 15:35:06.14ID:pz418p4m
アホだこいつ w
処理内容と環境とお前の実力で使う言語決めればいいだけだろ
なんでもかんでもVBAが最適じゃないって話
VBAしか使えない奴のことなんて知ったこっちゃないしな
0163デフォルトの名無しさん
垢版 |
2018/05/01(火) 15:42:29.57ID:Jo6zEwE8
如何なる状況においてもVBAが最適なんて話は誰もしてねぇだろw
エクセルでやりたい処理をサクッと作れるのがVBAって何度も言われてるだろ、覚えてらんねぇんだなw
まぁ適切なスレすら選べずVBAスレで見当違いの無駄な話をずっとしてるヤツらしいっちゃらしいけどさぁ
0167デフォルトの名無しさん
垢版 |
2018/05/01(火) 16:14:03.63ID:qtX5HV4u
ほとんどの状況でVBAが最適である(キリッ
ただし業務データはOracleやSQLServerにある環境で。
0168デフォルトの名無しさん
垢版 |
2018/05/01(火) 16:17:47.89ID:Jo6zEwE8
>>166
「VBAでめちゃくちゃ長いコーディングするかも!」ってバカみたいな想定して、
VBAスレにずっと粘着してるヤツがなんか言ってるw
まぁお前って覚えるの苦手だから自分が矛盾している事にも気がつけないんだよな
0169デフォルトの名無しさん
垢版 |
2018/05/01(火) 16:24:00.82ID:pz418p4m
>>168
> 「VBAでめちゃくちゃ長いコーディングするかも!」ってバカみたいな想定して、
バカは仮定の元に議論すると言うことすら理解できないらしい w
0172デフォルトの名無しさん
垢版 |
2018/05/01(火) 16:57:12.26ID:Jo6zEwE8
>>171
お前たぶん分かりやすく説明する為の例え話を聞かされたせいで「背理法」を勘違いしてるぞw
0174デフォルトの名無しさん
垢版 |
2018/05/01(火) 17:20:43.73ID:Jo6zEwE8
お前はこれまでもこれからも、そうやってずっとバカを晒し続けていくんだろうなw
0179デフォルトの名無しさん
垢版 |
2018/05/01(火) 18:01:11.51ID:cSjrPdPw
>>177
自分用の定型処理とか書捨てマクロとか

他人に使ってもらうようなのはもっぱらJScriptだな
処理したいExcelだけ開いてこのファイルダブルクリックしてで説明が済むので
0180デフォルトの名無しさん
垢版 |
2018/05/01(火) 18:40:54.89ID:jueZ4+qW
このスレがだぁ〜って伸びてる時は、大概くっそくだらねぇ話で揉めてる時…と思って
見たらやっぱりそうだった w
0182デフォルトの名無しさん
垢版 |
2018/05/01(火) 18:56:05.66ID:qtX5HV4u
オレオレライブラリが充実してくればVBAでも十分最適解に近づくさ
どう最適かというと、「あまりコードを書く必要がなくなる」ってとこかな
0183デフォルトの名無しさん
垢版 |
2018/05/01(火) 19:23:54.19ID:oyZWZ8lH
プロさんんの熱弁中にさしでがましいようですが元々マクロ言語はあまりコードを書く必要がないんですよねw
でもまあ書きますよねコードwなんせプロさんですからねwww
0184デフォルトの名無しさん
垢版 |
2018/05/01(火) 19:32:52.10ID:n2aDkIog
そう
コード記述量少ないほうが良い
なので同じことをやるのに冗長な記述が必要なVBAは残念
0185デフォルトの名無しさん
垢版 |
2018/05/01(火) 19:52:38.83ID:oyZWZ8lH
>>184
またまたぁwマクロ言語なのに冗長な記述が必要になるわけないじゃないですかぁw
プロさんのくせに謙遜しちゃってwww
0186デフォルトの名無しさん
垢版 |
2018/05/01(火) 20:44:13.71ID:meZaITri
数レスでさっくり要約できない奴に何書かれてもな 成果が推し量れるってもんだ
おれが客や上司ならこういうのには頼まねえわ タダでも断る   ところで
Excel VBA 「質問」スレ で何したいんだ?
0187デフォルトの名無しさん
垢版 |
2018/05/01(火) 21:08:03.62ID:y31WNwcJ
さあ?

質問が少なくて下らん話題しかないように見えても、
誰に強制されているわけじゃない。需要と供給の結果だ。
現にオレはこういう流れが好きだけど?
0188デフォルトの名無しさん
垢版 |
2018/05/01(火) 21:34:48.85ID:zzZAzy9g
なんか、本当に頭が悪いんだな。
勝手に人をVBAしか触らないかのように認定してくるし。

全て逆。
その時に合ったのを使えば良いと言ってる。
VBAがどんな場合でも良いなんて最初から言ってない。
ブック単体で済むんだから、別途ファイルを必要とする他言語より有利なんだよ。
Excel上ではな。
でもExcel上でも場合によっては他言語を採用することも当然あり得る。
色んな場合がある。
それをお前らは何とかしてどんな場合でもVBAを否定しようとするからおかしくなる。

Excel.Application触ってもVBAじゃ無いならC++でdll作ってそれをVBAで使ったら、それは全てVBAってことか?

バカを相手にすると話が不毛だなw
0189デフォルトの名無しさん
垢版 |
2018/05/01(火) 22:00:11.35ID:QCFF/tmb
状況に合わせて適当な道具を選ぶだけなのに。
万能な道具なんてないんだからさ
0190デフォルトの名無しさん
垢版 |
2018/05/01(火) 22:03:41.92ID:y31WNwcJ
>>189
そんなスキルなんて、あるの?
俺にはないな。せいぜい2〜3の言語。
たいていそんなもんじゃないか?
0191デフォルトの名無しさん
垢版 |
2018/05/01(火) 22:25:23.37
んなこたあない
0192デフォルトの名無しさん
垢版 |
2018/05/01(火) 22:41:54.95ID:pz418p4m
>>190
言語はもうちょい使えるけどExcel使うのにVBA以外だとインストールの手間とかもあるからC++, C#, VBScript, JScript, PowerShell, SQL辺りかな
今更VBScript, JScriptでもないだろうからガッツリ組むならC++、お手軽にやるならPowerShellかな
データがでかいならSQL一択
C#は意外と面倒だからあまり使わない
0193デフォルトの名無しさん
垢版 |
2018/05/01(火) 22:58:35.04ID:y31WNwcJ
>>192
ガッツリ組むならC++ ← わかる
ガッツリ組まれたアプリでExcelが使われる ← わからない

Excel君はどういう役回りなんだ?
0197デフォルトの名無しさん
垢版 |
2018/05/01(火) 23:24:06.78ID:pz418p4m
>>195
開発者の手間と利用者の手間の区別もつかないの?
この板見てる奴なら説明しなくてもわかると思ったが想像以上にレベルの低い奴もいるんだな w
0199デフォルトの名無しさん
垢版 |
2018/05/01(火) 23:52:39.18ID:y31WNwcJ
>>196
入出力をExcelで ← わかる
自分の場合は積極的にExcelを入出力に使うけど

>>197
開発者の手間と利用者の手間の区別 ← わかる

>>192
データがでかいならSQL一択  ← わからない
この主張はおかしい
0200デフォルトの名無しさん
垢版 |
2018/05/02(水) 00:02:07.93ID:L9GyYkUx
powershellヲタ rubyヲタ

笑ってしまう
ここはVBAのスレだっての
0202デフォルトの名無しさん
垢版 |
2018/05/02(水) 00:14:18.27ID:HOwZM2hm
powershellでどういう入出力やるんだろうね
それとも入出力なしなのかな
0203デフォルトの名無しさん
垢版 |
2018/05/02(水) 04:56:26.19ID:3K4Hzh4Z
>>199
> データがでかいならSQL一択  ← わからない
別に君にわかってほしいわけじゃないから w
0204デフォルトの名無しさん
垢版 |
2018/05/02(水) 04:59:30.10ID:3K4Hzh4Z
>>202
意味がわからん
PowerShellにも入出力機能はあるしこのスレ的にはExcelを介してやればいいだけだし
0208デフォルトの名無しさん
垢版 |
2018/05/02(水) 09:38:35.78ID:L9GyYkUx
>>207
必死にpowershellに持っていきたいpowershellクソヲタ   ( ´,_ゝ`)プッ
0209デフォルトの名無しさん
垢版 |
2018/05/02(水) 09:52:05.42ID:8abGMC3I
かわいそうに煽ることしかできなくなったか
VBAの優位性を説くとか出来んの?
0211デフォルトの名無しさん
垢版 |
2018/05/02(水) 10:23:36.50ID:SduclJbS
>>207
>VBAの代替手段を考えるならVBAスレの範疇だろう

インテリセンスが効く環境をExcel以外何もインストールしなくても使える物ってなんか出た?
0212デフォルトの名無しさん
垢版 |
2018/05/02(水) 10:30:20.92ID:8abGMC3I
>>211
powershellのインテリセンスは強力だぞ
コード解析だけじゃなく属性やスクリプトでインテリセンスを拡張できる
ま、拡張しないデフォルトでも十分だけどな
0214デフォルトの名無しさん
垢版 |
2018/05/02(水) 10:47:32.19ID:2YeotSUG
インストールの手間問題って以下の認識でいるんだけど合ってる?

・ユーザー環境についてであり開発側は数や頻度が知れてるから問題ではない
・権限を要するインストールのことでありdllの配布とかは問題ではない
0215デフォルトの名無しさん
垢版 |
2018/05/02(水) 11:07:32.03
>>214
DLLだって一つあるのと無いのじゃサポートの手間が違うから無いにこしたことはないよな
0217デフォルトの名無しさん
垢版 |
2018/05/02(水) 11:53:04.55ID:2J5Gt0oH
そもそもVBAの代替手段を考えるのはVBAスレの範疇ではない
むしろちょっと前まで「VBAこそ至高、VBAのみがこの世の全て」という前提で、
仮にVBAにとって無茶ぶりでも、あくまでVBAとして答えるって形だったのに
0220デフォルトの名無しさん
垢版 |
2018/05/02(水) 12:35:16.88ID:SduclJbS
>>214
VBAはユーザーと開発者が同一の場合が多いだろ?
要は事務職とかが使いたいように使ってるだけ。
事務職のパソコンになんでも好きにインストールしてくださいって会社あるの?
0222デフォルトの名無しさん
垢版 |
2018/05/02(水) 14:23:37.82ID:2J5Gt0oH
中小企業だと管理がガバガバでWin10が勝手にアップデートされて起動しなくなったなんて話もあったからな
そういう所なら勝手にIDE入れて金の掛からない範囲で好き勝手出来て楽しそう
0223デフォルトの名無しさん
垢版 |
2018/05/02(水) 14:33:39.26
>>222
従業員xx万人レベルの大企業グループでもわりとガバガバなところはある
WSUSにつながらないときは各自Microsoftのサーバにつなげろとアナウンスされたりとか
0224デフォルトの名無しさん
垢版 |
2018/05/02(水) 14:56:25.07ID:2YeotSUG
>>220
事務員ってもVisual StudioやManagement Studioくらい部門に数人は申請して入れてるよ。
ただインストール権限まで持ってる訳じゃないから、ユーザー各人の環境はいじりづらい。
0226デフォルトの名無しさん
垢版 |
2018/05/02(水) 18:48:11.36ID:OevC1MDQ
またプロさんかw仕事中に遊んでんじゃねーよw
開発ごっことかお家に帰ってからやれよw
0228デフォルトの名無しさん
垢版 |
2018/05/02(水) 19:22:29.64ID:BhQrl7gl
>>226
>開発ごっことかお家に帰ってからやれよw

マジでそういう煽りやめろ。
0229デフォルトの名無しさん
垢版 |
2018/05/02(水) 19:33:26.41ID:OevC1MDQ
>>228
煽りてw苦言を呈しとるのだがプロさんには煽りに聞こえるかw
おまえらの開発ごっこなんか会社にとって百害あって一理なしやぞw
0230デフォルトの名無しさん
垢版 |
2018/05/02(水) 19:37:44.31
>>226
今日はたいていの大手は休みだよw
0231デフォルトの名無しさん
垢版 |
2018/05/02(水) 19:38:56.12ID:OevC1MDQ
>>230
おまえガチのバカやなw
0233デフォルトの名無しさん
垢版 |
2018/05/02(水) 19:47:40.06ID:OevC1MDQ
>>232
おまえの使い道はないけどなプロさんw
0234デフォルトの名無しさん
垢版 |
2018/05/02(水) 19:50:23.51ID:A9SfvTcd
自己使用のVBAなんて家に帰ってからやってくれ
仕事中は仕事しよ
0235デフォルトの名無しさん
垢版 |
2018/05/02(水) 19:56:06.47ID:OevC1MDQ
>>234
マクロ作ってる事務員のおねーさんは仕事やぞ
おまえのVBAは遊びやけどプロさんw
0238デフォルトの名無しさん
垢版 |
2018/05/02(水) 20:30:41.60ID:OevC1MDQ
>>237
あれがお遊びてプロさん仕事した事ないやろw
0239デフォルトの名無しさん
垢版 |
2018/05/02(水) 20:39:03.39ID:8abGMC3I
お遊びのことを仕事っていうならないねぇ
仕事中はオモチャで遊んでないで真面目に働くもんだろう
0240デフォルトの名無しさん
垢版 |
2018/05/02(水) 20:43:27.87ID:A9SfvTcd
VBAをゴチョゴチョ書いてるくらいで仕事してますって言われてもねぇー
そんな程度の事は家でサクッとやって仕事中に走らせれば充分でしょ
0241デフォルトの名無しさん
垢版 |
2018/05/02(水) 20:53:26.77ID:OevC1MDQ
>>239
はいはいつまり仕事した事ないんやろw
もっと端的なものの言い方覚えんと就職できんよプロさんw
0242デフォルトの名無しさん
垢版 |
2018/05/02(水) 20:54:40.22ID:OevC1MDQ
>>240
おっとプロさんwおままごとはお家の中だけにしてねw
会社にやっかい事は持ち込まんでねプロさんw
0243デフォルトの名無しさん
垢版 |
2018/05/02(水) 21:05:22.73ID:A9SfvTcd
プロさんwって何?
0244デフォルトの名無しさん
垢版 |
2018/05/02(水) 21:11:18.56ID:OevC1MDQ
>>243
そらおまえみたいなバカにされやすい人の事に決まっとるやろプロさんw
0247デフォルトの名無しさん
垢版 |
2018/05/02(水) 21:19:29.28ID:4Vsk9Yl1
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 2016

すみません 書き込んでしまいました。
Win10のIMEが変更されて、ON/OFF切り替え時にモニタ真ん中に[あ] [A] と
出るようになりました それはそれで便利なときもあるんですが
Excel使用中に限りそれを止めることは可能でしょうか。
OS上で止めるならIMEのプロパティで □ 表示する をOFFればいいのは
理解してます。 アプリの中だけで止める場合にVBAでできればと考えています。
0248デフォルトの名無しさん
垢版 |
2018/05/02(水) 21:23:25.86ID:A9SfvTcd
>>244
VBA使いごときにバカにされるとは、、、、
お前はプログラミングも出来ないのかって会社じゃ肩身狭い思いしてるんだろうから許してやろうじゃないか
0249デフォルトの名無しさん
垢版 |
2018/05/02(水) 22:48:03.66ID:UsKguLu7
昔、VBAは遅いとか言ってバカにしてた奴がいたんだが、そいつがCで書いたプログラムより俺の書いたVBAの方が速かったことがあった。

そいつにおまえのコ―ドはゴミだなって言ったらすごい顔で睨まれたな。
遅いと結論を出す前に速くなるよう努力したのか?と言ったら自分の非を認めてたが。

それに用途によるわけで、JAVAでも似たようなことが言われるわけだが、速度を求められる場合は適さないかもしれんが、そうじゃなければ大したデメリットにはならんわけ。
0256デフォルトの名無しさん
垢版 |
2018/05/03(木) 06:39:37.57ID:Vf3d827a
VBAしか使わせてもらえない環境の仕事場にいるとプログラミングのキャリアアップは絶望的
そんなクソみたいな所はサッサと逃げ出した方が人生上手く行くよ
エクセル(笑)以外は何のスキルもないからもう遅いか
チーン
0257デフォルトの名無しさん
垢版 |
2018/05/03(木) 07:27:45.67ID:ogoC5I/7
それぞれ用途やシュチュエーションによって
どの言語を使うとより便利かは変わるから
「こういうときは〜を使うと便利」というのは分かるけど
それを人に押し付けるのはちょっといかがなものかな。

EXCELの操作を行うのには通常VBAが一番便利だし
かゆいところに手が届かない場合は他の言語でdll作ってそれを参照して使えばいい訳だし。

EXCELはCOMとして他の言語で作ったアプリやシステムから操作出来るけど
COMだからメモリの解放がとんでもなく面倒だし
NPOIとか使ったところでその動作保証は誰もしてくれないしね。

それでもそういうのが必要なシュチュエーションであれば使わざるを得ないけどね。
0258デフォルトの名無しさん
垢版 |
2018/05/03(木) 07:59:15.17ID:ogoC5I/7
後、SQLがプログラミング言語かどうかという論議があったけど厳密に言えば違う。
VBAやVB、JAVA、C、C#、rubyなど一般的に言われているプログラミング言語は「手続き型」で、
それに比べてSQLは「宣言型」に分類されるので、
そもそものプログラムの意味である手順、手続き、計画等の意味合いから外れることになる。

とは言え一般的にはその辺引っくるめてプログラミング言語と呼ばれることが多いけどね。
0261デフォルトの名無しさん
垢版 |
2018/05/03(木) 08:45:12.23
SQLはチューリング完全
0262デフォルトの名無しさん
垢版 |
2018/05/03(木) 09:13:29.23ID:96XRan6U
>>258
SQLがプログラミング言語かどうか、なんて議論はなかったんじゃ?
>>192でVBA、C++、 C#、SQLを同列に並べたうえで
「データがでかいならSQL一択 」なんて主張があった。
VBAプログラムからSQLを使う、とかC++プログラムでSQLを使う、とかならわかる。
「SQL一択 」って何だよっていう。
0263デフォルトの名無しさん
垢版 |
2018/05/03(木) 10:01:18.15ID:ogoC5I/7
>>262
なるほど、俺の勘違いか。それはすまんかった。

SQL一択というのがもし他の言語から呼び出して
使うものであったとしてもちょっと賛同しかねるわ。

理由はVBAスレからかけ離れる話になるんで詳しいことは言わないけど
ビッグデータであれDBの内容を書き換えるのにSQLが一番有効とは限らないってこったね。
0264デフォルトの名無しさん
垢版 |
2018/05/03(木) 10:09:23.08ID:aADwc621
今日もプロさん元気やなw
0265デフォルトの名無しさん
垢版 |
2018/05/03(木) 10:30:29.52ID:ygisZEFQ
>>257
>EXCELの操作を行うのには通常VBAが一番便利だし
VBAの言語機能がレガシーすぎてとてもじゃないが便利とは言えんな
ラムダすら無い言語って今時珍しいぞ

>かゆいところに手が届かない場合は他の言語でdll作ってそれを参照して使えばいい訳だし。
めんどくさすぎ

>EXCELはCOMとして他の言語で作ったアプリやシステムから操作出来るけど
>COMだからメモリの解放がとんでもなく面倒だし
要所を押さえときゃGCで十分だよ
クリティカルなシステムじゃなく使い捨てなら余計にな

>NPOIとか使ったところでその動作保証は誰もしてくれないしね。
何使ったってテストは必須
テストは誰もしてくれないじゃなくて自分でするものだ
テストされてないアプリとかほとんどテロだからな
VBAはテストしにくいぞ
0266デフォルトの名無しさん
垢版 |
2018/05/03(木) 10:31:49.93ID:jhccfXfd
>>263
> ビッグデータであれDBの内容を書き換えるのにSQLが一番有効とは限らないってこったね。
他の選択肢ってなに?
0267デフォルトの名無しさん
垢版 |
2018/05/03(木) 10:44:41.52ID:ogoC5I/7
>>265
>要所を押さえときゃGCで十分だよ

ガベージコレクションは現在使用されていると認識されているObjectに対して
いくら走らせても無意味だよ。
0268デフォルトの名無しさん
垢版 |
2018/05/03(木) 10:52:55.07ID:ogoC5I/7
>>266
例えば可読性から言ったらEntityFreamworkや
Hibernateを使ったORマッパーを使う方法

例えばSqlServerであれば
処理速度から言えばDataTableの内容を
一行一行インサートしないでBulk Copyを使う方法

とか
0269デフォルトの名無しさん
垢版 |
2018/05/03(木) 10:53:33.60ID:Vf3d827a
>>267
じゃあ閉じれば?
0271デフォルトの名無しさん
垢版 |
2018/05/03(木) 10:58:48.24ID:ogoC5I/7
>>269
その発想は実際使ったことない人から出る発想だね。
実際にはセル一つ操作するにもその上の階層にある
全てのインスタンスを定義して全て解放しなければならない。
0272デフォルトの名無しさん
垢版 |
2018/05/03(木) 11:00:48.87ID:ogoC5I/7
>>270
それはCOMを使うということは
ガベージコレクションを意識しただけでは
出来ないということが多々あるから
0273デフォルトの名無しさん
垢版 |
2018/05/03(木) 11:04:07.21ID:IGWMrNd7
本当にVBA以外の言語も使える人間ならVBA以外でエクセルいじるのはクッソ面倒って分かってるわけで
エクセル案件にVBA以外を勧めてくる時点でお察しだから真面目に答えたらアホ見るだけだぞ
0275デフォルトの名無しさん
垢版 |
2018/05/03(木) 11:10:33.05ID:ogoC5I/7
>>274
要所なんてない。
全て生成、解放しなければ
メモリリークを起こしたり
EXCELが閉じられなくなったりする。
0276デフォルトの名無しさん
垢版 |
2018/05/03(木) 11:10:38.71ID:jhccfXfd
>>268
> ORマッパーを使う方法
まあSQLは使ってないけど...

> 一行一行インサートしないでBulk Copyを使う方法
どうやって「書き換える」のよ...
0277デフォルトの名無しさん
垢版 |
2018/05/03(木) 11:13:07.36ID:ogoC5I/7
>>276
だから「登録」とか「更新」なんて
勘違いしないように
DBを書き換えると言ったつもりだったんだけどな・・・
0278デフォルトの名無しさん
垢版 |
2018/05/03(木) 11:15:10.86ID:ygisZEFQ
>>275
うーんこの…
だからさ、GCで殆ど解放されるんだよ
quitやcloseなどといった要点を守ればComラッパーが参照カウンタの面倒見てくれんの
粗悪なウェブサイトのせいで.NETだと逐一ReleaseComObjectしないとダメみたいな誤解が広まってるがあれはウソだからな
0279デフォルトの名無しさん
垢版 |
2018/05/03(木) 11:15:53.09ID:jhccfXfd
>>275
全部きちんと解放すればいいだけ
そもそもMicrosoft.Office.Interop.ExcelのオブジェクトがDisposableでないのが不思議
Disposableならもう少しきれいに書けるだろうに
0282デフォルトの名無しさん
垢版 |
2018/05/03(木) 11:25:30.83ID:jhccfXfd
>>280
> それはCOMを使うということは
> ガベージコレクションを意識しただけでは
> 出来ないということが多々あるから

そもそもとんでもなく面倒と言うほどのことでもないし
0283デフォルトの名無しさん
垢版 |
2018/05/03(木) 11:28:04.31ID:ygisZEFQ
面倒くさいって言ってる奴はGCだとリークするからいちいち全部明示的にリリースしなきゃダメなんだって勘違いしてるんだろ
根本的に間違ってるのだから面倒くさいという結論も間違い
0286デフォルトの名無しさん
垢版 |
2018/05/03(木) 11:52:56.26
結局VBA最強って結論でおk?
0289デフォルトの名無しさん
垢版 |
2018/05/03(木) 12:00:47.01ID:jhccfXfd
>>284
> NPOIとか使ったところでその動作保証は誰もしてくれないしね。

> 仕事場に制限が無ければ俺ならPOIとかNPOI使うな

なんか精神患ってない?
0292デフォルトの名無しさん
垢版 |
2018/05/03(木) 12:16:30.95ID:96XRan6U
Excel含めたOfficeアプリケーションの操作の話とデータの操作の話が入り混じっていてわかりにくいな。
俺はアプリの操作なんてほとんどやってないや。(自分に)需要がない。
データの分析や操作にVBAを使っていて、VBAが最強だと思っている。
0294デフォルトの名無しさん
垢版 |
2018/05/03(木) 13:06:18.71ID:Vf3d827a
エクセルでデータ分析って何が出来るの?
そもそもエクセルってデータベースじゃないよね?
0295デフォルトの名無しさん
垢版 |
2018/05/03(木) 13:06:24.47ID:aADwc621
>>278
おやおやプロさん何に騙されたんやw
それともプロさんレベルになるとバグをなかった事にできる魔法とか使えるんか?www
0296デフォルトの名無しさん
垢版 |
2018/05/03(木) 13:10:13.46ID:GbI/mLdw
データ解析には普通はpythonやRだよね

考えてみたがやっぱりVBAで書いたほうが楽なケースってイベントハンドラぐらいしか無い気がする
ヘッドレスで出来る処理は他のスクリプトのほうが簡単だしそもそも多くの場合Excelである必要すらない
0298デフォルトの名無しさん
垢版 |
2018/05/03(木) 13:13:16.06ID:aADwc621
>>296
おまえ良いところに気がついたなw
このスレのプロさんにしては珍しい奴やw
0299デフォルトの名無しさん
垢版 |
2018/05/03(木) 13:13:37.90ID:Ais7tPnB
>>291
Cell ごとに入力規則でオン・オフとかしてるんですが
ちょうどExcelプロフェッショナルな面々がいらっしゃるようなので
今だ! と思って質問しました。
https://teratail.com/questions/73952

ここでやってらっしゃることが似たケースなのかな、と
VSやC♯でならIMEModeをコントロールできるなら、どうにかできるのかな?と
教えてもらっても実装できるかどうか自信はありませんが
0300デフォルトの名無しさん
垢版 |
2018/05/03(木) 13:27:56.26ID:jhccfXfd
>>299
C#とかじゃの問題じゃなくてそのリンク先に書いてあるのはそういう処理を挟み込めるコントロール(部品)だからできるってこと
Excel自体にそんな機能があればできるかもしれないけど俺は知らない
0301デフォルトの名無しさん
垢版 |
2018/05/03(木) 13:34:22.11ID:ygisZEFQ
>>299
自宅にwindows無いから試せんがたぶんこれでできるだろ

Excelを使用開始した時に
HKEY_CURRENT_USER\SOFTWARE\Microsoft\IME\15.0\IMEJP\MSIME
ShowImeModeNotification
を0に設定する
Excelを使用終了したら元の値に戻す

Excelの使用中の定義がわからんがそれは自分で決めて

お決まりの文句だけどレジストリ弄る時はもちろん自己責任な
0302デフォルトの名無しさん
垢版 |
2018/05/03(木) 14:18:15.46ID:Vf3d827a
>>301
おー凄い
よくそんな事まで知ってるね
0305デフォルトの名無しさん
垢版 |
2018/05/03(木) 15:17:06.77ID:96XRan6U
>>304
DBもテキストファイルも読み書きできてhttpリクエストも出来て
API呼び出しも出来て一般的な制御構造を持ってて、
ユーザとダイアログで対話出来て、それでなにが致命的にできないというの?
0306デフォルトの名無しさん
垢版 |
2018/05/03(木) 15:21:11.80ID:IGWMrNd7
単独って言われるとライブラリも無しってイメージしちゃうからな
まぁそうすると何かが出来る言語ってほうが珍しいんだけどさ
0309デフォルトの名無しさん
垢版 |
2018/05/03(木) 15:58:07.60ID:b8IepW0h
>>307
Explorerの仕様じゃないかな
ExplorerにWEBサイトのアドレスを渡す→ブラウザーで開く
っていう仕組みらしーので
Explorerが解釈する段階で「?」は禁則文字だから受け付けてくれない
ハイパーリンクでやるのがいいのではなかろーか
0311デフォルトの名無しさん
垢版 |
2018/05/03(木) 16:14:57.73ID:96XRan6U
>>308
車輪の再発明でも、それによってVBA単独で作業がこなせるようになるなら、
十分意味あるのでは?
0313デフォルトの名無しさん
垢版 |
2018/05/03(木) 16:36:29.69ID:ygisZEFQ
>>305
ライブラリは探せばそれなりにあるけどAPIにセンスが無い
OOPサポートも半端だし関数型サポートがないのも致命的じゃないかな
せめてどちらかは欲しいところ
名前空間が無いのも気持ち悪い
そのせいでコードのパッケージングと再利用もしにくい
全体的にチープで古臭い
昔からある言語でMSも投資する気がないから仕方がないけど時代に取り残されてる
モダンなプログラミング環境を知ってる現代人には到底受け入れられない
0314デフォルトの名無しさん
垢版 |
2018/05/03(木) 16:47:53.46ID:96XRan6U
>>313
そんな名古屋に対する悪口みたいに言うなよ

モダンなプログラミング環境を知っている現代人がセンスあるAPIでOOPと関数型サポートを提供して
コードの再利用をやりやすくすればいいんじゃね?
名前空間とパッケージングと全体的にチープで古臭いのはまあしょうがない。
0315デフォルトの名無しさん
垢版 |
2018/05/03(木) 16:54:56.30
弘法筆を選ばず

流行の最先端の言語を使いたがるのが学生気分抜けやらぬ初級者〜中級者の常だが
そのモダンな(笑)言語が3年後にも安定して使い続けられる確証があるんだろうか
その環境に適した言語と自分が使いたい言語は必ずしもイコールではない
0318デフォルトの名無しさん
垢版 |
2018/05/03(木) 17:08:35.41ID:96XRan6U
>>315
3年後には環境が大いに変わる
そういう世界で競争しているので安定しないのはしょうがない
安定ばかりじゃ勝てないからな
0319デフォルトの名無しさん
垢版 |
2018/05/03(木) 17:11:43.22
>>316
そのころにはPython 4 (もちろんPython 2.7とも3.6とも互換性なし) が枯れた言語になってるだろう
0320デフォルトの名無しさん
垢版 |
2018/05/03(木) 17:12:00.60ID:WApyWolu
OOPがサポートされてても使いこなせてなさそうだな。無闇に継承とか使ってそうだ。
0321デフォルトの名無しさん
垢版 |
2018/05/03(木) 17:46:23.02ID:QByN6yWW
結局のとこ、自分が道具を使いこなせないか、その道具で満足なものが作れないから
道具の文句を言うしかないわけだな
0322デフォルトの名無しさん
垢版 |
2018/05/03(木) 18:16:26.03ID:Sky621AR
何か、WindowsとLinux論争と似てるんだよな。
Excel使わないで、何か他の表計算めいたもので結果を出すという選択肢があれば理解出来る。

でもExcel使う前提なら普通はVBAが有利だろ。

俺はRも少しは使えるけど、そもそも仕事じゃ入れさせて貰えない。
特に有料ソフトじゃないと申請が通りにくい。
そりゃ面倒くさい手続きを経れば入れさせて貰えるけどさ。
其れだったらExcelだけで何とかしようとする。
で、意外に何とかなったりもする。

C#で個人的に自作したCOMアドインも無理だよな。
得体の知れない物と同じだからさ。
0323デフォルトの名無しさん
垢版 |
2018/05/03(木) 18:37:19.10ID:3Ql6zJ1V
>>322
> でもExcel使う前提なら普通はVBAが有利だろ。
この狭量な考えに同意が得られないことに気づいてくれ
0324デフォルトの名無しさん
垢版 |
2018/05/03(木) 18:55:41.67ID:96XRan6U
>>322
状況を教えて。
1.Rは普通に理由を添えて申請してもダメなの?
2.COMアドインは具体的に何の行為がNG?ソースは職場でビルドするの?
0325デフォルトの名無しさん
垢版 |
2018/05/03(木) 18:57:16.70ID:96XRan6U
>>323
まずは
大多数の人は同意していて、同意していないのは小数
ってことに気付いてくれ。
(少数派がダメとは言っていないが)
0327デフォルトの名無しさん
垢版 |
2018/05/03(木) 19:09:49.73ID:jhccfXfd
>>325
> 大多数の人は同意していて、同意していないのは小数
> ってことに気付いてくれ。
> (少数派がダメとは言っていないが)
それはお前の思い込み
何度も状況次第って書かれてるし、VBAが使いづらい理由とかも書かれてる
にもかかわらず常にExcelにはVBAって言ってるから同意が得られないだけ
0328デフォルトの名無しさん
垢版 |
2018/05/03(木) 19:12:28.03ID:96XRan6U
>>327
いや、大多数の人はそうじゃない
思い込みじゃないよ
>>322の人はちゃんと「普通は」って書いてるじゃないか
0329デフォルトの名無しさん
垢版 |
2018/05/03(木) 19:21:12.05ID:aADwc621
>>327
表形式のデータを扱いたいためにエクセルって言っとるおまえの方が大いなる思い込みをしとるわw
0330デフォルトの名無しさん
垢版 |
2018/05/03(木) 19:28:02.90ID:6NzQufie
ソースもなしに大多数とか頭弱く見えるぞ

ほとんどの状況でVBA以外でExcel使ったほうがやりやすい
VBAの言語仕様が古臭いから
例外はユーザー定義のワークシート関数作るときに仕方なく使うだけ
0331デフォルトの名無しさん
垢版 |
2018/05/03(木) 19:28:17.66ID:WApyWolu
>>327
大多数の人は状況によりVBAも使う。
あなたが言っているのはどのような状況でもVBAは使わない。
0333デフォルトの名無しさん
垢版 |
2018/05/03(木) 19:45:26.62ID:Sky621AR
>>323
だって別のファイルで操作するなんて言った瞬間にウィルスかとか言われたりするわけよ。
だから職場で、殆ど何も入ってない環境で作らないと駄目だろ。
その上、それってVBAじゃ出来ないの?とか言われて、実際出来たりするからな。

個人所有のノーパソにはVisualStudio入ってる。
2010だけどプロフェッショナル版だ。
今はタダで最新版が使えるわけだが買ったものをタダのに入れ替える気にならなくてな。

職場のPCにゃVisualStudioは入っとらん。
Rもそうだがそもそも申請しなきゃならんというのがもう既に面倒くさい。
どうしても必要なら申請するけど、そんなことも無いからな。
0334デフォルトの名無しさん
垢版 |
2018/05/03(木) 19:51:36.08
素のWindows + Office環境だけでいかに要求仕様を満たせるかという縛りゲー

わりと楽しい
0335デフォルトの名無しさん
垢版 |
2018/05/03(木) 19:55:14.91ID:WApyWolu
目的が達成できれば何でもいい。
言語に縛られて手段と目的を勘違いしてるとしか思えない発言のパレード。
0336デフォルトの名無しさん
垢版 |
2018/05/03(木) 20:00:07.28ID:jhccfXfd
>>328
そもそも何をもって普通と言ってるのか知らんけどVBAが有利じゃないケースもあると言ってるのに毎回普通は〜って返してるだけだよね?

>>329
反論が明後日すぎる w
Excel自体の話はしてないよ

>>331
> あなたが言っているのはどのような状況でもVBAは使わない。
どこからこんなアホな解釈が出てくるんだよ w

>>333
お前の回りがおかしいのかお前がおかしいのかはわからんけどあまり一般的な会社じゃないと思うよ
0337デフォルトの名無しさん
垢版 |
2018/05/03(木) 20:13:04.83ID:aADwc621
>>336
おまえがVBAが有利じゃないケースと言っとるのはそもそもマクロが必要ないケースや
普通はマクロを想定しない処理に暗黙のうちにマクロを想定してあまつさえVBA批判までしてしまうという
非常にややこしい勘違いの持ち主がおまえをはじめとするプロさんやねんw
0338デフォルトの名無しさん
垢版 |
2018/05/03(木) 20:19:10.52ID:96XRan6U
>>333
やじうま根性だけど、よそ様のそういう事情に興味があります
うちだと申請書と上司の捺印は必要なものの、
「〜の統計的分析作業にR言語を使用したい。R言語は実績あるオープンソースで〜」
みたいなことを適当に書いておけば、ほぼ通る。
もちろん金がかかると途端にハードルが高くなるけど。
0339デフォルトの名無しさん
垢版 |
2018/05/03(木) 20:21:11.84ID:IGWMrNd7
自称プロがVBAと言っているのは、Visual Basic for Applicationsの方じゃなくて、なんか別のVBAなんだろう
0340デフォルトの名無しさん
垢版 |
2018/05/03(木) 20:21:42.95ID:jhccfXfd
>>337
> おまえがVBAが有利じゃないケースと言っとるのはそもそもマクロが必要ないケースや
> 普通はマクロを想定しない処理に暗黙のうちにマクロを想定してあまつさえVBA批判までしてしまうという
どこのレスを読んでそんなアホな解釈したのか書いてみ
0341デフォルトの名無しさん
垢版 |
2018/05/03(木) 20:26:55.58ID:jhccfXfd
>>338
まあ、うちも似たような感じだな
金の話は経理管轄だから費用対効果の説明がいるけど固定資産にならない範疇ならそんなに厳しくはないし
0342デフォルトの名無しさん
垢版 |
2018/05/03(木) 20:30:54.21ID:aADwc621
>>340
解釈てw
はっきりとVBAが有利じゃないケースて言っとやんかwにわとりかおまえはw
でそのVBAが有利じゃないケースてどんなんや?具体的に言うてみ?w
ほれwはやくw
0343デフォルトの名無しさん
垢版 |
2018/05/03(木) 20:45:31.64ID:ygisZEFQ
VBAが古臭い使いにくい言語・開発環境ってのは全員が理解してる
なのでVBAでやるべきだという積極的な理由がなければVBA以外の言語を使うべき
VBAでやるべき場面は何かというと殆どなくてイベントハンドラを書く場合などに限られてくる
Excel以外にGUIツールを手軽に作る手段を知っているならその出番すらなくなる
0344デフォルトの名無しさん
垢版 |
2018/05/03(木) 20:48:26.60ID:LNgDTs2r
>>336
君、アホだろ。
逆だっちゅうの。

Excel使ってるという限定された場だからこそVBAが有利だと言ってるだけ。
Excel使ってなければ普通に別の言語の方が有利だろ。

君はどんな時でもVBAが不利だと言いたいようだけど大抵の処理はどんな言語でも出来る。
だから別に言語が必要無い(なんたってExcel内蔵だ)とか、他にファイルを必要としないというのは凄いメリットだぞ。

じゃあ、VBAでは出来ないことが有ったとする。
普通に別言語使うわ。
0345デフォルトの名無しさん
垢版 |
2018/05/03(木) 20:51:11.73ID:jhccfXfd
>>342
> でそのVBAが有利じゃないケースてどんなんや?具体的に言うてみ?w
> ほれwはやくw

既に書いてあるがガン無視だったよな w

>> さすがにVBAは設計も古いし言語としては最もいい言語とは言えない
>> あと>>137も書いてるけどデータとプログラムコードが一体になってるのは便利だけど例えば社内に配布してるExcelファイルのコードだけ修正したい時に面倒なことになる
0346デフォルトの名無しさん
垢版 |
2018/05/03(木) 20:54:31.94ID:jhccfXfd
>>344
> 君はどんな時でもVBAが不利だと言いたいようだけど
だからどこを読んでこんなアホな解釈してるんだよ?
これ聞くの2回目だよ?
答えられないなら黙ってなよ
0347デフォルトの名無しさん
垢版 |
2018/05/03(木) 20:56:28.57ID:WApyWolu
>>336
アレ?powershellがそのまま使えるからVBAではなくpowershellを使えって言ってなかったか?
違う人ならすまんな。
0348デフォルトの名無しさん
垢版 |
2018/05/03(木) 20:56:45.92ID:LNgDTs2r
>>338
うん。
そういうこと色々言えば通るだろうね。
でもVBAでも十分出来るだろうと思えるものに、そういうことを言って通すのに抵抗があるし、面倒くさいということ。

でも、Rはダメかもね。
むしろ金がかかる方がハードルが低い。

俺はよっぽど使いこなせて凄いこと出来るぐらい自分のレベルが高くないとそういう主張はしないな。
そりゃ、VBAじゃ無理っつう具体的な何かが有るなら別だけど。
0349デフォルトの名無しさん
垢版 |
2018/05/03(木) 20:59:38.23ID:aADwc621
>>345
何を言いたいのかよく分からんがw

まず勘違いその2
データとプログラムが一体になっとるのは不便や
どこを勘違いしたらそれを便利だと思えるのやプロさんw

で次な
データとプログラムが一体になっとるやっかいな代物のコードだけ修正したい時
に面倒なことになるのはVBA全然関係あらへんw

端的に言っておまえは一体何を言うとるんやw
0350デフォルトの名無しさん
垢版 |
2018/05/03(木) 21:00:15.42ID:LNgDTs2r
>>346
お前が最初にこの論争を始めたわけではあるまい。
元々は、その時に最適なの使えって話に対して、どんな場合でもVBAがダメって論調から始まってる。
0351デフォルトの名無しさん
垢版 |
2018/05/03(木) 21:10:32.44ID:ygisZEFQ
VBAがダメってのはスタートじゃなく結論
理由も何度も書かれてる
どちらかというとVBAが便利って派閥の方が結論をスタート地点にしている気がするね
0352デフォルトの名無しさん
垢版 |
2018/05/03(木) 21:18:58.81ID:Vf3d827a
VBAってエクセルとかアクセスとかなしで単独でアプリみたいなのを作れるの?
エクセルとかの為だけにある言語?
0353デフォルトの名無しさん
垢版 |
2018/05/03(木) 21:19:45.48ID:96XRan6U
>>351
VBAは便利だし最適解に近いよ。
ダメだっていう理由とやらはだいたい理由になってないんじゃないかな。
例えば「データとプログラムが一体になってる」ってやつだけど、
それは単に「悪い設計の例」であって、VBAのせいでもなければVBAがそうなりがちだということでもない。
悪い設計するやつはどんな言語でもセンス悪い設計をするものだ。
0355デフォルトの名無しさん
垢版 |
2018/05/03(木) 21:24:25.48ID:ygisZEFQ
>>353
VBAでデータとプログラムを分離するなら
データ用Bookとプログラム用のBookを作らなければならない
しかしプログラムのコンテナとしてBookは適切ではないね
0357デフォルトの名無しさん
垢版 |
2018/05/03(木) 21:36:13.37ID:aADwc621
>>355
プログラムだけならアドインでええやんけw
というのはおいといて

話は重複するが
マクロはそもそもアプリケーションを操作する目的で作られたものや
アプリケーションの操作が必要なく
データ、つまりエクセル形式のファイルを操作する事だけが目的ならば
マクロは必要ないし現に別のプログラミング言語でなんぼでもやり方が提供されとんねん

ええか?
おまえらプロさんは後者、つまりデータのみの操作を目的とする場合
あるいはそもそもエクセルファイルすら関係ない場合に
暗黙にマクロを想定してなおかつVBA批判を繰り広げとるんや

ホンマに面倒くさいやつらやでプロさんはw
0358デフォルトの名無しさん
垢版 |
2018/05/03(木) 21:36:45.42ID:jhccfXfd
>>349
> データとプログラムが一体になっとるのは不便や
> どこを勘違いしたらそれを便利だと思えるのやプロさんw
>>344 とかに言えよ w
> だから別に言語が必要無い(なんたってExcel内蔵だ)とか、他にファイルを必要としないというのは凄いメリットだぞ。

> データとプログラムが一体になっとるやっかいな代物のコードだけ修正したい時
> に面倒なことになるのはVBA全然関係あらへんw
ん?
言語の話じゃなくて環境の話だから関係ないって?
なんか都合のよすぎる解釈だな w
0359デフォルトの名無しさん
垢版 |
2018/05/03(木) 21:39:19.24ID:jhccfXfd
>>347
俺はそんなことを言った覚えはないしそもそも「そのまま使える」でスレ検索してもあんたのレスしかヒットしないよ?
0360デフォルトの名無しさん
垢版 |
2018/05/03(木) 21:41:09.06ID:jhccfXfd
>>350
> 元々は、その時に最適なの使えって話に対して、どんな場合でもVBAがダメって論調から始まってる。

で、その論調ってどこのレスよ?
早くレス番示してくれ
0361デフォルトの名無しさん
垢版 |
2018/05/03(木) 21:45:21.15ID:ygisZEFQ
>>357
データ操作というかより一般化してヘッドレスなExcel操作な
ヘッドレスなExcel操作ではもはやVBAの優位性はない
それ以外の用途ではVBAの活路はあるがインベントハンドラなど限定された用途に限られる
他の言語でGUIアプリを手軽に作る手段を知っているなら残ったそれ以外の用途ですらVBAの出番はない
0362デフォルトの名無しさん
垢版 |
2018/05/03(木) 21:48:55.34ID:jhccfXfd
>>353
データとプログラムを別にするならVBAで作るメリットの大半を放棄することになるが?
最適解とか冗談にしか聞こえない w
0363デフォルトの名無しさん
垢版 |
2018/05/03(木) 21:53:25.69ID:JQr4Okhv
まぁ暇な連中がくっそくだらねぇ話をしてますが、質問されたい方はこれらのアホンダラを無視して
いただいて構いませんので、お気になさらずどうぞ〜
0364デフォルトの名無しさん
垢版 |
2018/05/03(木) 21:53:45.43ID:aADwc621
>>361
ヘッドレスてwウェブドライバーかじって言ってみたくなったんかw
つまりデータの操作なw
何度も言うがそこには優位性云々やなくマクロがいらんねん
マクロが必要な場面というんはアプリケーションの操作が必要な時
言いかえればアプリケーションの使用中にインタラクティブな拡張が必要な時や

てかおまえらそもそもマクロが必要な場面を知らんやろw
もはや怪しいのはそこやでw
0365デフォルトの名無しさん
垢版 |
2018/05/03(木) 21:54:43.18ID:ygisZEFQ
>>363
最近あった質問に答えてるのが、そのくだらない議論してる奴だけだった、ってのがこのスレのレベルの低さを物語ってるよな
0366デフォルトの名無しさん
垢版 |
2018/05/03(木) 21:58:55.22ID:6NzQufie
Excelの操作にもVBA以外の方がやりやすいよ
個人的な具体例を挙げると、全部のシートの表示倍率を100%にしてA1セルをアクティブにするマクロをrubyで書いてる
VBA使わなければ3行ぐらいで書けるからな
めっちゃ楽
0367デフォルトの名無しさん
垢版 |
2018/05/03(木) 22:04:26.73ID:ygisZEFQ
>>364
ヘッドレスははるか昔からある言葉でブラウザはむしろ後発だよ

つまりってなんだよヘッドレス操作は単純なデータ操作ではない

インタラクティブな操作にVBAの活路があるのは同意だし、そう主張してきた
しかしGUIを手軽に作る手段や他のエコシステムを知っているなら、その活路すら必要なくなるので、結果としてVBAの存在意義もなくなる

何度も同じことを書かせないでくれ
理解して
0368デフォルトの名無しさん
垢版 |
2018/05/03(木) 22:08:15.31ID:ygisZEFQ
>>367
間違えた
インタラクティブな操作と言うのは範囲が広すぎる
インタラクティブな操作の中でも特にイベントハンドラなど一部の処理に関してはVBAに活路がある
が俺の主張な
0369デフォルトの名無しさん
垢版 |
2018/05/03(木) 22:11:06.28ID:aADwc621
>>367
ヘッドレスいうんはヘッドつまりウィンドウがない事や
人間による操作を必要としない定型のデータ操作に使われるもんやでw

てかどこに食いついとんねんwもうごめんなさいしいやw
しつこいねんプロさんw
0370デフォルトの名無しさん
垢版 |
2018/05/03(木) 22:13:44.01ID:jhccfXfd
>>366
その程度ならまあどんな言語でもたいして変わらんな
てか、頻繁にそういうことやるならアドイン化すべきだろ
0371デフォルトの名無しさん
垢版 |
2018/05/03(木) 22:28:05.78ID:ygisZEFQ
>>369
理解力なくて疲れるんだけど
単純なデータ操作だけでなくその他のアプリケーションのコントロールも含めてヘッドレス操作な
0373デフォルトの名無しさん
垢版 |
2018/05/03(木) 22:54:28.64ID:aADwc621
>>371
おまえが疲れるのはその多すぎる勘違いのせいやでw
0374デフォルトの名無しさん
垢版 |
2018/05/03(木) 23:08:47.05ID:GbI/mLdw
VBAは使い捨ての処理と相性が悪い
手作業でやるには量が多いから自動化したいけど再利用する予定はないのでマクロとして保存したくない
といった局面でVBAだと「マクロエディタ開いて処理書いてF5で実行してさっき書いた処理を削除」しなければならないので手間がかかる
それに加えてマクロ自体も思ったより冗長になってしまう
VBA以外のスクリプトだとショートカットキーでシェルウィンドウを開いてワンライナーのスクリプトを書いて実行するだけ
>>366みたいな処理もいちいちVBAに保存したりAddInで管理する必要もなくて、シェル開いてrubyのワンライナーを即興で書いて実行するだけ
LinuxやMacを使ったことがあるプログラマならこういった即興シェルプログラミングが便利ということは過去の経験で知ってると思う
同じことをWindows/Excelで実践するだけ
0376デフォルトの名無しさん
垢版 |
2018/05/03(木) 23:13:23.31ID:6szlQ+63
バカばっかり。
1つのファイル以外は認めんと言われたらVBA以外全滅じゃねーかw
0377デフォルトの名無しさん
垢版 |
2018/05/03(木) 23:15:07.58ID:6szlQ+63
>>374
VBA以外だとショートカットキーになっちゃうんだw
VBAではショ―トカットキーは認めないと。
0378デフォルトの名無しさん
垢版 |
2018/05/03(木) 23:17:08.59ID:6szlQ+63
>>374
同じことはVBAでも出来る。
労力も変わらん。
結果は変わるな。
何故かファイルが増えて喜んでる奴もいるけど。
0379デフォルトの名無しさん
垢版 |
2018/05/03(木) 23:19:38.12ID:GbI/mLdw
>>377
どんなツールでもショートカットキーは生産性を高めるから積極的に使うべき
ただこの場合だと「ショートカットでVBAエディタ開いてマクロ書いて実行してマクロ削除」ってなるだけだからショートカットキー使っても手間はほとんど減ってないと思う
もしかしてなんか違う意味で言ってる?
0381デフォルトの名無しさん
垢版 |
2018/05/03(木) 23:23:13.80
別にマクロ削除しなくてもよくね?
当然そういう場合は編集中のブックにVBA書くような馬鹿な真似はせずに
個人用マクロブックに書くわけだから残しておいても問題ない
Macro1という名前でも何でもいいけどそのままにしておいて
次回中身だけ上書きすればいいだけの話
0382デフォルトの名無しさん
垢版 |
2018/05/03(木) 23:24:29.44ID:Ais7tPnB
「Excel」の「VBA」は「糞」派の人達は
Excelの「何」を他の言語で、「どんな目的」で使ってるのか
具体例出して話せば話が早いと思うんだ
でないと誰がなんの主張してんだか、もうワヤ

例えば何十という取引先から日々EDIでデータが入ってくる
CSVもありゃXLSもありXLSXも混在 そおゆうのを一発で取り込むのが目的 とかさ

ここで語ってるからには、なんかしかExcel絡みには違い無いんだろ?
0383デフォルトの名無しさん
垢版 |
2018/05/03(木) 23:35:04.02ID:GbI/mLdw
>>381
XLSTARTは知らなかったわ
非表示とはいえ無関係のWorkbookを開いてしまうのと、VBEを頻繁に開くのが嫌だから、個人的にはビミョーかな
スクリプティング環境が禁止されたら使ってみようかな
0384デフォルトの名無しさん
垢版 |
2018/05/03(木) 23:41:06.78
え、ひょっとしてここでVBA否定している人って、
単に自分が使い方知らないから否定しているだけなの?
0385デフォルトの名無しさん
垢版 |
2018/05/03(木) 23:52:59.98ID:ygisZEFQ
>>382
殆どデータ読取データ出力だな
あとは帳票にも使うことがある
Excel操作の拡張という点ではそもそも需要がないから滅多に使わない
拡張して効率化したくなるほど繰り返す手作業があるならバッチ化するから

VBA肯定派はどんな使い方してるのかな
0386デフォルトの名無しさん
垢版 |
2018/05/03(木) 23:58:45.85ID:6tA58iwA
>>258
おまえのSQLは20年前のSQLかw
0387デフォルトの名無しさん
垢版 |
2018/05/04(金) 00:01:59.42ID:S7XxJkuV
>>384
それはあると思うよ。さすがにExcelを使っていないのにExcel VBAでやるのはおかしいが、職場によっては制限をかけられていて仕方なくExcel VBAでやっているところもある。
0388デフォルトの名無しさん
垢版 |
2018/05/04(金) 00:03:47.56ID:S7XxJkuV
>>385
業務部門はIT技術者ではないから、Excel VBAで完結させるのは悪い手でもない。
0389デフォルトの名無しさん
垢版 |
2018/05/04(金) 00:11:04.71ID:ogBK84PN
>>374
VBAだって.xlamファイルを開きっぱなしにしておけば
イミディエイトウィンドウにワンライナー書いてエンターキー押すだけだよね。
0390デフォルトの名無しさん
垢版 |
2018/05/04(金) 00:15:31.97ID:/NfAbhGK
xlstartにxlsm放り込むの嫌い
xlamにしてアドインとしてスタートアップ時に読み込むの好き
VBA以外使うのもっと好き
0392デフォルトの名無しさん
垢版 |
2018/05/04(金) 00:23:27.07ID:Mh+MaH3B
VBA否定派は細かい機能調べる前にプラットフォームとしてイマイチだなと見切りをつけてるから知識が少なくても仕方がない
自分は今日XLSTARTを知ったけどだからといってそれでVBAが優れていると意見を変える材料になるとは思えない

>>389
開きっぱなしにしたくないかな
それにVBAでワンライナーはちょっと厳しいと思うよ
0394デフォルトの名無しさん
垢版 |
2018/05/04(金) 02:10:30.37ID:AXMemHLC
双方主張ばっかりせずに、単純なのでいいから具体的なコードで示してよ。
質問者には、「コードさらせ」っていつも言ってるのに、、、
いままでVBAで書いてたコードがどう効率的に書けるのか興味ある。
0395デフォルトの名無しさん
垢版 |
2018/05/04(金) 04:35:49.90ID:cfklXzOl
アホな上司が作った変なところに小計行がある帳票とか
各課様式無視の帳票を今日中に集計してくれとかもうアホかと。
ヤツら、シート関数なんかSUMしか知らないから計算は電卓でやって手入力で
結構間違ってるんだよ。俺が指摘すると「まーた変なプログラムみたいなのでやったんだろ、ちゃんと小数点以下
は切り捨てしたのか?電卓でやらないと合わないぞ」と時代に取り残された土人達に罵倒され殺意を覚える。


馬鹿ほどいくら言ってもセル結合大好きでどうってことないクロス集計をとても難易度の高いものにしやがるWW
一行1レコードにすりゃ使いまわしが効くからそうやれと言っても「いや、この方が見やすいから」とか言ってやんの。
顧客リストでも苗字と名前の間に全角スペース入れたり半角スペース入れたり何も入れなかったり。
こっちで決めたフォーマット以外では入力できないようにすると「これ、どうやってシートのロック外すの?」とか言っちゃって。
0396デフォルトの名無しさん
垢版 |
2018/05/04(金) 06:01:25.83ID:lY1aVWIy
>>375
???
どこをどう見たら>>68
> > 元々は、その時に最適なの使えって話に対して、どんな場合でもVBAがダメって論調から始まってる。
って解釈できるんだよ w
0397デフォルトの名無しさん
垢版 |
2018/05/04(金) 06:11:21.88ID:lY1aVWIy
>>394
確かにそうだな
とりあえず
>>366
> 全部のシートの表示倍率を100%にしてA1セルをアクティブにする
コードを晒してもらおう
0398デフォルトの名無しさん
垢版 |
2018/05/04(金) 06:44:09.32ID:nVbPTneC
>>397

比較のために
VBA, PowerShellのコードも欲しいけど

VBAならこんな感じかね

Sheets.Select
ActiveWindow.Zoom = 100
Range("A1").Select
0401デフォルトの名無しさん
垢版 |
2018/05/04(金) 08:35:32.21ID:kV7vN9X3
うちの会社はシステムも人も20年遅れてるから、
エクセル万歳に加えて今更EUCが流行ってるん
ですが、この手のたぐいに関わると死ぬまで面倒を
見るさせられる事になりますよね。
しかも、なんら感謝も尊敬もされず対価も無しに。
そうかといって突き放す訳にもいかず対応に苦慮
していますが、皆さんはどうされてますか?
0402デフォルトの名無しさん
垢版 |
2018/05/04(金) 08:42:59.52ID:OKXWvsWr
>>401
いくらなんでも、そういう話をここでするのは場違いもいいとこだろ
プログラム板じゃなく上にあるプログラマー板の方でやれや
0403デフォルトの名無しさん
垢版 |
2018/05/04(金) 08:48:16.16ID:ogBK84PN
>>401
本意ではないけど
・全員にMOSを取らせる
・取ってない人間のEUC作成禁止
・ハードルを上げていく(MOS→IT Passport→FE)
0404デフォルトの名無しさん
垢版 |
2018/05/04(金) 09:04:20.70ID:2HQNn0mM
>>399
> どんな場合でもVBAはダメって論調は自分で探せ。
結局具体的に聞かれたら出せないのかよ w
0405デフォルトの名無しさん
垢版 |
2018/05/04(金) 09:06:14.98ID:ogBK84PN
>>401
ごめん最後の(MOS→IT Passport→FE)はちょっとやりすぎなので撤回。
でもこれは他山の石。変なEUCで問題が起こったあげく
「EUCは危険なもの」、「EUCは禁止すべきもの」
みたいな空気になっちゃったら最悪だし(実際そういう事例があるから)、
今のうちに少しでいいからハードルを上げておくのがいいよ。
ほんと本意ではないけど。
0406デフォルトの名無しさん
垢版 |
2018/05/04(金) 09:09:28.77ID:qxasih/r
>>398
ちょっと気になってたんだけどこれって3行じゃない。
セミコロンで繋げば1行になるけど
前ルビーストのにーちゃんが言ってた1ライナーって
まさかそういうオチじゃないよね
0408デフォルトの名無しさん
垢版 |
2018/05/04(金) 10:13:13.03ID:ogBK84PN
どんな場合でもVBAがダメっていう論調
 ↓
>>152
>>265
>>287
>>330
>>343
>>351
0411デフォルトの名無しさん
垢版 |
2018/05/04(金) 10:27:50.67ID:ogBK84PN
>>410
俺には見える(
0413デフォルトの名無しさん
垢版 |
2018/05/04(金) 10:39:15.47ID:GR9wczdx
否定的に断言するには「如何なる場合にあっても」という暗黙の条件が無いと成立しない文脈だからな
部分的であってもVBAがダメじゃない場合を認めるなら今までゴチャゴチャ言ってたのは何なんだって話だし
0415デフォルトの名無しさん
垢版 |
2018/05/04(金) 10:51:22.46ID:ogBK84PN
>>152 「VBAではまともに開発できないってのは事実だね」「VBAというプラットフォームが貧弱すぎて並の業務システムとしての利用に耐えられない」
>>265 「VBAの言語機能がレガシーすぎてとてもじゃないが便利とは言えんな 」
>>287 「VBA最弱でOK」
>>330 「ほとんどの状況でVBA以外でExcel使ったほうがやりやすい VBAの言語仕様が古臭いから 」
>>343 「VBAでやるべきだという積極的な理由がなければVBA以外の言語を使うべき 〜VBAでやるべき場面は何かというと殆どなくて」
>>351 「VBAがダメってのはスタートじゃなく結論」
0416デフォルトの名無しさん
垢版 |
2018/05/04(金) 10:52:42.19ID:ogBK84PN
作者の気持ちを考えて「どんな場合でもVBAがダメっていう論調 」のリストにあげさせていただきました
0417デフォルトの名無しさん
垢版 |
2018/05/04(金) 10:55:21.64ID:2HQNn0mM
>>413
> 部分的であってもVBAがダメじゃない場合を認めるなら今までゴチャゴチャ言ってたのは何なんだって話だし
はあ?
一部の人間は知らんが大抵の人間は適材適所を認めててVBAがダメなケースの話をしてたと思うが

>>414
結局最後はその手の逃げかよ w
0418デフォルトの名無しさん
垢版 |
2018/05/04(金) 11:06:38.62ID:GR9wczdx
>>417
適材適所を認めている人間が、VBAがダメと言い出す一部を煩がっている構図だからその論法は通じない
VBAが適切でない場合があるのはともかく、だからPowerShellにしろRubyにしろは趣旨が異なる
0419デフォルトの名無しさん
垢版 |
2018/05/04(金) 11:18:38.45ID:2HQNn0mM
>>415
レスアンカー大杉なので分割 (1/2)

> >>152 「VBAではまともに開発できないってのは事実だね」「VBAというプラットフォームが貧弱すぎて並の業務システムとしての利用に耐えられない」⇒ VBAは業務システム以f外にも使われる、>>366程度の奴から業務システムと強弁するなら別だが

> >>330 「ほとんどの状況でVBA以外でExcel使ったほうがやりやすい VBAの言語仕様が古臭いから 」⇒ ほとんどの状況 ≠ どんな場合でも
0421デフォルトの名無しさん
垢版 |
2018/05/04(金) 11:21:29.76ID:2HQNn0mM
>>418
どの論法の話かわからんし、お前の言いたいこともよくわからん
もっと整理してからレスしてくれ
0422デフォルトの名無しさん
垢版 |
2018/05/04(金) 11:34:04.08ID:ogBK84PN
>>419
プラットフォームや言語機能など根底の部分に対して”貧弱"とか"レガシー"などの評価をしてるから、
それは「いつだってVBAはダメ」という気持ちを持ってるんだよ。自分はそう解釈している。
0423デフォルトの名無しさん
垢版 |
2018/05/04(金) 11:38:00.69ID:rmywIw/1
自分はそういう気持ちがあるな
でも言い出すとCOMがクソとかOfficeがクソとかスレチの話題にしかならん
0424デフォルトの名無しさん
垢版 |
2018/05/04(金) 11:46:43.49ID:2HQNn0mM
>>422
そりゃ業務システムレベルの開発とかならプラットフォームや言語の機能が問題になるからね
裏を返せば小規模ならそう言うことより簡単に使えるとかの方が重要になる
って書かれてることすら理解できないの?
引っ込みつかないのか頭が固いのか知らんけどもう少し落ち着いた方がいいと思うよ
0425デフォルトの名無しさん
垢版 |
2018/05/04(金) 11:51:21.62ID:ogBK84PN
>>424
それ正しいの?
全然理解できませんね
0426デフォルトの名無しさん
垢版 |
2018/05/04(金) 11:52:45.32ID:ogBK84PN
>>424
少なくとも >>152>>265>>287がそんなニュアンスで書いているとは全く思えないね
0427デフォルトの名無しさん
垢版 |
2018/05/04(金) 11:55:33.57ID:ogBK84PN
>>424
そもそも業務システムレベルの開発がExcel VBAの守備範囲外なんだから、「裏を返せば〜」なんてナンセンスな主張だよ。
0428デフォルトの名無しさん
垢版 |
2018/05/04(金) 12:17:16.67ID:Bbccs1tm
一行1レコード の形式で保存されたExcel に限り VBAは貧弱   と、彼らは仰ってる
ま、そんなお行儀のいいファイルならむべなるかな

而して、世間にはワープロ代わりのExcelも多数存在するのも現実で
それを否定するなら行政レベルでトップダウンするぐらいの同調圧力を要する

建設現場で採ったデータを表形式にしてその部分をCADに貼り付ける
なんてぇ場面にもExcelは大活躍していたりする
で、その表のあるファイルには別シートに作業の進捗を書き込んだり出勤簿を書き込んだり
使用部材をまとめたりと、その現場の詳細をほぼすべて網羅した成果表の体を成してたりする

他社がそんな管理してるのを知れば、うちもうちもとその周辺は一気に同じ業務体系に雪崩れこむ

具体例の一端だが、んなもんExcel要らねえよ という意見は賛成できるが、ではと、それらを
網羅したシステムは果たしておいくら万円になるのか? 果たしてそれが普及するのか?
ちょくちょく変更される要求事項をエンドユーザー任せで自在に改変できる仕様の「データ保存システム」が
4〜5万円で手に入れられるなら 大多数はExcelを選択するだろう  で、その頻繁に発生する変更に
ユーザーレベルで対応するのにVBA使って手直ししていく  って需要は無くならないだろ、と   はあ、後半面倒くさくなった
0429デフォルトの名無しさん
垢版 |
2018/05/04(金) 12:24:19.19ID:JYHlDWX6
>>424
日常の些細な作業は繰り返し積み重ねるもの
大規模システムでなくともプラットフォームや言語機能の差は大きいよ
0430デフォルトの名無しさん
垢版 |
2018/05/04(金) 12:28:55.33ID:uwR6wCpj
お前さんが理解できるかどうかはどうでもいいよ
とりあえずレスを1つにまとめるところから始めようか w
0432デフォルトの名無しさん
垢版 |
2018/05/04(金) 12:43:47.52ID:JYHlDWX6
>>428
そういうCRUD+αみたいな大量生産向けシステムならそれこそオープンソースフレームワークでサクッと作っちゃえば?
まあ社内SE1人の人件費で十分じゃないかな
仕事として発注すると桁違いの価格でボッたくるられるからそれはオススメしないけどw
0433デフォルトの名無しさん
垢版 |
2018/05/04(金) 12:49:12.60
>>432
見積もり600万円くらいってこと?
0436デフォルトの名無しさん
垢版 |
2018/05/04(金) 14:29:21.78ID:UgjU7AE+
話の流れ??
ExcelでもVBAは使えない、powershellのがマシ、から始まってる流れなんだけど、知らんの?
VBAはダメって奴が急にExcel以外に話広げ始めたんだけど。
前スレから読み直せよw
0437デフォルトの名無しさん
垢版 |
2018/05/04(金) 15:43:35.80ID:3JKVpa/5
ここのスレタイ、「Excel VBA 質問者を混乱させるスレ」 だったっけ?
他言語信者の人たちのスゴさはもうわかったから。

もういいかげん余所でやればいいのに。誰得なん?
0438デフォルトの名無しさん
垢版 |
2018/05/04(金) 15:44:03.93ID:3JKVpa/5
ここのスレタイ、「Excel VBA 質問者を混乱させるスレ」 だったっけ?
他言語信者の人たちのスゴさはもうわかったから。

もういいかげん余所でやればいいのに。誰得なん?
0441デフォルトの名無しさん
垢版 |
2018/05/04(金) 18:03:23.64ID:u4+2pSW/
>>404
バーカ。
いっぱいあるし簡単に見つかるから自分で探せってことだ。

だいたい、VBAがOffice環境抜きにして他言語より優位性があると考える奴なんて常識的にあり得んのはよっぽどバカ以外あり得んだろう。

そう考えれば当然の帰結だよ。
そんなことも分からないからバカにされるんだぞ。
0442デフォルトの名無しさん
垢版 |
2018/05/04(金) 18:11:27.76ID:u4+2pSW/
>>419
あのね、君が反論してる人達は、君の言うおかしい人に対して反論してこういう議論になってるってことを理解しような。

君だけ話の流れが読めて無いだけだろ。
0445デフォルトの名無しさん
垢版 |
2018/05/04(金) 19:12:25.67ID:neB5oFyO
>>442
そいつは真正のバカやから相手にしても無駄やw
0446デフォルトの名無しさん
垢版 |
2018/05/04(金) 19:20:45.92ID:qxasih/r
>>441
そんな当たり前のこと言われても。
VBAのAはアプリケーションのAだから
当然EXCELやACCCESS 、POWERPOINT、WORDとか、それに付随したアプリに特化してる。
逆をいうとアプリ内のことをやらせるなら
ほぼ最強とも言える
0447デフォルトの名無しさん
垢版 |
2018/05/04(金) 19:25:35.70ID:AeMEtXjU
まとめ

純粋な言語としての優劣で言えばVBAは劣っていると言うしかない
ブック一つで完結するような小さな世界では敷居の低さがメリットと言えなくもない
しかし他のエコシステムを知ってる人からするとVBAの敷居が特別に低いという印象はない
というかExcelというプラットフォームに依存する事自体が大きなデメリットとなる
0448デフォルトの名無しさん
垢版 |
2018/05/04(金) 19:32:27.09ID:u4+2pSW/
>>447
まるっきりバカの引きこもりに言われてもねえ。
ビジネスで―番使われてるExcelを否定してどうすんだ?

Excelはダメと会社で言ってみろ。
おかしい人と思われるのがオチだ。
0449デフォルトの名無しさん
垢版 |
2018/05/04(金) 19:34:09.75ID:u4+2pSW/
だいたい言語の優劣の話をするような奴にはろくな奴がいねえ。
できる奴ならどんな言語でも文句も言わずに使ってるわ。
0450デフォルトの名無しさん
垢版 |
2018/05/04(金) 19:38:26.12ID:AeMEtXjU
excelはダメだっていうと何を今更と同意される事が多い
でもバカな客と付き合っていくにはExcel使うしかないのも事実だよなぁって諦めのため息もセットで返ってくる
0451デフォルトの名無しさん
垢版 |
2018/05/04(金) 19:38:50.18ID:ogBK84PN
>>447
エコシステム?

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

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

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

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

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

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

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

そんな世界にやって来て荒らすようなことばかり言ってれば
周りから排除されるようなこと言われるのも当然と言えば当然だよね。
0467デフォルトの名無しさん
垢版 |
2018/05/04(金) 22:45:53.35ID:neB5oFyO
まだプロさんごっこしとるのかこのバカ達はw
いい加減にしろ低能ども
0468デフォルトの名無しさん
垢版 |
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ソフトに関わるかどうか関係なくほぼ全員が
クラスやポリモーフィズムを知ってると言えるだろうか。
0470デフォルトの名無しさん
垢版 |
2018/05/04(金) 23:33:40.69ID:PShZiAFS
>>452
え?
マジで言ってる?
C#もるびーも後からインストールしないとできないよ?
唯一powershellだけ使えるけど、Excel操作だけに特化した場合、VBAと比べてどれほど優位性があるのか。
何でもかんでも勝手にインストールできる会社ばかりじゃないし、VBAユーザーがエンジニアだけじゃなく事務職とか他の職種にも多いとかそう言う話も含めての流れだと思ったけど、日本語読めないバカには分からんかw


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

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

>>464
ほら見ろ。
>>462のような奴と一緒なんだよ。お前は。
そんなこと言ったって殆どの会社はWindows使ってるのに。
0474デフォルトの名無しさん
垢版 |
2018/05/05(土) 00:49:14.66ID:cuzWr0GO
>>468
少なくても話の主体になっている.Netを使っている人ならほぼ全員がクラスくらいは知ってるよ
何せObject指向言語だから基本になってるそれを知らないと話にならない。

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

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

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

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

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

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

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

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

畑違いの人はまず一般的に言われているシステムと
VBAで作るツールの違いを理解して頂かないと
話が噛み合うはずもない。
0478デフォルトの名無しさん
垢版 |
2018/05/05(土) 05:23:12.41ID:N9S74U1A
>>471
ブーメランすぎる
アホなお前がテキトーな理解で掻き回してるだけ
>>462にしてもお前がWindowsとか言い出したから食い付いて来たんだぞ
そんなことも理解してないで何が話の流れだよ w
0479デフォルトの名無しさん
垢版 |
2018/05/05(土) 05:32:00.27ID:N9S74U1A
>>470
インストールの話は会社によって様々で普通にインストールできる会社もある
って話も出てたはずだが?
あと今時C#コンパイラは標準装備だよ?
0482デフォルトの名無しさん
垢版 |
2018/05/05(土) 06:38:33.56ID:N9S74U1A
>>466
お前さんの見てる世界が狭いだけじゃね?
業務システムの一部としてExcel使ってる例はごまんとある
あとVB.NETだからと言って無理にポリモーフィズムなんて使わなくてもいい
リストとかハッシュとか便利な.NETライブラリだけ使うとかでもいい
0483デフォルトの名無しさん
垢版 |
2018/05/05(土) 06:49:20.44ID:II6m7tZa
まぁ要するに「複数の言語使える僕ちゃんスゴイ」を言われたくてやってんだろうけど
仕事だろうが趣味だろうがプログラムやってりゃ複数の言語使えるようになるのが普通なんで
どっかの現場でVBAすらまともに扱えないヤツを相手にするならともかく
色んな人間が書き込む場所でやったって満足できる結果にはならんわな
0485デフォルトの名無しさん
垢版 |
2018/05/05(土) 07:33:52.33ID:BfpDb3xn
>>482
OOPがサポートされてないと非モダンなVBAを批判するのに多態性は使わなくて良いのかw
お前、理解してないだろw
0486デフォルトの名無しさん
垢版 |
2018/05/05(土) 08:25:06.82ID:cuzWr0GO
>>483
前何かVBAで格闘ゲーム作ってる人のヒットマーク位置の質問してた人に
「〜が出来る僕ちゃんスゲーって言われたいんだろ」って言ってた人か。

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

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

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

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

MSの動きそっちのけで最強だの最弱だのはいくらなんでも無意味なんじゃ
0497デフォルトの名無しさん
垢版 |
2018/05/05(土) 09:41:08.55ID:N9S74U1A
>>493
多態性云々はVB.NETの話
開発環境云々はC#の話
混ぜて話すのは頭が悪いのか?
それとも混乱させてごまかそうと必死なのか? w
0498デフォルトの名無しさん
垢版 |
2018/05/05(土) 09:47:35.00ID:BfpDb3xn
>>497
それで混乱しちゃうの?
OOPがサポートされてない古くさいんだろ、VBAは。
じゃあサポートされてる言語では活用するのが当然だと思ったけど違うのか?

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

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

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

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

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

全く論理的じゃない。
0503デフォルトの名無しさん
垢版 |
2018/05/05(土) 10:14:07.65ID:BfpDb3xn
OOPがサポートされていない言語は古くさくてダメ!
例えメモ帳しかなくてもC#のがマシ!
でも、オブジェクト指向は使わない!
多態性は理解できない!
デザインパターンは知ったかぶり!
VB.netとC#は全くの別物なので同時に話す奴は混乱している!

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

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

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

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

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

このスレの皆様へ
この度はバカの ID:TTUQSH5z を野放しにしてしまい、皆様に多大なる
ご迷惑をおかけした事、深く陳謝いたします。
今後は更なる監視の強化を行ない、二度とこのバカが勝手な発言を行えないよう
務めてまいりますので何卒ご理解の程お願い致します。
0516デフォルトの名無しさん
垢版 |
2018/05/05(土) 12:19:45.99ID:yoXg86RX
>>493
メモ帳C#のほうが生産性が高いと思う
洗練されたオブジェクト指向サポート
モダンな言語機能
これだけでもだいぶ楽になる
シンタックスハイライトとインテリセンスはあくまでオマケかな
まあでもVBAよりマシってだけだから最初から全てが揃ってるPowerShellを使ったほうがいいけどな
0517デフォルトの名無しさん
垢版 |
2018/05/05(土) 12:43:41.18ID:NYhud1FJ
はやくGW終わらないかなぁ
とりあえず生産性どうこう言ってるやつは、どういう物を生産するのかはっきりしてから話してくれ

っと思ったけどPS最高君だったか
すまん、この書き込みともども無視しといてくれ
0518デフォルトの名無しさん
垢版 |
2018/05/05(土) 12:49:42.90
で、 >>397-398 の答えはまだかね?
Rubyでのワンライナーの書き方を待ってるんだが
0522デフォルトの名無しさん
垢版 |
2018/05/05(土) 17:16:03.00ID:063K4Ypr
流れを読まずに質問!
他シートをActiveにせずに、座標指定で .FreezePanesを指定したいんだけど
方法ある? (もしかして多言語からならできるのか!?)
0525デフォルトの名無しさん
垢版 |
2018/05/05(土) 18:18:56.66ID:063K4Ypr
>>524
それ、画面分割じゃなくて? 専ら使わんです。
、、と思ったら、事前に .SplitRow; .SplitColumn; しとけば
ActiveCell変更しなくても .FreezePanes で指定座標でLock
できるわけね。
For回さずに別シートの行列Lockがしたかったんだけど、これだけでも
収穫でした。 Tnx!!

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

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

いったいどうやればいいのでしょうか?
0531デフォルトの名無しさん
垢版 |
2018/05/05(土) 20:23:15.18ID:z4c77ZQa
>>529
二つの問題を一度に出すのは良くないね。
それはさておき、深さが大したことないから再帰でやるのがいいと思います。
0532デフォルトの名無しさん
垢版 |
2018/05/05(土) 20:28:29.47ID:cuzWr0GO
>>529
Dir関数かなんかで拾ったブックから正規表現でマッチングしたブックを対象にブック開いて
tmpで始まるシート名のシート削除して上書き保存すればいいんじゃないの?
0533デフォルトの名無しさん
垢版 |
2018/05/05(土) 20:31:32.46ID:cuzWr0GO
再帰的にって話だったから
Dir関数で拾ったものの名称やらアトリビュートやらで
それがフォルダだったら更に下の階層を漁るようにすれば
出来るような気がするけど?
そういうことではない?
0534デフォルトの名無しさん
垢版 |
2018/05/05(土) 20:46:42.41ID:z4c77ZQa
>>529
マッチするファイル名を列挙して配列にして返す。これを再帰関数で作る。
ファイル名の配列を受け取ってシート消去などの処理をする関数は別に作る。
がいいと思う。
0535デフォルトの名無しさん
垢版 |
2018/05/05(土) 21:17:32.31ID:8uGGiv/v
いちいちシートに書き出してからでないと処理出来ない関数多くて萎えるな
linestとか、配列(variant型)から直接呼び出したくても出来ないぽい
0536デフォルトの名無しさん
垢版 |
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
0537デフォルトの名無しさん
垢版 |
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
0538デフォルトの名無しさん
垢版 |
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()
0539デフォルトの名無しさん
垢版 |
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
0540デフォルトの名無しさん
垢版 |
2018/05/06(日) 00:13:02.96ID:5pacMdKU
配列も処理出来ないもんですかね、、、。

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

SQLで出来る範囲のことであれば
一度シートにSQL投げて取得した結果を
シートをクリアした後に貼り直すのが
一番早くて楽かなとは思うけど。
0545デフォルトの名無しさん
垢版 |
2018/05/06(日) 03:44:28.04
>>544
回帰分析も知らないんなら黙っとけよ
0549デフォルトの名無しさん
垢版 |
2018/05/06(日) 09:10:32.16ID:cLRBXgZI
ものすごく無邪気な空目を見てほっこりしたw
0552デフォルトの名無しさん
垢版 |
2018/05/06(日) 13:33:33.61ID:c6V5Tk/M
初心者でも手軽で簡単なVBAのプログラム見てみたいなー
他の言語だと>>538のようにファイル探してシート削除するだけでそんな長くなるわけないけど
他の言語よりもっと手軽で簡単なVBAならさらに綺麗で短いプログラムになるんだろうなー
VBAerさんの実力見てみたいなー
0553デフォルトの名無しさん
垢版 |
2018/05/06(日) 14:11:50.40ID:Ka8bfK6G
VBAを否定したいが為に、他の言語よりも手軽で簡単で短いプログラムが書ける言語という条件を掲げ始めたの笑える
もうそこまで条件つめないと否定する箇所が見つからないんだね
0554デフォルトの名無しさん
垢版 |
2018/05/06(日) 14:56:53.33ID:c6V5Tk/M
>>553
手軽でもない難しい長いコードしか書けない言語なんて誰が見ても存在価値ないぞ?

そこまで条件詰めないと、って君は言うけど言語として追及しなきゃならない当たり前の必須条件なんだがw
0555デフォルトの名無しさん
垢版 |
2018/05/06(日) 15:05:08.61ID:Ka8bfK6G
>>554
もともとVBAスレではそんな事は気にしていないし、
いくら啓蒙しようともVBA以外の選択肢がない事が絶対条件なんで別の言語出されても無意味なんですよねー
言語的な優位性を語りたいなら、それ専用のスレにいくべきであってVBAスレで的外れな事言い続けてるキミはただのマヌケだ
0557デフォルトの名無しさん
垢版 |
2018/05/06(日) 15:20:53.60ID:c6V5Tk/M
まあ意地はって無意味とか言ってるけどさ
月曜になったら会社でPSのこと気になってちょこっと調べちゃう奴はたぶんいると思うぞw
0558デフォルトの名無しさん
垢版 |
2018/05/06(日) 15:22:14.65ID:Ka8bfK6G
>>556
会社がVBA以外を許容しない場合とかって何度も言われてるのに、キミは本当に物覚えが悪いんだね
0560デフォルトの名無しさん
垢版 |
2018/05/06(日) 15:32:07.46ID:Ka8bfK6G
馬鹿馬鹿しいかはともかく仕事でやってる限りは従うしかないわけで、
モダンだから使ってるわけでも、簡単に書けるから使ってるわけでも、手軽だから使っているわけでもなく、
会社が許容する言語がVBAだけだからVBAを使ってるんで、それが解決されない限りは無意味なんだよ
0561デフォルトの名無しさん
垢版 |
2018/05/06(日) 16:20:21.14ID:hMxfhnzD
具体的なコード示されて反論できなくなったらVBA必須の職場とか言い出してて笑える
0562デフォルトの名無しさん
垢版 |
2018/05/06(日) 16:22:54.16
いいからさっさと >>397-398 のRubyでのワンライナーコード提示しろよ
0563デフォルトの名無しさん
垢版 |
2018/05/06(日) 16:27:09.23ID:kSRQdo41
というか、最初からなんとなくそういう意図なんかなと思ったけど、正直めんどくさい。
やる気が起きない。
たぶんこういう処理ってどんな言語でもそんなに大変じゃないと思うんだよね。
そういう処理って自分に降りかからないとやる気が起きん。
別に多少長くなってもどうでも良いだろ。

逆にこういうのとかだったらやる気出るけどね。(これはVBAでは多分実現不可能)

http://imgur.com/OGKddGC.jpg
0564デフォルトの名無しさん
垢版 |
2018/05/06(日) 16:35:34.38ID:kSRQdo41
PSはExcelに対して使う機会が殆ど無い。
メリットを感じない。

昔、PSでUIAutomationで他アプリを操作するコードとか書いてたけど、別にVBAでも出来ることが多いからね。
PSじゃ右クリック出来ないとか言ってた人いたけどWin32+SendMessage+WM_RBUTTON_DOWNでできるじゃんなんてやってたけどさ。
でもその後メリットがあまり無いから使わなくなったなあ。
今でもバッチファイルじゃ出来ない場合は候補に上がるけど。
0565デフォルトの名無しさん
垢版 |
2018/05/06(日) 16:41:02.41ID:Ka8bfK6G
>>561
他の言語がどうこうとか言い出した時点で真っ先に指摘されてるんだけど、
自分語りに夢中で気がつかなかったんだろうな
0566デフォルトの名無しさん
垢版 |
2018/05/06(日) 17:32:38.91ID:c6V5Tk/M
VBAは意図的に他の手段を禁止しない限り使うメリットが無いクソ言語ということを再確認できたね
0568デフォルトの名無しさん
垢版 |
2018/05/06(日) 18:07:51.27ID:hMxfhnzD
>>565
真っ先に指摘したらそんな職場ばかりじゃねーだろって速攻論破されてただろw
で、簡単に使えるとか業務システムとかのでかい奴じゃないからVBAで十分とかほざいてたのに>>532辺りの小規模な用途でもPSより簡単じゃないことがわかったとたん前のことを忘れたふりしてまた職場がーとか言い出したから笑われてるだけ
理解できたかな?w
0569デフォルトの名無しさん
垢版 |
2018/05/06(日) 18:40:49.69ID:Ka8bfK6G
>>568
「そんな会社ばかりではない」が論破になるわけないんだけど、まぁキミには理解できないんだろうな
0570デフォルトの名無しさん
垢版 |
2018/05/06(日) 18:48:25.13ID:eFdUTltV
>>568
これだからバカは...

その場に適したの使えって話。
そしてその場はその場なんで全体の話にゃならんのは当たり前の話なんだが。

職場の話も、コードの話もその場の話で、言語自体の優劣とイコールではない。
そしてExcel使う限り有利な場が多いのがVBAなのは仕方ないことだ。

最初の3行とか言い出した時からおかしいなと思ってたんだが3行が10行になって何の問題が有るのか分からん。
どっちでも良いだろ。
それより実現不可能とかどうにも汚いコードになるとかの方が気になるね。
0571デフォルトの名無しさん
垢版 |
2018/05/06(日) 18:57:08.24ID:c6V5Tk/M
3行が10行になったらバグ混入確率も3倍以上
書くのも読むのも面倒くさい
保守担当者に恨みでもあるなら長くしてもいいけどさ
0572デフォルトの名無しさん
垢版 |
2018/05/06(日) 19:04:56.37ID:hMxfhnzD
>>569
確かにお前のアホな考え方は理解できんわ w

>>570
> そしてExcel使う限り有利な場が多いのがVBAなのは仕方ないことだ。
具体例で有利でない例出されてるのに何を言ってるんだよ w
まずはVBAが明らかに有利な具体例を出してから語れよ
0573デフォルトの名無しさん
垢版 |
2018/05/06(日) 19:08:09.18ID:Ka8bfK6G
>>572
「会社からそれ以外を禁止された場合の需要」は、「禁止されていない場合」があっても何ら矛盾しないんだけど、
キミは論理性というものがカケラもないみたいだな
0574デフォルトの名無しさん
垢版 |
2018/05/06(日) 19:11:38.77ID:WI8S4nUT
さあさ、
もう明日はGW開けの月曜日だし
ぼちぼちスレ違いのSPやrubyの話してる人は
巣に帰ったらどうだ?
0575デフォルトの名無しさん
垢版 |
2018/05/06(日) 19:27:21.91ID:hMxfhnzD
>>573
> 「会社からそれ以外を禁止された場合の需要」
が全てではないって言うだけのこと
条件明示もできないアホが論理性とか笑えるわ
0576デフォルトの名無しさん
垢版 |
2018/05/06(日) 19:34:21.99ID:Ka8bfK6G
>>575
VBAスレはVBAの需要が全てであって、他の言語の需要は関係ないんだよw
まぁ理解できるような頭じゃないから別の言語の話題を出しちゃうんだろうけどさ
0577デフォルトの名無しさん
垢版 |
2018/05/06(日) 20:00:35.79ID:eFdUTltV
>>575
バーカw
それが具体例だろ。
こんなことも分からんの?

お前は他言語の場合は具体例と言い、VBAの場合は全てではないと言う。

どれも全てではない。
がExcelを使うという限定条件ではVBAが有利な場合が多い。
何故なら大抵のことならどんな言語でも出来るから(とくにExcelで扱う内容であればさらに)、余計なファイルが増えるとか使う環境で制限されることが多いというのが大きな差になるんだよ。
0578デフォルトの名無しさん
垢版 |
2018/05/06(日) 20:02:15.99ID:eFdUTltV
もう何度も出してるんだが、こういう人は都合の良いものしか見ないんだよな。
0579デフォルトの名無しさん
垢版 |
2018/05/06(日) 20:10:50.87ID:c6V5Tk/M
数日バトルしたわけだけどVBAの存在価値を感じるような具体例がまだ1つも出てないのが不思議だね
なんでだろうね
0580デフォルトの名無しさん
垢版 |
2018/05/06(日) 20:18:00.31ID:WI8S4nUT
>>579
そうかな?
少なくとも自分の持ち言語じゃない言語に
興味を持ってこの数日間貼り付いていた君達には
それなりに存在価値が有った筈だよ

でなければ何故このスレに
ずっといるのかと言うことになる

別にPSやrubyスレで相手にされないから
ここに来た訳ではないだろう?
0582デフォルトの名無しさん
垢版 |
2018/05/06(日) 20:22:54.35ID:hMxfhnzD
>>576
バカなの?
> > 「会社からそれ以外を禁止された場合の需要」
ってはっきり書いてあるのに
> VBAの需要が全て
と言い切るとかドンだけ都合のいい解釈だよ w

>>577
それ反論出てただろ ⇒ 一例: >>143
盲信するしかないお前には見えないかも知れんが
だから状況次第なの、わかった?
0584デフォルトの名無しさん
垢版 |
2018/05/06(日) 20:25:15.78ID:2V8AEwcJ
> でなければ何故このスレに
> ずっといるのかと言うことになる
アホが必死になって反論するのをからかってるだけだろww
0585デフォルトの名無しさん
垢版 |
2018/05/06(日) 20:32:07.06ID:c6V5Tk/M
VBAerならVBAコードで語れよ
俺を感心させるようなVBAコードなんざ書けねえんだろ?
ならゴミと言われても仕方ねえじゃんか
0587デフォルトの名無しさん
垢版 |
2018/05/06(日) 20:38:16.54ID:Ka8bfK6G
要するにRubyだかなんだかのメインの仕事で使えなくて事務仕事に回された無能ってオチか
0590デフォルトの名無しさん
垢版 |
2018/05/06(日) 20:52:16.31ID:WI8S4nUT
>>588
じゃ、何でVBAを押し付けられたんだろうね
キチンと言って聞かせれば押し付けられることも無かっただろうに
0591デフォルトの名無しさん
垢版 |
2018/05/06(日) 20:53:03.16ID:2V8AEwcJ
>>69がVBA以外の選択肢もあるよねーって言った時に
そだねー
で終わる話を>>70とかがVBA以外の選択肢がないとか言うからバカにされてるだけ
で、最終的にやり込められて
> 都合がいいも何もスレタイを見ろよ
とか、笑えるわ
0592デフォルトの名無しさん
垢版 |
2018/05/06(日) 20:59:23.99ID:cLRBXgZI
VBA以外禁止って話、なくはないんだろうけどニッチ過ぎないか?
あまり聞いたことがない
0593デフォルトの名無しさん
垢版 |
2018/05/06(日) 21:00:59.91ID:c6V5Tk/M
>>590
スケジュールに余裕があったからなぁ
俺って仕事が早いからその分貧乏くじ引きやすいんだよ
0594デフォルトの名無しさん
垢版 |
2018/05/06(日) 21:03:14.24ID:WI8S4nUT
他所から最近来た人は知らないだろうけど
これでも大分ユルくなったんだよ
前は命令系が殆ど一緒のvb6ですら禁止にするか
コード載せることすら禁止にするかで
大揉めに揉めて荒れまくった時代も有ったし
0595デフォルトの名無しさん
垢版 |
2018/05/06(日) 21:08:16.36ID:c6V5Tk/M
>>592
VBA以外は禁止って頭の悪いルールでOS標準搭載のプログラムを縛るとOSが動かなくなっちゃう
なのでそんな環境は現実的には珍しいどころか存在しない

マインスイーパーはダメなどブラックリスト的に禁止する会社は多くはないが存在する
しかしブラックリストを採用してる会社でもコマンドプロンプトやパワーシェルを禁止する会社はごくわずか
なぜならそれらを禁止すると日常的な端末の管理作業に支障をきたす可能性があるから
0596デフォルトの名無しさん
垢版 |
2018/05/06(日) 21:11:30.28ID:Ka8bfK6G
プログラムとプログラム言語の違いが分かってないヤツが仕事早いって自称してるのか
ようやくコイツの面白いところ見つけたわ
0597デフォルトの名無しさん
垢版 |
2018/05/06(日) 21:13:39.80ID:WI8S4nUT
>>595
それは分かるけどVBAの質問スレで話すことではないよね。
そういう話をする場合は然るべきスレに誘導すればいいんじゃない?
0598デフォルトの名無しさん
垢版 |
2018/05/06(日) 21:14:11.38ID:kBGBSRI1
でも将来会社のPCをSモードにしようなんて話になったら
本気でVBAしか選択肢が無くなる

そんで万一VBAのサポートが終わったらローカル開発終了の危機
0599デフォルトの名無しさん
垢版 |
2018/05/06(日) 21:15:19.54ID:hMxfhnzD
>>592
俺も聞いたことない
まあ世の中広いし変にこだわった上司がいたりするケースはあるのかも知れないから>>595みたいにないと言い切っちゃう奴もどうかとは思うわ
0600デフォルトの名無しさん
垢版 |
2018/05/06(日) 21:16:09.68ID:c6V5Tk/M
>>597
パワーシェルでこうやって簡単にできることをVBAでやるにはどうすれば良いですか?
パワーシェルと比べてVBAの優位性はなんですか?

これはVBAに関する質問だろ?
0604デフォルトの名無しさん
垢版 |
2018/05/06(日) 21:43:37.77ID:cLRBXgZI
じゃあ「VBA以外のプログラミング環境を使うことが許されない会社」は都市伝説だった

0605デフォルトの名無しさん
垢版 |
2018/05/06(日) 21:43:41.50ID:49zJQseC
Excelシートに対してSQLで操作するのはまったく勧められない。

おまけ機能だから変な制約にはまりやすい。
0606デフォルトの名無しさん
垢版 |
2018/05/06(日) 21:46:15.91ID:WI8S4nUT
>>602
そりゃ知らないだけじゃないの?
今は少なくともWindows入っていればVBSもあればJavaScriptもあるしSellだって普通に使えるはず。

まぁ各言語で向き不向きはあるだろうけどね。
0609デフォルトの名無しさん
垢版 |
2018/05/06(日) 21:55:47.66ID:cLRBXgZI
>>605
SELECTだけならほげ問題ない
0611デフォルトの名無しさん
垢版 |
2018/05/06(日) 21:59:36.63ID:c6V5Tk/M
>>603
いや意味わからん
自分のタスクは自由にやるからストレスないけど
既存のクソマクロを拡張しろってタスクが回ってきたらVBAでやるしかないだろ
鬱憤たまりまくりだよ
0612デフォルトの名無しさん
垢版 |
2018/05/06(日) 22:07:51.20ID:cLRBXgZI
>>611
それはクソマクロだからだ。
秀逸美マクロに囲まれていればそんな文句はでないだろう。
つまり言語のせいではない。
0618デフォルトの名無しさん
垢版 |
2018/05/06(日) 22:20:31.61ID:cLRBXgZI
秀逸美マクロの広告がTLにあふれる
0619デフォルトの名無しさん
垢版 |
2018/05/06(日) 22:40:05.16ID:eFdUTltV
>>582
ハァ...
あのね、状況次第なんだよ。
日本語ワカリマスカ?

だからその時に適したの使えって何度となく言ってるだろ。
ファイルが増えちゃうのはダメってのも、職場環境も状況なんだよ。

で、VBAでダメってことが殆ど無いんだよ。
3行が10行に増えてダメって状況なんて殆ど無いんだ。

バージョン管理は俺は別言語使ってる。
面倒とか言ってる奴はちょっとレベルが低いかと思う。
面倒ではない。
セキュリティ面での問題だ。
そして、Excelで本格的なバージョン管理しなきゃならん程のコードを書くこと自体殆ど無い。
そういう場合はそもそもExcel使わない方向を考えるだろう。

Excel開かずにExcelファイル作るだけならもうExcelの範囲外だ。
当然VBAに適していない。
もっとも別のOfficeアプリからならVBAに適した範囲だけど。
0620デフォルトの名無しさん
垢版 |
2018/05/06(日) 22:45:19.58ID:eFdUTltV
>>592
VBA以外が禁止なんじゃ無いの。
勝手に他アプリが入れられないということ。
だからPSについてはこのデメリットは無いと思ってるよ。

ただ、PSについて言えばExcel.Application使う限りメリットがあまり感じられない。
0622デフォルトの名無しさん
垢版 |
2018/05/06(日) 22:51:53.77ID:c6V5Tk/M
>>620
メリットあるぞ
VBAより楽にわかりやすく短いコードを書ける
VBAより機能数がはるかに多い
VBAより他のツールとの組み合わせが容易
などなど
0626デフォルトの名無しさん
垢版 |
2018/05/06(日) 23:05:49.08ID:eFdUTltV
>>622
全く具体性に欠ける。
短いのは大したメリットにはならんぞ。
出来るかどうかが一番大事だろ。
そりゃ3行が500行に増えるというなら別だが。

エレガントかどうかというのも全く具体的じゃ無いね。

取って付けたような反論なんだよな。
そもそもPS書けるのか?君は。
>>622>>623を見るとちょっと疑念が残るな。
0627デフォルトの名無しさん
垢版 |
2018/05/06(日) 23:08:19.79ID:c6V5Tk/M
>>626
長いとバグ混入率が高まり
書くのも読むのもめんどくさい
保守性が低下する
これプログラマの常識な
事務員さんは知らないか
0628デフォルトの名無しさん
垢版 |
2018/05/06(日) 23:10:46.76ID:eFdUTltV
>>611
これもよく分からん。
これってVBAのメリットだろ。
他言語は却下されてるんだから。

VBA以外は適していないんだ。
0629デフォルトの名無しさん
垢版 |
2018/05/06(日) 23:13:44.46ID:eFdUTltV
>>627
だから、3行が10行に増えるぐらいで混入率が増えるとか、どんだけレベル低いんだよ。
君はステップ数200とかのコードしか書いたこと無いんかい?
0630デフォルトの名無しさん
垢版 |
2018/05/06(日) 23:21:52.93ID:eFdUTltV
というかさ、どんな処理でPSがエレガントだと言ってるんだ?
それも示さずにエレガント言っててもまるっきり説得力無い。
0631デフォルトの名無しさん
垢版 |
2018/05/06(日) 23:22:49.12ID:c6V5Tk/M
>>629
3行で済むものが10行になるなら
300行で済むものが1000行になるんだぜ
3000行で済むものが10000行になるんだぜ
700行、7000行も無駄なコード書くとかバカの極みじゃん?

3行とか30行の使い捨てスクリプトしか書かない事務員さんにはあまり違いを実感できんのかもしれんな
0633デフォルトの名無しさん
垢版 |
2018/05/06(日) 23:38:53.72ID:WI8S4nUT
>>632
ちなみに分かり易く
Thisworkbook.Sheets(1).Cells(1,1) = “Hello World!”
をSPで書いてみてよ。
別にエレガントじゃなくてもいいから。
どうなる?
0635デフォルトの名無しさん
垢版 |
2018/05/06(日) 23:44:07.99ID:eFdUTltV
>>631
バーカw
ならねえよ。

お前プログラム書いたこと無いだろ。
どんなコードでも3行が10行になるんだったらそりゃVBAはダメだろうよ。


>>632
だから、これ長すぎとか言ってるけど、俺に言わせればどこが?ってことだ。
そしてVBAのコードでバグが混入しそうな所は何処だ?
短いのが良いんだったらPerlは最高だ。
0637デフォルトの名無しさん
垢版 |
2018/05/06(日) 23:49:18.80ID:WI8S4nUT
>>634
いやぁ、今PowerSellよく知らないから
少しググって見てたけどC#によく似ているんだよね。

C#の場合、>>633のこれ一つやるにしても一々Excelのobject作って
解放のことも考えなきゃならんし、
もしかしたらExelVBAの優位性ってそこにあるんじゃないかと思ったんだ。
0638デフォルトの名無しさん
垢版 |
2018/05/06(日) 23:59:41.16ID:eFdUTltV
>>636
何も知らないバカは黙ってろ。
どんなコードも3行が10行になるということは

A1に"ABCD"を入れる処理がVBAだと10行になるということだぞ。
バカめ。
0640デフォルトの名無しさん
垢版 |
2018/05/07(月) 00:30:56.23ID:2GsMdZCO
というか、>>538とか>>539とか駄目だろ。
Excelファイルを扱ってるだけでExcelに適した処理じゃない。
普通、VBAだとリボンにボタン作るとかシートにボタン作って、
こういう処理した結果の集計を現ブックに書くとかするわけ。
Excel閉じた状態で起動して、終了後も閉じてて良いんなら
最初からExcelという限定された環境という前提が必要無いことになる。
0641デフォルトの名無しさん
垢版 |
2018/05/07(月) 00:36:32.19ID:ASE9lfG3
>>640
そういうコマンドを書いてシェルから実行するだけだが?

リボン()に特別な思い入れでもあるのかな
0642デフォルトの名無しさん
垢版 |
2018/05/07(月) 00:42:30.20ID:ASE9lfG3
>>640
最後の一文は重要な気付きだよ
そもそもこの業務はExcelに乗っかって作業しなきゃならんのか
という疑問は常に頭の中においておいたほうがいい
0643デフォルトの名無しさん
垢版 |
2018/05/07(月) 02:47:38.46ID:gEoc9wfl
自分が大好きなPowerShellが人気なくてスレも過疎ってるからって人が多いVBAスレを荒らしに来てる人に構いすぎでは?
0644デフォルトの名無しさん
垢版 |
2018/05/07(月) 05:33:28.01ID:MQV1S2kZ
教えていただきたいのですが、プロジェクトを表示させないようにしたいのですが、可能でしょうか?

表示用にロックだとネット上に、解除方法が出ているので客先で解除されトラブルが起きてしまったことがあるので、簡単には解除出来ないようにロックしたいと考えています。

有料ソフト購入以外で、方法がありましたら教えて下さい。
0645デフォルトの名無しさん
垢版 |
2018/05/07(月) 05:59:56.96ID:CphezDVS
>>619
なんで同じような話をクドクド繰り返すかな、ボケ爺かよw

> で、VBAでダメってことが殆ど無いんだよ。
お前が何を言っても実例出てる時点で説得力ゼロやんw
0646デフォルトの名無しさん
垢版 |
2018/05/07(月) 06:12:26.22ID:CphezDVS
>>644
解除するなって言う契約にしとおいてトラブルへの対応はしなきゃいいだけ
ロック破るって言うのは誤操作とかとは違うし破られないように頑張ってもイタチごっこになるだけ
0647デフォルトの名無しさん
垢版 |
2018/05/07(月) 06:47:40.77ID:TUSemmHn
GW明けたね! 静かになってくれるといいけど。
荒しには言わせといて、もうこっちの人も相手しなきゃいいのに。
最初は建設的な話もあるかもと見ていたけど、鬱憤晴らしてる
だけだって、自ら言うたしね。
スレ住人への迷惑も顧みず、俺スゴかろな自慰野郎相手に
するだけ無駄。面白がられてるだけやん。
スレ違いもいいとこ。別スレたてて、そっちでやれ!

双方、補い合うような建設的な内容なら歓迎。
自分はVBAに固執するつもりはないからね。
0648デフォルトの名無しさん
垢版 |
2018/05/07(月) 06:48:47.53ID:VrG5Qe7h
纏めると
EXCELが絡まない処理は他の言語が有利になることが多いし
EXCELを操作する場合はやはりVBAが有利になることが多いってことだよね。

でもEXCELが絡まなくてVBAも要らないような処理なら
別にこのスレで論じなくてもいいんじゃない?
このスレには全く関係ないってことになるから。
0649デフォルトの名無しさん
垢版 |
2018/05/07(月) 07:51:50.63ID:ASE9lfG3
>>648
いや
excelを操作する場合でも他言語が有利
殆ど差がつかないような短い処理はあるけどそんな短い処理で比較してもなぁって感じ
0650デフォルトの名無しさん
垢版 |
2018/05/07(月) 08:12:53.75ID:mqdJhqhB
>>649
じゃ>>633のコードをSPで書いてみて。
殆ど差がつかないというなら1行からそんなに増える訳ではないという認識でいいんだよね?
0651デフォルトの名無しさん
垢版 |
2018/05/07(月) 08:14:03.54ID:UbBhnDZY
>>648
> EXCELが絡まない処理は他の言語が有利になることが多いし
>>538とかを見てもそう言い張るならもうなーんも言えねーわ w
0652デフォルトの名無しさん
垢版 |
2018/05/07(月) 08:20:16.16ID:UbBhnDZY
>>650
SPがなにものか知らんけどPowerShellのことかな?
PSにはThisWorkbookの概念はないから$Bookに入ってるとして
$Book.Sheets(1).Cells.Item(1,1).Value() = 'Hello World!'
って書くだけだよ
0656デフォルトの名無しさん
垢版 |
2018/05/07(月) 09:21:28.09ID:4C462BWK
>>654
いるよ。それ入れて3行。
じゃその3行から大幅に変わらないって認識でいいんだよね?
PSでどうなるの?
0657デフォルトの名無しさん
垢版 |
2018/05/07(月) 09:46:41.71ID:wvkiQNF2
>>655
お、となると前に聞いた .FreezePanes は、PSではどう書けばいいんでしょうか。単純に知りたい。
0658デフォルトの名無しさん
垢版 |
2018/05/07(月) 09:49:14.89ID:EjUFI/+N
スレチだけどVBA開発者の意見を聞きたいです。
Salesforce導入したらExcel(VBA)の仕事がなくなる可能性はある?
0662デフォルトの名無しさん
垢版 |
2018/05/07(月) 12:00:46.03ID:6Bvegpcl
Salesforceのサポート先にきいてもSalesforceは素晴らしいと言われるだけ。(確認済)
データ分析などをやってるVBA開発者は素データの取扱をよく知ってる。
Salesforce導入賛成した人はデータの取扱をよくわかってないこともある。
(システム構築の問題かな?)
Salesforce導入したら、VBA開発者としては困る事もある。
0664デフォルトの名無しさん
垢版 |
2018/05/07(月) 12:06:01.39
何でもSalesforceで完結できるかというと、ライセンス費用との兼ね合いでそうもいかなかったりする
必要なところはVBAからSalesforceのAPIを使えるようにすれば問題なし(やったことないからできるか知らんけど)
0665デフォルトの名無しさん
垢版 |
2018/05/07(月) 12:29:01.64ID:UbBhnDZY
>>653
Excel.Application とか対象のブックを開く処理のことを言ってるならそれらは余分に必要
ただそのコードって>>538見ればわかるけど数行だから大変と言うほどのことはない

>>657
ここら辺はVBAと同様
なぜかActivateしないとダメなんだよね
改善してほしい
0666デフォルトの名無しさん
垢版 |
2018/05/07(月) 12:31:02.56ID:0Psz8IKZ
五年後、十年後を見据えることも大事
素晴らしいから実装 三年後に開発元が撤退 とかザラにある世界
グレシャムの法則はこの業界でも当てはまる
ポンコツでも安心して乗り続けられるかどうか

ピラミッドの上の方三分の一が対象か、底の方三分の一なのか
下の方はVBAでもいい  上の方相手に生涯ストレス溜め続けて生きてけばいいさ
0668デフォルトの名無しさん
垢版 |
2018/05/07(月) 12:48:25.32ID:fqL3E9j7
>>665
数行って3行が何行に膨れ上がるの?
大したことないかどうかはそれが出てからじゃないと判断つかないよね
0669デフォルトの名無しさん
垢版 |
2018/05/07(月) 12:51:09.04ID:UbBhnDZY
>>668
> 大したことないかどうかはそれが出てからじゃないと判断つかないよね
バカはこれだから... w
0670デフォルトの名無しさん
垢版 |
2018/05/07(月) 13:02:09.19ID:fqL3E9j7
>>669
だってそっちのコードはインスタンスの解放とか記述されてないし判断材料にならないよ。
で、どうなるの?
0671デフォルトの名無しさん
垢版 |
2018/05/07(月) 16:05:51.47ID:aAWzZZt9
>>124で質問した者です
色々試したところ、3行目だから問題があるのではなく半角カタカナが含まれている行があると、その次の行の冒頭の文字が削れるようでした
(半角カナと同じ文字数削れる?)

ADODB.streamをクリエイトオブジェクトして、CharsetにISO-2022-JPを指定して読み込んでいます。入力ファイルは、サクラエディタでJISを指定してポチポチ作成しています。

ちなみに、.ReadTextの引数に-2を与えて1行ずつ読み込むと発生しますが、-1を与えてファイル全体を一括読み込みするとこの現象は起こりません

入力ファイル内容
(スマホなので半角カナが打てないのですが、2行目のアイウエオは半角だと思ってください)
------------------------------------
01234567890123456789
アイウエオ
01234567890123456789
------------------------------------

1行ずつ読み込んでデバッグプリントした結果(スマホなので半角カナが打てないのですが、2行目のアイウエオは半角だと思ってください)
------------------------------------
01234567890123456789
アイウエオ
567890123456789
------------------------------------
0673671
垢版 |
2018/05/07(月) 17:15:34.67ID:aAWzZZt9
スミマセン。事象だけを書いて質問をしていませんでした。

単純に、ISO-2022-JPが半角カナをフォローしてないから起きる問題だと思うのですが
半角カナが文字化けするのではなく次の行に影響を及ぼすという形で発現する理由が分からないので、そよあたり何が起きているのか心当たりある方いませんか?ということです。
VBA質問の範疇外でしたら申し訳ないです。
0674デフォルトの名無しさん
垢版 |
2018/05/07(月) 18:00:50.93ID:wAes3dqf
ADOの問題でEXCELもVBAも関係ないだろ
想像すると、2行目で10バイトのバッファを用意して読み込んでるんじゃね

なんにしても不正なファイル読んでるんだから結果に文句言うべきじゃない

つかその半角カナって文字コードどうなってるんだ
0675デフォルトの名無しさん
垢版 |
2018/05/07(月) 18:01:50.46ID:lTkuR+eK
excel開いてんならこれかな

[Runtime.InteropServices.Marshal]::BindToMoniker($bookPath).Sheets(1).Cells.Item(1, 1).Value() = "hello, world"

VBAは3行、PSは1行だったね
0676デフォルトの名無しさん
垢版 |
2018/05/07(月) 18:34:49.37ID:aDF35JTf
GW明けたらめっちゃスレ伸びてて笑う

>>397
晒した。3行は盛り過ぎだったわすまんな
http://codepad.org/vIuvxaqE

これじゃアレなんでもっと差が出るスクリプトも晒すわ
http://codepad.org/tCLxVNML
用意したリストに基づいて置換するスクリプト
よくある操作だけどこういう文字列操作をVBAじゃ絶対にやりたくない
0679デフォルトの名無しさん
垢版 |
2018/05/07(月) 19:31:19.81ID:UbBhnDZY
>>677
>>536でも使ってるけど正規表現は VBScript.RegExp 使えばいいので言うほど面倒でもない
むしろヒアドキュメントとか文字列中に結果を埋め込んだりするのが面倒
0680デフォルトの名無しさん
垢版 |
2018/05/07(月) 19:34:03.20ID:aDF35JTf
正規表現以外にも連想配列が貧弱だとかそもそも配列リテラルが無いからリストを扱う気にならないだとか文字列に対する関数が少なすぎるだとか色々
0681デフォルトの名無しさん
垢版 |
2018/05/07(月) 19:36:11.20ID:yKJe0Enc
は?
そんなん短く書けるように関数を自分で作ればいいだけだろ
なんでも与えられたものばかり使ってたらすぐに腕が落ちるぞ
0682デフォルトの名無しさん
垢版 |
2018/05/07(月) 19:48:01.62ID:aDF35JTf
僕はコードを書いて悦に浸りたいのではなく目的を達成したいだけなのでそういうのはいいです
0683デフォルトの名無しさん
垢版 |
2018/05/07(月) 19:51:25.78ID:hiYeL2zr
他の言語にあってVBAに足りないものあるいはVBAだと使いにくいもの

正規表現
コレクション
集合処理
シリアライズ
インターフェース
名前空間
パッケージ
ジェネリック
非同期処理
並列処理
メタプログラミング
ネットワーク
ディスクIO
ラムダ
return
モダン文法

挙げきれないなこれ

>>675
VBAさんまた負けたのか...
0684デフォルトの名無しさん
垢版 |
2018/05/07(月) 20:29:03.81ID:vRUpm5v3
>>679
(肯定・否定の)後読みがないんだよなあ・・・
0685デフォルトの名無しさん
垢版 |
2018/05/07(月) 22:21:34.33ID:YSySr1F0
>>675
もう一度聞くけどPSでExcel操作を行う場合は
COMを使ってるわけではないの?
開きっぱなしのしか使えないカタワなロジックはまぁいいとして
メモリ解放をいつも全く記述していないのは何で?
0686デフォルトの名無しさん
垢版 |
2018/05/07(月) 22:22:36.97ID:G9Gl/19p
>>642
逆。
Excelに乗っかって処理するのがVBAでコード書く場合の普通だ。
だから乗っかって無いのは、そもそもイレギュラーなんだ。

で、VBAについて論じるなら、そういうイレギュラーをメインに論じられても困ると最初から言ってる。
0688デフォルトの名無しさん
垢版 |
2018/05/07(月) 22:25:56.82ID:M2OABdlM
そんなんGCが勝手にやってくれるからだろタコスケ
頭の中何年前で止まってんだよ賞味期限切れてんじゃねえの
0689デフォルトの名無しさん
垢版 |
2018/05/07(月) 22:27:24.84ID:G9Gl/19p
>>649
Excelを操作するとは、Excelファイルを扱うだけなのは除外すべき。
そんな処理を普通ExcelVBAで書くことは無いからな。
0691デフォルトの名無しさん
垢版 |
2018/05/07(月) 22:31:37.26ID:YSySr1F0
ま、外部からEXCELでテトリス作って動かせるっていうなら興味もわくけど
どっちでも出来ることならどっちでもいい。
0692デフォルトの名無しさん
垢版 |
2018/05/07(月) 22:46:29.50ID:G9Gl/19p
>>676
アホらしいので内容も見ずに書くけど、そういう処理ってVBAで書くことが余り無い。
それに、多分どうでも良いレベルで長くなってるだけだろうと推測する。

昔、VB6での話だがデフォルトプリンタのポ−トを変更するプログラムを書いた時に物凄く面倒な処理になったがDelphiでは簡単なのを見てDelphiは良いなと思った。
VB6ではGetPrinterやSetPrinterとCopyMemory使ってPRINTER_INFO_2構造体を操作する必要があったがDelphiではTプリンタオブジェクトなるものでポートがそのまま変更できた。

こういう場合は確かにDelphiの利点だろう。
もっとも、それが言語の優劣に繋がるわけじゃ無いが。
0693デフォルトの名無しさん
垢版 |
2018/05/07(月) 22:55:14.88ID:6opRZcm/
要するにおまえら大昔にperlでエクセルいじれるスゲーって言ってたおじいちゃん達の足跡を辿るおこちゃま達なんやなw
0694デフォルトの名無しさん
垢版 |
2018/05/07(月) 22:59:02.03ID:YSySr1F0
>>688
COM使ってるならGC幾ら呼び出したところで
解放されるわけないだろタコスケ
そんなかで捕まえてるブックやらシートやらいつ解放すんだよ
GCは参照先がなくなって初めて走ったときに解放されんだよ
0695デフォルトの名無しさん
垢版 |
2018/05/07(月) 23:00:24.60ID:M2OABdlM
>>692
「excel 置換 リスト」でググったら「マクロ」がサジェストされるぐらい沢山の人が人がVBAでマクロ作って公開してる処理なんですがそれは

長文書き散らしといて実際コード貼られたらよくわかんなーいとか馬鹿の極みだな

適切なオブジェクトが用意されてるのも思いっきり言語の優劣につながる話じゃねーか
0696デフォルトの名無しさん
垢版 |
2018/05/07(月) 23:11:55.30ID:M2OABdlM
>>694
PSだと.net使ってるから解放されないんだな

rubyとかpythonだとGC走った時にcomまで解放してくれるから知らんかったわ
0697デフォルトの名無しさん
垢版 |
2018/05/07(月) 23:35:14.94ID:J4V/A43+
おいおい解放されないとか嘘ついてまでVBAをよいしょしたいのかよ
.NETでCOMをインスタンス化するとRCWってプロキシが生成されんだよ
で、このRCWがCOMインスタンス本体の参照カウントの面倒見てくれんの
RCWはGCで回収されたら参照カウントを減らしてくれる
いちいち解放を書く必要はないんだわ
0698デフォルトの名無しさん
垢版 |
2018/05/07(月) 23:42:48.04ID:M2OABdlM
>>697
やっぱり解放されるんだ
最近の言語でその辺の面倒みないとかあり得ないよなと思いつつ調べ方悪くてわからんかった
ありがとう
0699デフォルトの名無しさん
垢版 |
2018/05/07(月) 23:51:38.06ID:J4V/A43+
>>686
VBAだったらExcelに乗っかるしかないのは当たり前
そういうことじゃない
何かの目的があってプログラムを書くときにそもそもExcelでやるべきなのか?と自問自答することが大事ということ
0701デフォルトの名無しさん
垢版 |
2018/05/08(火) 00:14:14.44ID:B6wkNjU9
>>698
Excelのプロセス終了条件は正しくQuitされてる事とCOMインスタンスが解放されてる事の2つ
GCでCOM参照がクリアされてもQuitされていなければExcelは生き続ける
その仕様を失念してハマったマヌケ達が.NETではCOMが自動で解放されないなどという悪質なデマを流したんだろうね
0703デフォルトの名無しさん
垢版 |
2018/05/08(火) 00:32:38.38ID:RahqJUTb
>>701
アホかwそもそもプロセス終了時にGCは動かんでw
0707デフォルトの名無しさん
垢版 |
2018/05/08(火) 07:14:18.75ID:wTVQYHt7
>>706
面倒くさいねぇ
だから>>675はExcelが開いていることに言及してたのか
Excelを開いたら閉じることも想定されるから
閉じて終了させようとしてもObject捕まえっぱなしで
閉じて終了させられないことがバレちゃうもんねぇ
0709デフォルトの名無しさん
垢版 |
2018/05/08(火) 09:48:53.93ID:JB+YJbtj
>>708
そのリンク先のさらにPart1のリンク先見て見なよ
完璧に解放するにはここまでやらないといけないんだねぇ
ああ面倒くさい
0710デフォルトの名無しさん
垢版 |
2018/05/08(火) 12:02:14.08ID:8DKSnjuv
>>706
それが問題になるのは使用済インスタンスが長期間残る可能性が高いデスクトップアプリやサーバーアプリだな
スクリプトは最短距離で目的を達成して速やかにプロセスを終了するのが基本なので使い終わったらすぐにGCやWindowsにリソースをクリーンナップしてもらえるので問題ないんだわ
0711デフォルトの名無しさん
垢版 |
2018/05/08(火) 12:12:49.21ID:fJWr41VM
>>710
うんうんそれでスクリプト処理で開いたブックは
スクリプト内の処理で捕まったままになって
閉じられずにばんばん開きっぱなしになって残るんだねぇ

ああ恐ろしい
0712デフォルトの名無しさん
垢版 |
2018/05/08(火) 12:14:31.83ID:q/XYqxRj
>>710
問題あるって話が書いてあるんやがw
おまえホンマに馬鹿やなw
0714デフォルトの名無しさん
垢版 |
2018/05/08(火) 12:24:26.03ID:LVc4+FR0
>>709, >>711-712
人の話を聞けない人?
>>538程度ならExcelが残ったりしない
あとブックとかのクローズとオブジェクトの解放とかは違う話だからごっちゃにしてる時点でなにもわかってないことがバレバレですよ w
0715デフォルトの名無しさん
垢版 |
2018/05/08(火) 12:26:06.82ID:q/XYqxRj
正常に終了しても明示的に解放しない限りCOMへの参照が破棄される保証はない
とゆうおはなしやでw
0716デフォルトの名無しさん
垢版 |
2018/05/08(火) 12:28:02.90ID:OM34GclB
>>711
は?
スクリプトならQuitが基本だから残らんよ
>>675のように既存のインスタンスに接続したいかつとじたくないという要求があれば残す
それだけ

>>712
ホンモノのバカって検証しないんだよね
少なくとも俺はサーバーでExcel Automationを使うシステムを何度も経験してるが確実なQuitとGCのおかげでリンク先のようなトラブルに煩わされた事はない
何年も安定稼働している実績がある
0717デフォルトの名無しさん
垢版 |
2018/05/08(火) 12:38:19.90ID:fJWr41VM
>>714
>>716
うんうん
「〜によってファイルが開かれているため、操作を完了できません。」なんてエラーメッセージは
見たこともないんだろうねぇ

大層な10年間だねぇ
0718デフォルトの名無しさん
垢版 |
2018/05/08(火) 12:55:25.46ID:q/XYqxRj
>>716
エクセルのインスタンスが残ってもメモリを圧迫するくらいやからな
おまえが気がついとらんだけやろw
そもそもプロセスの終了時にGCは動かんと言っておろうがw
0720デフォルトの名無しさん
垢版 |
2018/05/08(火) 13:13:01.29ID:fJWr41VM
これさぁ
よくある処理で読み込み終わったファイルは別フォルダに移動するときに解放されてなかったら一発で終わりだよねぇ

何年間もやっててそういうのに当たらなかったってラッキーだよねぇ
0722デフォルトの名無しさん
垢版 |
2018/05/08(火) 17:48:39.27ID:RLDOeZ1j
>>717, 720
そんなマヌケなエラーはExcel開きっぱなしVBAerの専売特許だろw

>>718
論外

>>721
ログを見るとわかるがVBAerは質問にろくな回答を変えしてない
PSerの方が解答率が高いという意味がわからない状況になってる
VBAerもっと頑張れよ
0725デフォルトの名無しさん
垢版 |
2018/05/08(火) 18:47:27.59ID:0Wckg3pR
>>722
へー
自分がマヌケなのをVBAやってる人に転嫁してVBAやってる人に喧嘩売るんだぁ
VBA自体分からない人がいつまでこのスレで暴れ回って居座っていられるかねぇ
0727デフォルトの名無しさん
垢版 |
2018/05/08(火) 19:12:51.48ID:xEIBE+xH
PSと言えばポストスクリプト
でも頭の中にあるのはパーフェクトソルジャー
0729デフォルトの名無しさん
垢版 |
2018/05/08(火) 19:51:44.12ID:26d0nyKi
築二十年の人ン家へ勝手に上がり込んで、トイレが遠いだのオール電化じゃないだの
床暖房じゃないだの言い募ってるのと一緒だな

ウォシュレットとかIHとかソーラーとかをつぶさに語る前に、自分が居座り強盗並みの行為を
してるのには気付けないのかな  勝手に上がり込んだのはマズイとは思わないのかな
0731デフォルトの名無しさん
垢版 |
2018/05/08(火) 19:55:04.51ID:nQl5yvJD
>>729
むしろトイレが遠くてもオール電化じゃなくても快適だもーん
ってやせ我慢してるだけにしか見えん w
0733デフォルトの名無しさん
垢版 |
2018/05/08(火) 20:07:26.39ID:3X1kagHT
結局VBAの質問スレに何しに来てるんだろうなぁこいつら
所詮は本来のスレで変なことばっかり言って追い出されて
仕方なく居場所を求めて荒らし回ってる口だろうなぁ


ああ見苦しい
0734デフォルトの名無しさん
垢版 |
2018/05/08(火) 20:52:10.15ID:26d0nyKi
>>731
邪魔だ っつってんの 迷惑だと明言してる 喩えも判らんレベルか
わかりやすい例えにしたらガッツリ食い付いてくるんだな
グレードアップする時は自ら選びにいくわ 助言はその時に求めるわ、みずから
戦後の押し売りか トランクにゴム紐入れて売り歩く寅さんか
面白いこと言って見ろよ、ほら

思わず苦笑いするようなチャチャなら読み飛ばすが、連続居座りは御免被る
0735デフォルトの名無しさん
垢版 |
2018/05/08(火) 21:19:47.00ID:OdLjkejS
勝手にスレを私物化してるお前も十分迷惑だよ
わざわざ長文で反応してんじゃねえよてめぇも出てけ
0736デフォルトの名無しさん
垢版 |
2018/05/08(火) 21:44:06.06ID:J/XX4wKL
複数条件が重なるとどういった書き方をするのが良いのかわからず混乱してしまいます、何か良い方法がありましたら教えてください
例えば、変数x,y,zがありそれぞれ1-10までの数字が入る可能性があり、x,y,zそれぞれの値が違うと処理も違います
例えばx,y,zが1,1,1だと処理A 1,1,2だと処理B 1,2,1だと処理Kといった様子です
case文をネストして書いてしまっても良いんでしょうか?
0738デフォルトの名無しさん
垢版 |
2018/05/08(火) 22:05:22.53ID:UggVkA90
>>736
言葉通りにとると1000通りの分岐になるけど、
そんなことはないんでしょ?
おおまかなパターンとしてはどうなってるの?
0739デフォルトの名無しさん
垢版 |
2018/05/08(火) 22:10:52.74ID:RuTuN8AF
>>736
処理Xがx,y,zを変数として一般化できそうなら頑張って一般化して書く方法を考える

x,y,zによってどんな処理になるか論理的に決定できるなら
x,y,z -> 処理X を返すような関数を先に作って処理ごとにcaseで分岐

論理的に決定できない場合はkeyを"xyz"、valueが"処理X"みたいなDictionaryを用意する

x,y,zの組み合わせごとに処理が全部異なるなら、
index = 1000^(x-1) + 100^(y-1) + 10^(z-1)
みたいにindexを計算してindexごとにcaseで分岐させる
(10^3通りになってありえないケースだと思うけど)

思いつくのはこんなもん
caseネストするのは頭おかしなるで
0740デフォルトの名無しさん
垢版 |
2018/05/08(火) 22:15:38.92ID:RuTuN8AF
最後のindex計算するのは意味ねえな忘れてくれ
0741デフォルトの名無しさん
垢版 |
2018/05/08(火) 22:19:59.22ID:fJWr41VM
>>736
後ろに続く処理次第だねぇ
一つの役割内で短く細かく纏まる分岐ならそれでいいし
分岐先がちょっと大きくて役割も違う処理だったら関数やメソッドにして呼んでやればいいし
根幹部分で大きな処理に沢山分かれるようなら
分岐を行うところも関数化して処理番号を返却するようにして
その番号に該当する関数名を前もってコレクションに突っ込んでおいて
引っ張り出してCallByNameで呼ぶ方法もあるよぉ

他にもあるけどVBAではこのくらいが丁度いいと思うなぁ
0742デフォルトの名無しさん
垢版 |
2018/05/08(火) 22:27:45.23ID:X/JD7QJy
>>734
> わかりやすい例えにしたらガッツリ食い付いてくるんだな
アホな喩えをバカにされてるだけだろ
0743デフォルトの名無しさん
垢版 |
2018/05/08(火) 22:54:19.84
>>736
やりたい処理内容によるけど、こういう書き方をするとすっきり書けるかも

Dim sid As String

sid = CStr(x) & “-” & CStr(y) & “-” & CStr(z)

Select Case True
 Case sid Like “1-1-1”
  Call ProcA
 Case sid Like “1-1-2”
  Call ProcB
 Case sid Like “1-2-1”
  Call ProcK
 Case sid Like “1-3-*”
  Call ProcC
 Case sid Like “[4,5,6]-[!1,2,3]-*”
  Call ProcD
 Case Else
  Call ProcZ
End Select

パターンマッチングの記法はLike演算子のヘルプを見てね
0744デフォルトの名無しさん
垢版 |
2018/05/08(火) 23:00:52.76
>>743
あとは、

> sid = CStr(x) & “-” & CStr(y) & “-” & CStr(z)

sid = Format(x, “00”) & “-” & Format(y, “00”) & “-” & Format(z, “00”)
にして
“01-02-03” の形式にしたほうが

sid Like “##-15-##”
sid Like “9#-##-##”

みたいに書けて、より扱いやすいかも
0745デフォルトの名無しさん
垢版 |
2018/05/08(火) 23:27:07.19ID:J/XX4wKL
皆さんありがとうございます
レス参考に考えてみます

後から小出しに条件変えるのはどうかと思ったんですが、例が少しアレだったのでもう少し状況説明します

x,y,z全て文字列型でxは4通り,yは12通り,zは18通り、後続処理はメール送信です
使用する既定の本文テンプレートのどれを使うかを変数で判定してます
テンプレート自体は8通りで変数の組み合わせによってはメール送信しない場合もあります
ただ規則性はほとんど無く、例ですが1[1-3]1はテンプレA。 1[4-6]1はテンプレB。 171は未送信。 181はテンプレAのようにごちゃごちゃしてます。

ただxが3.4の時は処理がそれぞれ固定の為、早期リターン?で処理を書き、xが1,2の場合は全部羅列しようかと思ってます
0746デフォルトの名無しさん
垢版 |
2018/05/08(火) 23:35:13.46ID:FrjuwbIK
>>695
いや、貼られたコード見てない。
アホらしいので。

>>699
正にその通り。
しかし、VBAが使われる場面を考えれば当然Excelでやるべき場面なわけ。
君がExcelである必要無いと言っても、仕事では他のExcel文書とやり取りしたり、その処理以外に関数とかExcelの便利機能も使うわけで。
組む処理以外の面でExcelであるべきということはたくさんある。

>>705
Excel起動せずにVBAを動かすのが普通か?

どれも共通してるのはPSやRubyの例はバッチ処理だろうけどVBAで想定されてるのはバッチ処理ではないということ。
あるいはバッチ処理もするけど、それ単体で使われることは想定されてない。
単体で使われる処理"も"書けるけど、Excel使った業務に沿って対応する処理を書けるのは有利だ。
それで、業務に沿ってExcel開いた状態で実行する処理についてはVBA以外だと不利じゃないの?ということ。

例えばADOでDBに繋げて取ってきたデータをそのExcel上でその場で見れるわけ。
もちろんC#とかでExcelを介在させないで組むなんてのもありだがExcelは会社のPCなら誰のPCにも入っているし、別のデータ(当然Excelのデータ)ともやり取りしやすい。
というか、開いた状態で、別のデータも表示されてる状態からのスタートだったりするからやり取りじゃないか。
0747デフォルトの名無しさん
垢版 |
2018/05/08(火) 23:42:26.20ID:FrjuwbIK
>>707
違う。そういう意味合いで開いた状態について言及したわけじゃない。
実際、VBAで書く処理はバッチ処理じゃなくて今表示されてる表に対しての処理だとか、バッチ処理でも今表示されてる表にバッチ処理の結果を組み合わせたりの場合が普通で、単純なバッチ処理なんて殆ど組むことが無い。
0749デフォルトの名無しさん
垢版 |
2018/05/09(水) 00:19:49.71ID:w1k9kHe1
なんか「少なくともExcel上では〜」とか縄張り争いみたいになってるね。
自分はExcelに限らずVBA使ってるよ。例えばOutlook。これは常に立ち上がってるから。
Outlookのオブジェクトモデルなんて知らないし、メールとは全然関係ない処理で使う。
イミディエイトウィンドウをシェル代わりにしてワンライナーを書くのさ。
ExcelはIOが多めになったときにシートを使うくらいかな。
バッチ的な処理ももちろんVBAだ。
0750デフォルトの名無しさん
垢版 |
2018/05/09(水) 00:35:13.23
>>749
それは個人の趣味の範疇だから好きにすればって感じ
0751デフォルトの名無しさん
垢版 |
2018/05/09(水) 02:52:59.97ID:fZf43uAK
なんでこんなくだらない話をいつまでも続けてるのかわからないけど
ここはあなた達が何をしてるか発表する場じゃなくて、わからない人が質問をしてわかる人がそれに答える場なので
どれだけ良いコードが書けようがそんな事もわからないんじゃまともな仕事はできそうにないですね
0753デフォルトの名無しさん
垢版 |
2018/05/09(水) 04:08:41.95ID:DtKw0WOF
連休が終わったら話も終わるだろうと思って見てたけど、さてはお前らまともに仕事してないエアプログラマーだな?
0754デフォルトの名無しさん
垢版 |
2018/05/09(水) 05:53:37.33ID:SERID1ot
変なのが来たときみんな触るからいけないんだよ
NGIDにしといて誰もレスつけなければそのうち勝手に消える
0755デフォルトの名無しさん
垢版 |
2018/05/09(水) 06:04:55.40ID:SavMNDDu
>>746
> Excel起動せずにVBAを動かすのが普通か?
だからお前が普通と思うかどうかはどうでもいい
そう言うことをやりたい>>529がいてPSの方が楽に実現できると言う事実があるだけ

> 例えばADOでDBに繋げて取ってきたデータをそのExcel上でその場で見れるわけ。
PSでもC#でもExcel起動して表示したままにするとか普通にできるぞ
まさかそんなことも知らんのか?
0756デフォルトの名無しさん
垢版 |
2018/05/09(水) 06:57:27.89ID:SERID1ot
>>755
はいはいPSすげーすげー

PSを賞賛するスレとかPSerが傷を舐め合うスレとか立ててそっちでやれや
0759デフォルトの名無しさん
垢版 |
2018/05/09(水) 08:48:12.99ID:u9lv0tHz
>>745
スパムメール
0760デフォルトの名無しさん
垢版 |
2018/05/09(水) 08:50:09.41ID:Yu+xGlRu
どうやらExcel起動してPSで動かすことも可能という事がわかってない奴がいるらしい
0761デフォルトの名無しさん
垢版 |
2018/05/09(水) 10:13:15.95ID:idFoGogH
>>760
あと、どんなことができますか?
VBScriptみたいにVBA内に記述できるとうれしいのですが、、、
0762デフォルトの名無しさん
垢版 |
2018/05/09(水) 10:27:49.21ID:Yu+xGlRu
>>761
何を言っているのかよくわからない
VBScriptだったらGetObjectですでに開いてるExcelのインスタンス取得してどうとでも操作できるけど
VBA内に記述????
0763デフォルトの名無しさん
垢版 |
2018/05/09(水) 11:03:26.74ID:idFoGogH
>>762
いやぁ、VBScriptってCreateObjectでVBE内に直書きできるじゃないですか。
PSも似たような感じで中にかけると便利だなと思って。
PS1ファイルに記述するとして、たとえばExcel内のボタンやEventに割り付けるときって
具体的にどのようにするのでしょうか。
0764デフォルトの名無しさん
垢版 |
2018/05/09(水) 11:43:28.49ID:Yu+xGlRu
>>763
powershellがcomサーバーに登録されてないから無理だね
WScript.Shellで無理やりできなくもなさそうだけど

ボタンやユーザー定義ワークシート関数とかのイベントハンドラが出てくるときは今のところVBAを使うしかない
以前のレスでも散々言われてるVBAの唯一のアドバンテージ
0765デフォルトの名無しさん
垢版 |
2018/05/09(水) 11:57:17.22ID:idFoGogH
>>764
なるほど、外のファイルを直接叩くんですか。
中から呼ぶとすると、Shellコマンドで呼ぶ感じですか?

ちなみに管理ユーザ以外でPS1ファイル実行する際、Set-ExecutionPolicyでしたっけ、
これ設定されていない端末では一般ユーザは実行できましたっけ?
0768デフォルトの名無しさん
垢版 |
2018/05/09(水) 12:25:06.10ID:idFoGogH
>>766
冷たいなぁ。もっとやさしくPowerShell啓蒙してくださいよ。
みんなにおすすめしたいから、わざわざこのスレにこられているんですよね?
Excel操作に詳しいPowerShell関連サイトでおすすめがあったら教えてください。
VBAとの比較とかあるとうれしいです。
0771デフォルトの名無しさん
垢版 |
2018/05/09(水) 12:31:39.91ID:idFoGogH
じゃぁ、話題を変えてVBAの質問です。
教えてください。
1.4万行の検索範囲セルx1.4万行の検索値の単純マッチングをMatch関数で行った場合、
約36secかかります。これを高速化しようと思い、前者TableをVariant型に投げ込んで
検索したところ、結果120secに延長してしまいました。
配列上で処理したほうがより高速に動くという認識だったのですが、どのように解釈すれば
よいでしょうか?
検索値、値はStringです。
0773デフォルトの名無しさん
垢版 |
2018/05/09(水) 12:43:03.63ID:QVPn4o2T
後釣りの意味がわからないならググれ
どのレスのこと言ってるのかわからないならこのスレを「釣」で検索
0774デフォルトの名無しさん
垢版 |
2018/05/09(水) 12:56:39.40ID:idFoGogH
>>772
検索範囲を昇順ソートしてみました。結果、、
 ・Cell範囲の場合: 43sec
 ・配列の場合: 127sec
ん? 更に延びた。さっきのはキャッシュでも効いてたのかな?
Stringの中身は "ID-枝番" 書式の文字列です。
0776デフォルトの名無しさん
垢版 |
2018/05/09(水) 15:17:53.88ID:eDrKJyoy
初めまして。共有保護について教えていただけませんでしょうか。
共有保護解除→マクロ処理終了→共有保護設定をする方法を作ってみましたが問題がありました。
「On Error Goto」を入れるとエラー発生→共有保護設定後、一回閉じてまた開くと「共有」が消えてしまう。
色々試したけどダメでした。(「On Error Goto」を設定しないとうまくいく。)

Sub 共有保護解除設定()
Dim x As String:x=1
On Error GoTo myError
Application.DisplayAlerts = False
Application.ScreenUpdating = False
ActiveWorkbook.UnprotectSharing Sharingpassword:="aaa"

Do: Sheets( x ).Delete: x = x + 1: Loop

  myError:

  ActiveWorkbook.ProtectSharing Sharingpassword:="aaa"

End Sub
0778デフォルトの名無しさん
垢版 |
2018/05/09(水) 18:16:21.44ID:moyciPZH
>>765
実行ポリシーにはスコープという概念がある
スコープはマシン、ユーザー、プロセスがある
ユーザー、プロセスの実行ポリシー変更は管理者権限不要
ユーザースコープの実行ポリシーを変更するのがベターだね

>>763
コマンドプロンプトみたいにVBSファイルを指定して実行できるし
スクリプティング環境をComインスタンスとして生成することもできる
直書きというのは何のこと言ってるのかわからんな

需要がないからやったことないけれどexcelのイベントにCLRのハンドラを登録することは可能だよ
オススメはしない
0779デフォルトの名無しさん
垢版 |
2018/05/09(水) 19:46:24.05ID:wUvS2pdo
>>771
VBAは基本的にシングルスレッドで動く
今のワークシート関数とかは、条件が整えばマルチスレッドで動く

なので、必ずしもVBAの方が早くなるとは限らんのだよ
Match関数がどうなってるかは知らんがな
0782デフォルトの名無しさん
垢版 |
2018/05/09(水) 20:59:13.98ID:HhkRUfwj
このように答えがついても反応しない質問者がよくいるからQA以外の話題で盛り上がる。
ま、興味深い話題ならいいんだけどね。
0784デフォルトの名無しさん
垢版 |
2018/05/09(水) 21:43:05.88
>>776
ActiveWorkbook.ProtectSharing の後に
ActiveWorkbook.ExclusiveAccess を入れてみれば?

知らんけど
0787デフォルトの名無しさん
垢版 |
2018/05/09(水) 21:55:25.27ID:w1k9kHe1
>>786
配列のマッチングはどうやって書いたの?
0788デフォルトの名無しさん
垢版 |
2018/05/09(水) 21:57:44.24ID:idFoGogH
>>780
Match使うときはたいてい絶対一致でつかってました。
クロスマッチになっちゃうんでしたっけ?
ここのカキコみて、以前、高速Lookupは使ったことがあるのですが、、
半分うろ覚えです。
リストを昇順ソートして、第3引数を 1 にするだけじゃ
だめですよね。変な答えが返ってきます。
0790デフォルトの名無しさん
垢版 |
2018/05/09(水) 22:14:27.61ID:idFoGogH
>>787
いろいろ省略してますが、こんな感じです。

Dim rngFdList as Range: Set rngFdList= Range( ** 以下略(調査表) **
Dim arrFdList as Variant: arrFdList = rngFdList

For each r In Range( ** 以下略(駆動表) **
 With Application
 iHit = .IfError( _
    .Match(r.value, arrFdList, 0), _
    0 _
   )
 End With

 (処理...)
Next
0791デフォルトの名無しさん
垢版 |
2018/05/09(水) 22:19:47.47ID:w1k9kHe1
>>790
なんだ、ワークシート関数を使ってるのか。
それじゃ配列処理にする意味ないな
0792デフォルトの名無しさん
垢版 |
2018/05/09(水) 22:23:25.94ID:idFoGogH
>>779
ああ、ワークシート上の関数と比較して、じゃなく、VBA上でMatch関数を使う際に
テーブルをRange指定するか、配列指定するかで速度が変わった、という話です。
これもマルチスレッドが関係します?

たぶんMatchの使い方がまずいんだと思いますが、、
0793デフォルトの名無しさん
垢版 |
2018/05/09(水) 22:25:05.08ID:idFoGogH
>>791
Matchのほうが早いかなと思って。
Forで回したほうが早いですかね?
それとももっといい方法が、、、
教えてください。
0794デフォルトの名無しさん
垢版 |
2018/05/09(水) 22:28:35.61ID:iSDGF1Po
>>783
本当だ
セミコロンで複数の命令繋げて
ご丁寧にインデントまで変えてあるから分からなかった
0795デフォルトの名無しさん
垢版 |
2018/05/09(水) 22:49:17.51ID:w1k9kHe1
>>793
>>772>>775は理解できたの?
これに反応しないからこちらからは状況がよくわからん。
0796デフォルトの名無しさん
垢版 |
2018/05/10(木) 01:15:35.99ID:/NGeWAX7
エクセル2016や2013等の新しいエクセルで追加された関数を、
2010等の下位バージョンで動作させるような、
ユーザー定義関数が書かれたVBAモジュールを配布しているサイトってありますか?
検索の仕方が悪いのか、自分では見つけられませんでした。
0797デフォルトの名無しさん
垢版 |
2018/05/10(木) 06:25:28.16ID:hUon7v2K
>>793
セルにアクセスしてループしてるじゃん。そりゃ遅いわ。
メモリ上でループすれば速くなるよ。

処理がこれだけならセル上の関数でも工夫すりゃ同じ速度出そう。
完全一致使わない方法とかで。
0798デフォルトの名無しさん
垢版 |
2018/05/10(木) 06:42:21.45ID:n6BTi4dI
>>796
ピンポイントで〇〇の関数を2010で使いたいと言うならまだしも2013/2016の関数って一言で言われてもなぁ
0799デフォルトの名無しさん
垢版 |
2018/05/10(木) 06:45:52.61
>>790
何回も検索するんならDictionary使えばいい
最初にDictionaryに登録するのにある程度時間がかかるだろうが
一回登録してしまえば検索自体は数秒もかからん
0801デフォルトの名無しさん
垢版 |
2018/05/10(木) 10:09:42.27ID:1RQmg1q/
答えがついてもろくに反応しない質問者がいるからQA以外の話題で盛り上がる

ってのは本当だな
0802デフォルトの名無しさん
垢版 |
2018/05/10(木) 10:46:30.23ID:JA/wCecl
>>776です。

>>784
ありがとうございます。
試したけどエラーになります、、、。
いろいろ調べた結果、共有設定の条件によって保存できない。
諦めます(泣)

ありがとうございました。
0803デフォルトの名無しさん
垢版 |
2018/05/10(木) 13:58:29.65ID:IeALN+vJ
>>795
二分探索は理解不十分。Matchの第3引数を0にするとバイナリサーチにはならない
んですよね。わかってないからこのザマです。ちょっと勉強してみます。
0804デフォルトの名無しさん
垢版 |
2018/05/10(木) 13:58:57.48ID:IeALN+vJ
>>797
>>797
駆動表側のこと?
今はテストなのでセル範囲だけど、実際はもっと時間のかかる別からの供給。
そしてその先にSQL処理があるので、余計なクエリを投げなくていいように篩いにかけて
おこうという意図です。
なので調査対象の表(こちらはセル範囲へ記録した履歴情報)だけでも配列に入れて
高速化しようと試みたんだけど、このザマです。
0805デフォルトの名無しさん
垢版 |
2018/05/10(木) 14:05:11.32ID:IeALN+vJ
>>797
Dicかぁ、今、ちょっと時間がとれないので、また試してみます。
早くなるかな?普通の入れ子のLoopとか、Dictionaryとか、いろいろ試してみます。
目標10sec。
0808デフォルトの名無しさん
垢版 |
2018/05/10(木) 16:51:36.95ID:jLma9UA8
>>807
それ言えば、またこちらの環境ではセキュリティがどうのこうので入れられない〜とか言い出す奴が出てくる
んで、もうExcel限定で良いっしょ。パワーシェルキチは論外としてw
0811デフォルトの名無しさん
垢版 |
2018/05/10(木) 19:14:27.72ID:39NqoQfJ
Excel VBAで悪意のあるもの作るには本人の意思が必要。
外部ソフト入れるなら意図しないものが混入する可能性がある。
これぐらい理解できないのか?
0814デフォルトの名無しさん
垢版 |
2018/05/10(木) 21:33:49.65ID:n6BTi4dI
>>811
怪しいサイトからダウンロードするならまだわかるけどメジャーなオプソでそんなコードが見つかったら祭りになるわ w
0815デフォルトの名無しさん
垢版 |
2018/05/10(木) 21:36:46.67ID:w2ga1e/f
EXCELはWebシステムみたいに外部と繋がってないから
比較的被害は小さくて済むよね

でも以前仕事場で
内部にファイル勝手に消えたり
外部接続の無い環境でウイルスらしきものが見つかったりしたことがあって
上の人から秘密裏に頼まれてファイル監視システム作ったこともあったな
0816デフォルトの名無しさん
垢版 |
2018/05/10(木) 21:39:40.05ID:39NqoQfJ
>>813
チョンボでセキュリティを突破するようなもの作れるの?


>>814
で、どうやって有名無名を判断するの?

会社勤めしたことあるのかって発言してるよ?w
0817デフォルトの名無しさん
垢版 |
2018/05/10(木) 21:58:33.12ID:F9pCnCSA
>>816
一斉メールのBCCをCCに入れちゃったみたいなクソみたいなミスでも情報流出は情報流出
内部から持ち出すのは悪意あろうと無かろうとほんと簡単なんだよ
学生さんはのんきでいいよな
0819デフォルトの名無しさん
垢版 |
2018/05/10(木) 22:39:02.43ID:n6BTi4dI
>>815
webシステムが外部と繋がってる?
イントラも知らんのか?

>>816
判断してやるから具体的な名前だしてみ
てかまともな情シスならホワイトリストとか持ってるし
0821デフォルトの名無しさん
垢版 |
2018/05/11(金) 00:26:28.42ID:Nk9NYlAC
揚げ足の取り合いというか、マウント合戦というか
油断するとすぐ始まるw
0822デフォルトの名無しさん
垢版 |
2018/05/11(金) 00:34:08.57ID:DwsuJYIZ
>>798,800
prototype.jsのようなVBAファイルがあればと思ったので。
個々にであればいくつか見つけているので、その都度対応するようにします。
0823デフォルトの名無しさん
垢版 |
2018/05/11(金) 01:02:06.52ID:gtt7+D13
色んなソフトがAPI公開してexcelと連動して、みたいなこと言ってるけど実際やってる人いる?
わざわざエクセルから操作する必要性が分からない
0824デフォルトの名無しさん
垢版 |
2018/05/11(金) 04:46:34.78ID:Seo60ZfW
>>823
昔、カルテサーバから翌日の輸血オーダ情報を取得して、ちょっと複雑にレイアウトしたTEPRAフォーマットに流し込んで、ハーフカットで輸血ラベルをジャンジャン印刷するのを作った記憶が。
あんまりたいした内容じゃなかった気がするけど。
それこそExcel必要?って言われるかもだけど、現場受けはよかったような。
0826デフォルトの名無しさん
垢版 |
2018/05/11(金) 06:51:44.72ID:CplZ+xhH
>>824
SPC9-APIとか使ってたなら.csvファイル経由でデータを渡すからExcel使うのはある意味自然だと思う
0829デフォルトの名無しさん
垢版 |
2018/05/11(金) 08:33:12.57ID:OTx54W6B
PSキチガイもいなくなってひと段落といったところか
何か前他の板でもPSはキチガイ独占みたいなのを見たことがあった
それは多分PowerShellとは違うPSなんだろうけど
得てしてPSと言うのはそんなんばっかだってことだろうな
0830デフォルトの名無しさん
垢版 |
2018/05/11(金) 08:45:45.24ID:xisUVEWN
何一つ言い返せなかったけどそれじゃ悔しいから敵が去った後に負け惜しみを言う人w
0832デフォルトの名無しさん
垢版 |
2018/05/11(金) 11:08:18.88ID:Pz/tQeeR
シート1のA44:I44のセルを、マクロでシート2の最後列に貼り付けていきたいです。
下記のマクロだと、シート1のA44のセルをシート2の最後列のAのセルにのみ、コピーするだけになってしまいます。
どう変更すればいいのか、よかったら教えて頂きたいです。
よろしくお願いします。

Sub テスト()
Dim LastRow As Long
With Worksheets("シート2")
LastRow = Worksheets("シート2").Range("A"&Rows.Count).End(xlUp).Row + 1
Range("A"&LastRow).Value=Worksheets("シート1").Range("A44:I44").Value
End With
End Sub
0838デフォルトの名無しさん
垢版 |
2018/05/11(金) 19:31:54.26ID:cdAz752k
入力ヴァリデーションのやり方を教えてください

表形式のデータで1行1エンティティです
入力長さ、最小最大値、正規表現パターンなど基本的なカラムごとに独立したヴァリデーション
開始日終了日の順序などのエンティティ内の複数カラムにまたがるヴァリデーション
REST APIでサーバーに問い合わせる非同期ヴァリデーション
集計値の最大値やリレーションの存在確認など表全体のヴァリデーション
を行いたいです

入力が止まるとUXが悪化するのでエラーメッセージはメッセージボックスで表示したくありません
一定時間で消えるかフォーカスすると消滅する吹き出しのようなコントロールが理想です

これらを可能な限り宣言的にかつGUIからのチマチマとした面倒な設定は無しで実装したいです
REST APIや表全体のヴァリデーションの実体はUIと独立したCOMコンポーネントが行うので後はUIと紐付けるだけです
0843デフォルトの名無しさん
垢版 |
2018/05/12(土) 00:56:13.10ID:0dcq7Vjr
駆け出しの自分には質問内容すらさっぱりなんだが
このスレの住人はこの話の内容が理解できるくらいのレベルなの?
久しぶりに日本語が分からないって思ったわ
0844デフォルトの名無しさん
垢版 |
2018/05/12(土) 01:10:53.14ID:tqwvTn43
>>838
入力したそばからバリデーションを走らせたいの?
0846デフォルトの名無しさん
垢版 |
2018/05/12(土) 07:55:43.25ID:hwxaPbIq
無料の「Rails チュートリアル」で勉強すれば?
例えば、Rails で一般的な入力バリデ(validation)は、

空ではない
presence: true

1〜50文字
length: { in: 1..50 }

整数のみ
:only_integer
0848デフォルトの名無しさん
垢版 |
2018/05/12(土) 09:48:01.99ID:tqwvTn43
>>838
こういうのはポリモーフィズムを利用したくなる典型例の気がする。
型ごとに checkMe メソッドを定義するとか。
ちょっと古くさいかもな。
0849デフォルトの名無しさん
垢版 |
2018/05/12(土) 10:58:14.77ID:tJgrjt+6
凄いよ
MVVMやってる横で
MVCで頑張りましょうって言われた感じ
流石PSはキチガイ独占だNE
0851デフォルトの名無しさん
垢版 |
2018/05/12(土) 11:31:03.75ID:tqwvTn43
>>849
MVVMってなに?(wikipediaのページを読みながら)
0854デフォルトの名無しさん
垢版 |
2018/05/12(土) 19:47:10.61ID:tqwvTn43
事務員て何?
システム開発の専門家以外のホワイトカラーだったら全部事務員でOK?
0856デフォルトの名無しさん
垢版 |
2018/05/12(土) 21:19:03.46
Excelとパワポしか触ってないIT元請け企業の社員とかね
0861デフォルトの名無しさん
垢版 |
2018/05/13(日) 10:55:04.93ID:hA5qejl9
今までC++とかの酷い奴も来たけど
今回のPSキチガイは群を抜いて酷かったな
もう二度と現れないで欲しいよね
0862デフォルトの名無しさん
垢版 |
2018/05/13(日) 10:55:35.20ID:wyHt0Mjp
二分探索、そしてMatchでこれを活用する方法、理解できました。
・要:調査表の検索キーソート。
・検索キーが数値を含む文字列なので桁揃えする必要あり。
・Matchでは完全一致での二分探索はできないので、戻値と元値の比較が必要。
この編がポイントでしょうか。
目標10秒以内を目指し、皆さんのアドバイスを元に順に試しましたが、結局この二分探索
のすさまじい結果に驚き、辞書までは試しませんでした。多分これも早いんだろうけど、、
(つづく)
0863デフォルトの名無しさん
垢版 |
2018/05/13(日) 10:55:56.66ID:wyHt0Mjp
>>862
(つづき)
少し条件を変えて、調査表(1.4万) x 駆動表(1万)で試しました。

[線形探索]
 ・Match線形探索/調査票(Range) ... 22.9 Sec
 ・Match線形探索/調査票(Array) ... 79.12 Sec

[For入れ子]
・調査票、駆動表ともにArrayなげこみ ... 53.10 Sec
  For2重Loop。発見時、Exit Forで次へ。

[二分探索](調査票はSort済)
 ・Match二分探索/調査票(Range) ... 0.42 Sec
 ・Match二分探索/調査票(Array) ... 117.24 Sec
(つづく)
0864デフォルトの名無しさん
垢版 |
2018/05/13(日) 10:56:21.29ID:wyHt0Mjp
>>862
(つづき)
結果、RangeObjectへのMatch二分探索が最強でした。
Arrayに乗せると、どんどん結果が悪くなるのが意味不明ですが、、
Match部分に時間がかかっているのは明らかでしたが、これを二分探索にすることで
1万回のMatchが 0.4 Secで終わるというのはすさまじいですね。

最終的に、検索キーの供給とマッチング、そのあとのSQL処理まで含めて
約100 Secかかっていたのが、0.8 Secで差分処理出来るようになりました。
みなさん、アドバイスいただきありがとうございました。
0866デフォルトの名無しさん
垢版 |
2018/05/13(日) 13:26:19.68ID:LATlOC/3
>>864
二分探索なのにArrayでもMatch使ってるのがよくわからない。
文字列としての単純比較じゃダメなのか?
0869デフォルトの名無しさん
垢版 |
2018/05/13(日) 15:48:29.20ID:wyHt0Mjp
>>866
両テーブルをArrayに乗せてForで回して単純比較したのですが、50 Secほどかかってしまったのです。
Matchを使わない場合、どう記述すればよいかわからず。
ヒントをいただけますか? もっと効率がよい方法があれば試してみたいです。
0870デフォルトの名無しさん
垢版 |
2018/05/13(日) 16:14:11.00ID:+vKBH4Jv
こんな程度のどうでもよい事の効率を上げるより仕事全体の効率を上げる努力をしなさいって社長が言ってたよ
0872デフォルトの名無しさん
垢版 |
2018/05/13(日) 17:40:36.23ID:+vKBH4Jv
50secとか
どれだけ大規模システムを作られてるの?
もしかしてヤフーとかアマゾンとかのSE担当者さんですか?
0873デフォルトの名無しさん
垢版 |
2018/05/13(日) 17:45:12.77ID:sMzgfoge
高速化の問題は細かい情報がないと話にならんよ
テスト用データと自分が書いたコードぐらいはGithubにあげてから質問してくれ
もちろんエクセルファイルの直接交換はセキュリティなど面倒事が多いからテキストファイルでな
0874デフォルトの名無しさん
垢版 |
2018/05/13(日) 18:11:36.74ID:wyHt0Mjp
>>873
元質問は>>771,>774,
条件は >>862, >>863, に書いたとおりで
80 Sec かかったのは >>790 のコードです。

二分検索で 0.4 Secに短縮できたのは以下のコードです。関数にしました。
Function isReg(STR As String, RNG As Range) As Boolean
 Dim IDX As Long
 isReg = False
 With Application
  IDX = .IfError( .Match(STR, RNG, 1), 0 )
  If IDX = 0 Then
   ' do nothing
  ElseIf STR = .Index(RNG, IDX, 1) Then
   isReg = True
  Else
   ' do nothing
  End If
 End With
End Function

50 Sec かかった単純比較はこんな感じのForの入れ子です。
For i = LBound(arrDrvList) To UBound(arrDrvList)
For k = LBound(arrFdList) To UBound(arrFdList)
If arrDrvList(i, 1) = arrFdList(k, 1) Then
(処理)
Exit For
End If
Next
Next
どんな手法がよいか教えてください。Matchにこだわるつもりはありません。
0875デフォルトの名無しさん
垢版 |
2018/05/13(日) 18:16:05.72ID:wyHt0Mjp
>>873
あ、テストデータですね。
=TEXT(RANDBETWEEN(1,1000000),REPT("0",7))&"-"&TEXT(RANDBETWEEN(1,2),"000")
で生成できます。
駆動側が1万行、調査側が1.4万行で生成できます。
0876デフォルトの名無しさん
垢版 |
2018/05/13(日) 18:18:17.66ID:LATlOC/3
>>874
それのどこが二分探索なのか俺にはよくわからない。
とりあえず自分のプログラムでArray上のデータをバイナリサーチすると、
調査表、 駆動表ともに1.4万件でやって 1.9Sec だった。(Core i5)
0877デフォルトの名無しさん
垢版 |
2018/05/13(日) 18:19:47.21ID:wyHt0Mjp
>>875
日本語おかしいな。
駆動側が1万行、調査側が1.4万行。駆動側の表から1万回Matchをかけました。
調査側の表はSort済みですが、これをArrayに投げ込んで行うとなぜが遅くなります。
0878デフォルトの名無しさん
垢版 |
2018/05/13(日) 18:22:03.91ID:wyHt0Mjp
>>876
Matchの第3引数を0以外にするとバイナリサーチになるんだそうです。

その1.9Secの結果をだせたコードの書き方が知りたいです。
0883デフォルトの名無しさん
垢版 |
2018/05/13(日) 19:13:05.46
もう解決したんだから終了でよくね?
このまま続けてても無知な外野とかPS糞野郎がしゃしゃり出てくるだけ
0884デフォルトの名無しさん
垢版 |
2018/05/13(日) 19:15:15.85ID:wyHt0Mjp
>>879
駆動表、調査表(各1列)ともに >>875 の関数で生成したデータを配置。
調査表をarrFdListにすると 86 Sec, rngFdListにすると27 Sec となりました。
Sub TES_Proc()
 Dim ST As Single, ED As Single: ST = Timer
 Dim rngFdList As Range '調査表
 Dim arrFdList As Variant 'Array格納試験用
 Dim r As Range, iHit As Long, iCnt As Long
 Set rngFdList = Range( _
      Range("R_Fd"), _
      Range("R_Fd").Offset(100000, 0).End(xlUp) _
     )
 arrFdList = rngFdList
 For Each r In Range("R_Drv").CurrentRegion '駆動表
  With Application
   iHit = .IfError( .Match(r.Value, arrFdList, 0), 0)
  End With
  If iHit > 0 Then iCnt = iCnt + 1
 Next
 Debug.Print iCnt & " Matched"
 ED = Timer
 Debug.Print "Waste: " & ED - ST & " sec"
End Sub
(つづく)
0885デフォルトの名無しさん
垢版 |
2018/05/13(日) 19:15:40.65ID:wyHt0Mjp
>>879
(つづき)
こちらは0.4Secで回答がえられるようになったコードです。>>874の関数を使用します。
ただ、駆動表をArrayに変えると100Sec以上かかります。(関数の引数型変更が必要)

Sub TES_Proc2()
 Dim ST As Single, ED As Single: ST = Timer
 Dim rngFdList As Range '調査表
 Dim arrFdList As Variant 'Array格納試験用
 Dim r As Range, IDX As Long, iCnt As Long
 Set rngFdList = Range( _
      Range("R_Fd"), _
      Range("R_Fd").Offset(100000, 0).End(xlUp) _
     )
 arrFdList = rngFdList
 For Each r In Range("R_Drv").CurrentRegion '駆動表
  If isReg(r.Value, rngFdList) Then
  iCnt = iCnt + 1
  End If
 Next
 Debug.Print iCnt & " Matched"
 ED = Timer
 Debug.Print "Waste: " & ED - ST & " sec"
End Sub
0886デフォルトの名無しさん
垢版 |
2018/05/13(日) 19:20:14.73ID:wyHt0Mjp
>>882
いや、Matchを使うのがおかしいと言われているので、
もっと一般的な方法を知りたくて。

50秒のほうは確かに線形探索ですね。
上のほうでシートにアクセスしているから遅いと言われて
2つの表ともArrayに乗せて比較のために実行したものです。
0892デフォルトの名無しさん
垢版 |
2018/05/14(月) 22:09:45.23ID:nBdlD1Xi
エクセルでメールを送る際にCDOを使用していたのですが
メールサーバーの仕様が変わって
ポート587のTLS/STARTTLSが必要になりました
調べてみるとCDOはTLS/STARTTLS非対応のようです

TLS/STARTTLSに対応できるエクセルでメールを送る
お勧めの方法を教えてください

よろしくお願いします
0893デフォルトの名無しさん
垢版 |
2018/05/15(火) 07:03:51.94ID:f6zNW2OD
>>892
basp21がいけるかなと思ったけど、無料版は非対応みたいですね。
SMailで対応されている方を見かけました。
他に何かあるかな?
0896デフォルトの名無しさん
垢版 |
2018/05/15(火) 12:22:16.58ID:iR34l3ga
代入と比較を両方=にしたせいで名前付き引数へ渡してるのか比較してるのかわからないから苦肉の策で:=を使う
VBAの言語設計のセンスのなさの表れ
0897デフォルトの名無しさん
垢版 |
2018/05/15(火) 12:36:20.46ID:2i/hB9LU
古い言語だからセンスが無いのはしょうがない
ただずっと伝統を守って生産性をあげようとしてこなかった点は残念だね
Microsoftに見捨てられた言語
0899デフォルトの名無しさん
垢版 |
2018/05/16(水) 17:15:29.34ID:ZACk88wL
会社でPC upgradeのあと
キーボード配置がおかしくなってコード書く効率が格段に劣化した。
例えば@を打つためにSHIFTと2だし、(や)を打つのは場所が1つずれる、などなど。
プログラミングではコードの書き方など意識を集中すべきところはたくさんあるのに
こんなキーボードの配列のようなくだらんことに意識しないといけないので仕事効率が格段に下がって困っています。

なにか対策ありますか?
会社のIT部は対策考えてると言ってますが待てません。
0900デフォルトの名無しさん
垢版 |
2018/05/16(水) 17:38:45.07ID:VNV3eEvV
入力をフックして正しいキーに変換するVBAマクロを書くというのはどうでしょうか?
0902デフォルトの名無しさん
垢版 |
2018/05/17(木) 01:22:57.26ID:WaQcQyxN
お仕事でvba使ってるけど自分がどれくらい出来るのか全然分からん
工数とか見積もりとか出したらなんか分かるんかなーて思って調べても良くわからんしステップ数?はクソコード程行数多くなるし…なんか良い方法ないかな
このままじゃモチベが続かん
0905デフォルトの名無しさん
垢版 |
2018/05/17(木) 09:13:30.19ID:OEcGKIjw
VBA程度でPC作業の効率上げた気になってるけどもっと仕事全体の効率を上げる努力しような
VBAなんてそんな細かい事は後回しでいいからさ
本当は家でサッサとやって来て欲しいくらいだけどね
0906デフォルトの名無しさん
垢版 |
2018/05/17(木) 10:13:39.78ID:0CVDk2cO
>>902
なにかテクニックを持ってるなら記事書いて公開してレスポンスを待てばいい
レスなくてもアウトプットするだけでためになるし
0907デフォルトの名無しさん
垢版 |
2018/05/17(木) 11:47:08.89ID:0CVDk2cO
仕事の効率が悪いのは不合理を上から押し付けられている例が多い。
「上」の典型例が役所だ。
あとITの観点からは全く無能と言っていい経営が合理化の阻害要因になっている会社もまれにある。
そういう会社は競争に負けて速やかになくなっていくからいいけどね。
0908デフォルトの名無しさん
垢版 |
2018/05/17(木) 12:05:52.20ID:khB37Je6
そうそう
薄汚いクソフォーマットのエクセルファイルや
メンテナンス性を完全に放棄したとしか思えないクソVBAコードとかね
押し付けられた方は無駄な作業を強いられてたまったもんじゃない
0909デフォルトの名無しさん
垢版 |
2018/05/17(木) 12:10:09.02ID:0CVDk2cO
経営者は会社と従業員のために戦ってほしい。戦いに負け続けるようではダメな経営者だ。
喧嘩する相手は役所ね。頑張って。
0910デフォルトの名無しさん
垢版 |
2018/05/17(木) 12:19:54.47ID:HOl2IMkD
ちょっと質問失礼
自PCにあるブックをコピーしてサーバーに新規ブックを作るとファイルのタイムスタンプの日時がよくわからない日時になってるんだけど、何の原因が考えられそうですか?
0911デフォルトの名無しさん
垢版 |
2018/05/17(木) 12:24:50.78ID:x/H/6cVB
一緒に戦えよw 傍観してるだけじゃ何事も手には入らんわ
何もいらない奴だけが傍観してろよ

多くを手にしている経営者がなんで自らリスキーな戦い挑むと思うんだ 欧米じゃあるまいし
0912デフォルトの名無しさん
垢版 |
2018/05/17(木) 12:32:34.08ID:x/H/6cVB
サーバに新規ブックを作る ってトコが書き間違いだと思うが コピーや移動やアップロードだとして
そのサーバは目の前にあるのかクラウドとかで見知らぬ国なのかでも変わってくる
ファイルのタイムスタンプも 作成時、更新時、アクセス時などなど様々
0913デフォルトの名無しさん
垢版 |
2018/05/17(木) 13:16:33.83ID:oeUhwWkR
VBAしか使わせてくれない会社に合理化とかアホか?
きちんと合理化してる所は今時エクセルなんか最低限しか使わんだろ
0914デフォルトの名無しさん
垢版 |
2018/05/17(木) 14:07:27.73ID:dB6H+z10
‘配列1(セル範囲から配列にする場合)
Dim Arr as String
Arr = Range(“A1:A3”)
‘取り出し方
For each i in Arr
Debug.print i
Next

‘配列2(普通の配列)
Dim Arr(3) as String
‘取り出し方
For each i in Arr()
Debug.print i
Next

【質問1】この「括弧無し配列(配列1)」と「括弧付き配列(配列2)」の違いを教えていただけないでしょうか

配列1と配列2で取り出し方が違います。
つまり同じ物として運用するとエラーになってしまいます。

例えば通常の括弧付き配列は
Returnnum = Arr
として戻り値として配列を返せますが、括弧無し配列はできません

【質問2】
「括弧無し配列(配列1)」を「括弧付き配列(配列2)」に変換する一番スマートな記述を教えていただきたいです。現状動的配列にループで収納しています

以上、ご教授願います。よろしくお願いいたします。
0915デフォルトの名無しさん
垢版 |
2018/05/17(木) 14:20:43.91ID:dB6H+z10
すみません、配列1はVariant型じゃないと駄目でした。。
正しくは以下です

‘配列1(セル範囲から配列にする場合)
Dim Arr as Variant
Arr = Range(“A1:A3”)
‘取り出し方
For each i in Arr
Debug.print i
Next
0916デフォルトの名無しさん
垢版 |
2018/05/17(木) 14:23:23.12ID:0CVDk2cO
>>914
> Dim Arr as String
> Arr = Range(“A1:A3”)

この As String は As Variant の間違いかな?
それと、括弧無し配列もVariant 戻り値として返せるよ。
括弧付き配列はSAFEARRAY構造体というもので、括弧無し(Variant変数)はそれを値として内部に抱えている。
0918デフォルトの名無しさん
垢版 |
2018/05/17(木) 17:43:16.02
>>914
質問2は一発ではできないとおも

てか、Variant型のほうで統一すりゃいいじゃん

なんでだめなの?
0919デフォルトの名無しさん
垢版 |
2018/05/17(木) 20:41:16.86ID:oSMlM+BJ
質問です

入力した文字列の時刻の値を比較して結果を出したいのですがどうすればいいでしょうか?
例えば↓のようなことがやりたいです
このままだと何を入力しても12時前になって困っています

Function Calc(val As String) As String
 If val < Time(12. 0. 0)
  Calc = "12時前"
 Else
  Calc = "12時以降"
 End If
End Function

よろしくお願いします
0923919
垢版 |
2018/05/17(木) 21:12:45.95ID:oSMlM+BJ
>>921
有難う御座います
TimeをTimeValueにして試してみます
0925デフォルトの名無しさん
垢版 |
2018/05/17(木) 22:01:20.21ID:IpPWHNGq
>>904
あれはもう持ってるんだ
派遣先で永遠と飛んでくる指示に従うだけって思ってたよりもつまらん
0926デフォルトの名無しさん
垢版 |
2018/05/17(木) 22:36:14.28
>>925
そりゃあ指示にただ従ってるだけではな

仕事は自分で作り出すものやで
0927デフォルトの名無しさん
垢版 |
2018/05/17(木) 22:45:20.21ID:sCU3vhEI
>>925
なにかアウトプットしなよ
さあ!
0928デフォルトの名無しさん
垢版 |
2018/05/17(木) 23:27:34.82ID:4AFnEgr6
組織に所属しているという意識がないんなら当然「仕事は自分で作り出す」なんて意欲も湧かんわw
0929デフォルトの名無しさん
垢版 |
2018/05/18(金) 00:14:21.21ID:yPq2oynG
フリーランスこそ顧客開拓に余念がないと思うけどね
0930デフォルトの名無しさん
垢版 |
2018/05/18(金) 00:18:40.56ID:r8kEwRA6
勝手に仕事を作るバカのせいでまたメンテナンスコストの高いマクロがばら撒かれる
無能な働き者さんはほんと迷惑です
0931デフォルトの名無しさん
垢版 |
2018/05/18(金) 06:19:19.39ID:KwQS73gf
>>925
(誤)永遠と
(正)延々と

わざとならすまん
0932デフォルトの名無しさん
垢版 |
2018/05/18(金) 08:02:30.01ID:7QaC26lU
オブジェクトをコピーした状態を解除するにはどのようにかけばよいでしょう?

Application.cutcopymode=false では消えないので、適当なセルを一度コピーし上記でコピー解除しています。

一発で解除する方法ありますか?
0934デフォルトの名無しさん
垢版 |
2018/05/18(金) 08:49:40.64ID:FW7A0AUH
検索したらクリップボードをクリアするサンプルコードがでてくるはずだけど、api呼び出す必要があったり結構面倒だった記憶がある
0935デフォルトの名無しさん
垢版 |
2018/05/18(金) 11:50:53.11
C#とかでクリップボードをクリアする実行ファイルを作って呼び出すのが最適解
0936デフォルトの名無しさん
垢版 |
2018/05/18(金) 12:35:02.93ID:sZ7vKXi2
>>932
CreateObject("Forms.TextBox.1") して空文字をコピーすりゃいいじゃん、と思ったけど空文字だとできないな。
任意の一文字コピーではだめ?
0937デフォルトの名無しさん
垢版 |
2018/05/18(金) 16:53:52.74ID:YkQZGzcp
Dim xls As New Excel.Application
Set Book = xls.Workbooks.Open(省略)

時短のためにこのように作業対象のオブジェクトを取得すると

Book.activate

が効きません。(常にthisworkbookがアクティブになります)

何故でしょうか?対策はございますか?
0938デフォルトの名無しさん
垢版 |
2018/05/18(金) 21:35:52.88ID:2ynLe5yA
>>937
あんまり詳しくないけど新しいエクセルを作成する必要あるの?

dim book as workbook

にして

setのところのxls.を削るのはダメなの?
0939932
垢版 |
2018/05/18(金) 23:06:26.97ID:9DWAd5ft
>>933
上手くいきました。

>>936
ありがとう
0940デフォルトの名無しさん
垢版 |
2018/05/19(土) 17:47:09.08ID:49sGoKqd
>>938
それだと普通に開くだけなので大量のエクセルファイルを操作するときに時間がかかるのです
0942デフォルトの名無しさん
垢版 |
2018/05/19(土) 20:39:09.13ID:RoboUWmL
>>940
時間がかからんとactivateしても人間にはなんの事やらわけがわからんよ
キミはなんや矛盾した問題をかかえとるね
0943デフォルトの名無しさん
垢版 |
2018/05/19(土) 20:49:03.18ID:m/ZPa8pN
大量のファイルを処理するならプロセス作って並列処理した方が速いだろうね
0944デフォルトの名無しさん
垢版 |
2018/05/19(土) 21:18:06.38ID:TP6Y2mwH
質問です。
windowsAPIからキーボードイベントを発生させたいのですが、ノートパソコンにあるFNキーの定数をご存知の方いらっしゃいませんか。
よろしくお願いします。

>>937
開いているブックのみがアクティブの対象かと。
0945デフォルトの名無しさん
垢版 |
2018/05/19(土) 23:13:31.81ID:8jjSxBIu
何故アクティブにする必要があるんかね?
アクティブにしないで済むようには組めんのか?

基本的にアクティブにする処理を書く奴はスキルが低いと思うんだ。
もっとも、どうにもアクティブにしないとできないことも稀にはあるけどね。
0946デフォルトの名無しさん
垢版 |
2018/05/19(土) 23:41:59.44ID:xS6sQzEj
>>944
残念ながらFnキー単体にコードはない
Fn+キーが押されて初めてデバイスからコードが流れる仕組み
つまりFn単体が押されたかはOSからは判らない
メーカーによっては違う仕組みかもしれないけど
0947デフォルトの名無しさん
垢版 |
2018/05/20(日) 00:04:10.54ID:diJ6AI92
>>945
最後にアクティブにして終わるとか
0948デフォルトの名無しさん
垢版 |
2018/05/20(日) 00:23:38.59ID:/YSK7TcC
明示的にアクティブにすることはある。
ユーザーにこのシート、このセルですよと示す為に。

でもそういう場合以外でアクティブにすることはまずめったに無い。
で、Excel.Application使う場合はそういう場合ですら無い。

2013だったかのExcelの仕様変更でアクティブにしないとエラーとなる不具合が有った気がするが回避できる組み方も有るような気もする。
0949デフォルトの名無しさん
垢版 |
2018/05/20(日) 14:25:06.75ID:laQiZndq
>>946
ありがとうございます。
>メーカーによっては違う仕組みかもしれないけど
再び希望を持ってかなり調べてみましたが、やはり仰る通りありませんでした。
別の方法を探すことにします。
0951デフォルトの名無しさん
垢版 |
2018/05/20(日) 22:49:16.49ID:diJ6AI92
表のつくりがクソだという以外に感情がなくなってきて答えられない
0952デフォルトの名無しさん
垢版 |
2018/05/20(日) 22:55:58.27ID:9fk8EC6V
表示とデータを分離しない
データを正規化しない
vbaerあるある
やんなっちゃうよね
0953デフォルトの名無しさん
垢版 |
2018/05/20(日) 23:02:31.52
>>950
開始時間を表示したいんなら+1不要だと思うよ
問題文はそうじゃないね
0954デフォルトの名無しさん
垢版 |
2018/05/20(日) 23:06:27.60ID:cqMXJ5R7
何のテキストか知らないけど下に見えてる問題も含めて地雷くさいなぁ
関数複雑にする前にできることあるだろうに…
0955デフォルトの名無しさん
垢版 |
2018/05/20(日) 23:10:46.38ID:9fk8EC6V
ふと思ったのだがもしかしてプログラミング必修って
純粋な子供たちにこういうのが正しいプログラミングですって教え込むのかな
こわいなぁ
0957デフォルトの名無しさん
垢版 |
2018/05/20(日) 23:43:30.11ID:9fk8EC6V
中途半端な知識に毒された新人やお客様は厄介だぞ
新人は研修で厳しく指導して矯正すればまだなんとかなるが、お客様が相手だと立場上そうもいかん
恥をかかせないように間違いを指摘するのって難しいんだよ
0958デフォルトの名無しさん
垢版 |
2018/05/21(月) 00:22:57.97ID:AialzjYr
>>950
空白はINDEX関数の何行目かを指定するのにMATCH関数を用いていて、A3に一致した行+1することにより活動場所の行にずらしています。
もう一つのMATCH関数によりA4に一致した列を指定していることで、D4に正しく表示されるようになります。
それぞれを数字に直すとより分かりやすいかもしれません。
0960デフォルトの名無しさん
垢版 |
2018/05/22(火) 14:28:26.02ID:3Jq2kRkc
StrConv関数のシステム規定のコードって、WindowsならShift-JISでいいんですか?
もしそうなら、それが明示的にわかる記述ってヘルプなどに乗ってますか?
0961デフォルトの名無しさん
垢版 |
2018/05/22(火) 21:08:53.68ID:3Jq2kRkc
システム規定?
何か勘違いじゃない?

StrConv関係なくダブルクォーテーションで括った文字はShift-JIS扱いだと思うが。
0962デフォルトの名無しさん
垢版 |
2018/05/22(火) 21:40:29.05ID:kE6hiwfa
>>960
> StrConv関数のシステム規定のコードって、WindowsならShift-JISでいいんですか?
それを質問してるレベルならShift-JISだと思っておけばいい

> もしそうなら、それが明示的にわかる記述ってヘルプなどに乗ってますか?
世の中には英語版Windowsとかもあるから規定のコードはShift-JISとは限らない
0963デフォルトの名無しさん
垢版 |
2018/05/22(火) 22:33:03.25ID:SyE6l3ot
ファイルが閉じられようとしている時、何がそのファイルを閉じようとしているか取得することはできますか?
MenuなのかCloseBoxなのかShortCutKeyなのかプログラム的なものなのか。
Application.Callerで行けるかなと思ったのですが、無理でした。
0965デフォルトの名無しさん
垢版 |
2018/05/23(水) 19:08:52.58ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

8JKSW
0968デフォルトの名無しさん
垢版 |
2018/05/24(木) 18:44:34.86ID:rwhzkSgn
webスクレイピングて難しく思えたんだけどコレはvba以外でやると多少楽なのかな?
静的ページならすぐ出来たけど動的インフレームアリだとsetが失敗して、しないようしないようと作ってたらかなり時間かかるようになってしまった
0969デフォルトの名無しさん
垢版 |
2018/05/24(木) 18:54:57.85ID:YoLj0XgE
>>968
そんな事を何故にエクセルでやるの?
WinアプリとかWebアプリを作るとかした方が良いのでは?
0971デフォルトの名無しさん
垢版 |
2018/05/24(木) 22:30:16.88
WinSockでWebサーバ作るの難しく思えたんだけどVBA以外でやると多少楽なのかな?
0972デフォルトの名無しさん
垢版 |
2018/05/25(金) 00:53:50.40ID:gd/oxjVv
スクレイピングは、Ruby で、Mechanize, Selenium WebDriver

CSS セレクターのNokogiri は、jQuery と同じ
0973デフォルトの名無しさん
垢版 |
2018/05/25(金) 07:04:39.19ID:zc32YTBq
>>969
それは俺がvba以外業務経験の無い似非プログラマーみたいな人材で社内向けの便利ツール開発屋さんだからだ
あとはexcelでログ蓄積してたりグラフ作ったりWordで資料作るって言うからボタン一個でスクレイピングから資料作成まで出来たら楽なんかなーそしたらvbaで良いかなーって
0974デフォルトの名無しさん
垢版 |
2018/05/25(金) 11:14:35.42ID:9B51GdsS
>>973
それは俺も知りたい
htmlをテキストとして持ってきて表の部分を再構成したり、hrefタグにあるファイルをダウンロードしたりはやってるけど、
それ以上のことが出来ない。
まずはWebプログラミングの基礎をちゃんとやんなきゃとは思ってはいるけどね。
0975デフォルトの名無しさん
垢版 |
2018/05/25(金) 20:12:32.29ID:Ojg1fzQl
簡単だよ


インスペクターを使ってブラウザとサーバーの通信内容を分析する

分析結果を応用して目的のサイトを巡回して、生のコンテンツを収集するクローリングプログラムを作る

収集したコンテンツから装飾などを取り除き、必要なデータ部分のみを抽出するスクレイピングプログラムを作る

抽出したデータを加工しRDBやドキュメントストアに保存して、データを再利用しやすくするインデクシングプログラムを作る

クローリング、スクレイピング、インデクシングの実行をスケジューリングするプログラムを作ってサービスに登録する

検索、統計計算、レポート作成など、インデクシングしたデータを活用するプログラムを作って、自分で使ったり、社内に配布したりする

対象のサイトの仕様変更やクローリング拒否の兆候を監視して、動きがあれば迅速に対応する


こういう基本的な部分は言語は関係ない
0978デフォルトの名無しさん
垢版 |
2018/05/25(金) 23:46:43.22ID:zc32YTBq
無駄が多すぎる
それに元の質問はvbaでも出来たけど他言語はもっと簡単なの?だろ
どの言語も出来るってのは質問者も分かってそうだけど何が伝えたいんだ
0981デフォルトの名無しさん
垢版 |
2018/05/26(土) 08:00:27.40ID:+tRt/bon
プロさんが事務員相手に無双したがるのてどうゆう心理なん?
0983デフォルトの名無しさん
垢版 |
2018/05/26(土) 10:05:07.34ID:kxVTkJPa
うんうん。プロの選手が草野球にアドバイスしてるのと同じだよね。
0984デフォルトの名無しさん
垢版 |
2018/05/26(土) 10:14:25.65ID:1UG7ypzs
アドバイスっていうのも違うかなぁ
ペダルを漕いだら自転車が前に進みますって当たり前のことを呟いた感じが近いかな
0985デフォルトの名無しさん
垢版 |
2018/05/26(土) 11:11:09.30ID:kxVTkJPa
呼ばれもしないのに?
0987デフォルトの名無しさん
垢版 |
2018/05/26(土) 11:53:50.96ID:WModqHdi
>>985
プロと言っても実際は開発部隊から外されて運用監視ぐらいしかしてない人たちだろうね。
メイン作業はキッティング程度だろw
0988デフォルトの名無しさん
垢版 |
2018/05/26(土) 12:52:50.49ID:4GSWnb7z
親切ならWebアプリやWinアプリを進めておしまいだろ
そんなんサンプルがいくらでもある古典的な事をVBAでやる意味が分からん
簡単な事をわざわざ難しくするバカって多いよね
0989デフォルトの名無しさん
垢版 |
2018/05/26(土) 12:55:19.02ID:+tRt/bon
>>982
事務員かて当たり前の基本ぐらいしっとるわw
そんなんで無双しとるつもりやったんかw
0990デフォルトの名無しさん
垢版 |
2018/05/26(土) 14:19:19.43ID:1UG7ypzs
>>989
基本的なことを呟いただけのつもりで無双した覚えはないんだが
それを無双してるって言う人がいたというだけだな
VBAerさんって普通のプログラマと比べてちょっと感覚が個性的だから噛み合わないことが多いね
0991デフォルトの名無しさん
垢版 |
2018/05/26(土) 15:08:09.49ID:WModqHdi
普通の「プログラマ」は VBAスレなんて来ないよ。
使わないからね。
運用監視とかヘルプデスクとか呼ばれる職種の人だろ、エンジニアでこんなところ来るのはw
0992デフォルトの名無しさん
垢版 |
2018/05/26(土) 15:43:48.81ID:uEcv10bf
適材適所だからほかの言語と比較する意味はあまりないが
こういう言語で数万行に及ぶコード書く人って頭のなかどうなってるんだろう
記憶力が並外れてるのか、特殊な訓練でも受けていたのか。。。

で、それをコメントもマニュアルもなく投げられて炎上案件まっただ中
OOPからこの世界入った人にコード読みのこつ伝授してくだしぃ。。。
0994デフォルトの名無しさん
垢版 |
2018/05/26(土) 16:07:06.78ID:uEcv10bf
>>993
わかってる人かw
モジュールっつーの?あれが30以上に分かれてて
しかも微妙に違うバージョンがいくつもあるから、exportのためのマクロ最初に書いたわ
0995デフォルトの名無しさん
垢版 |
2018/05/26(土) 16:33:59.77
exportしてバージョン管理するのは基本中の基本
0996デフォルトの名無しさん
垢版 |
2018/05/26(土) 16:35:26.60ID:xltAFcbA
>>992
OOPじゃないけど言語としてはVB6だから数万行程度は普通に組めるだろ

> で、それをコメントもマニュアルもなく投げられて炎上案件まっただ中
それはお前んところの問題で言語関係ないし
0997デフォルトの名無しさん
垢版 |
2018/05/26(土) 16:37:56.47ID:1UG7ypzs
>>991
プログラマでも来るよ
別に情報を拾いに来るわけじゃない
基本的には遊びに来てるだけ
時には事務員さんに答えられない脱初心者以上の質問に答えてあげてるけどもね
1000デフォルトの名無しさん
垢版 |
2018/05/26(土) 17:09:54.82ID:xltAFcbA
>>999
組めると言うだけで、組む必要があるかどうかは別の話な
お前さんに理解できるかどうかは知らんけど w
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 28日 22時間 7分 17秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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