X



Excel VBA 質問スレ Part60
■ このスレッドは過去ログ倉庫に格納されています
0590デフォルトの名無しさん
垢版 |
2019/04/10(水) 11:37:22.82ID:Y1e0LUUu
>>588
スマンが君の書いてる機能はマクロを使わずにできるものだが
>集計と報告系のマクロ書いてるけどグラフ出力とか一部は指定サイトの結果取得
集計と報告系・・・当然簡単だろ、場合によってはワードも利用する
>グラフ出力
ピボット使えよ、何が不足してるんだ?
>一部は指定サイトの結果取得
こんなのクエーリーの標準機で、起動時に読み込むとか、一定時間おきに読み込めよ

面白がってVBAにしないで、標準の機能で出来ることはExcel様に任せるよ
0591デフォルトの名無しさん
垢版 |
2019/04/10(水) 12:02:10.37ID:P1T0QVnr
そこまで作り込む能力があるなら素直にPS, Python, Ruby, node.jsあたり学んだほうが幸せになれるぞ
0592デフォルトの名無しさん
垢版 |
2019/04/10(水) 12:06:33.25ID:UESsnIOi
SIerすらメンテできないようなものを作ると後々自分の首を締めることになるよ
ずっとお守りに時間を奪われて出世は閉ざされ、そのうちシステム刷新でクビよ
0593デフォルトの名無しさん
垢版 |
2019/04/10(水) 12:13:08.23ID:Y1e0LUUu
ってか、Excelの標準機能も満足に使えないのに無理やりVBAを使うのは
やめた方が良い、標準機のでできることはコードにしないな
0595デフォルトの名無しさん
垢版 |
2019/04/10(水) 12:36:37.12ID:UESsnIOi
規模的にスケールするような作り方を理解した上でなら全然大した量ではないけど、
なんちゃってプログラマのアドホックなコーディングはだいたい1000行を超えたあたりで限界が来る
俺は絶対お守りしたくない
0596デフォルトの名無しさん
垢版 |
2019/04/10(水) 12:43:15.27ID:HiznTzOg
>>595
そういうののお守りもしたことあるよ。
いやー大変だった。

基本、デバック実行で、何の処理をしているのかを類推することになる。
0598デフォルトの名無しさん
垢版 |
2019/04/10(水) 13:43:17.52ID:Fi06WKE0
>>593
そうなのか?
自分はほぼOffice共有マクロでやっていてExcel固有の機能とかは最低限しか使ってないな
0599デフォルトの名無しさん
垢版 |
2019/04/10(水) 13:45:51.76ID:ZITKsaEc
>>592
開発者ならそうだろうけど
開発者じゃなくて業務をしてるだけ
みたいな人がついでに使うのがexcelvbaって感じだから
その人が首になる事はないんじゃないかなぁ?
それにそんな本格的なシステムを組むほど予算が無い
みたいな会社規模だとどのみちどうしようもないし
そういう界隈用って有る様で無いし
表計算
という点では予想外の使われ方だとは思うけど
なんかそういう小零細向けのアプリが有った気がしたけど
0600デフォルトの名無しさん
垢版 |
2019/04/10(水) 13:54:38.83ID:Y1e0LUUu
>>598
それが、組織内での共通認識ならいいんでないの
マクロは俺は基本的に避けるが、好みだよ
でも、「Excel固有の機能とかは最低限」じゃあExcel使う意味あるの?
0601デフォルトの名無しさん
垢版 |
2019/04/10(水) 14:02:44.70ID:Y1e0LUUu
まあ、勘違いするバカ多いんだよな
プログラムは自分で作ってるとか、俺が考えたとか(笑)
0603デフォルトの名無しさん
垢版 |
2019/04/10(水) 16:17:57.40ID:Fi06WKE0
>>600
ExcelはUIとしては優れていると思うよ。
操作するユーザーとのデータのやりとりとかグラフ出力とかね。
でもSQLでやるようなクエリーはもちろん不向きだし、途中段階のデータ加工処理にも不向きだと思うんだがね。
0604デフォルトの名無しさん
垢版 |
2019/04/10(水) 16:30:55.55ID:Y1e0LUUu
>>603
でも、そんなの君の好みだろ
不向き気なら使う必要ないな
ってか使えるとこだけうまく使うんだろ
なのに文句だけいゆうのな
0607デフォルトの名無しさん
垢版 |
2019/04/10(水) 18:36:25.41ID:Fi06WKE0
>>604
文句なんか言ってないだろ?単に不向きなことはExcelにやらせてないというだけのことじゃないか
そもそも>>593がそっちの趣味主観から始まっているわけだしな
0608デフォルトの名無しさん
垢版 |
2019/04/10(水) 18:38:22.55ID:Fi06WKE0
>>606
そっちこそ俺の書いた

「SQLでやるようなクエリーはもちろん不向きだし、途中段階のデータ加工処理にも不向きだと思う」

に具体的な反論があるなら言ってみてはどうなのか
0610デフォルトの名無しさん
垢版 |
2019/04/10(水) 22:29:11.86ID:Y1e0LUUu
>>608
>「SQLでやるようなクエリーはもちろん不向きだし、途中段階のデータ加工処理にも不向きだと思う」
>に具体的な反論
お前は不向きの内容も具体的に書き込んでないのにどのようなアドバイスが欲しいのかな?
処理速度かな?
0611デフォルトの名無しさん
垢版 |
2019/04/11(木) 00:47:10.88ID:tqqNlMCs
問題点がなにかも自覚しないから不満なだけで止まるんだよな
で、自分ではなくツールのせいにする楽なこった
0614デフォルトの名無しさん
垢版 |
2019/04/11(木) 15:17:56.46ID:t6ZqSbU2
>>603
>でもSQLでやるようなクエリーはもちろん不向きだし、途中段階のデータ加工処理にも不向きだと思うんだがね。

工夫次第で普通にできる。別に不向きじゃないと思う
そういうのはAccessのほうが向いてると言われればその通りだと思うが
0619デフォルトの名無しさん
垢版 |
2019/04/11(木) 20:16:57.24ID:v9KwxSkL
同時接続数の超えられない壁
0620デフォルトの名無しさん
垢版 |
2019/04/11(木) 20:48:03.35ID:flnPu98l
>>614
元々のVBAを使わずにExcelの機能を使うっていう話の観点で言えば、データが多くなるとExcel関数ではどうにもならないくらい遅くなるということがある。

銀行のデータ整合性チェックをしたことが有るんだが、10万以上のデータでSUMPRODUCTとか全くのアホなことやってたな。
その時はSQLじゃ無いけどVBAで組んだら一瞬になったけど。

今の仕事でも50カラムぐらいで40万件ぐらいのレコードをExcelに吐き出してるのを扱ってるがVBA使わずに関数とか正気の沙汰とは思えない。
0622デフォルトの名無しさん
垢版 |
2019/04/11(木) 21:12:19.70ID:2g6t5Llw
数値だけなら楽勝だけど文字列のfindとかは結構キツイ
>10万以上のデータでSUMPRODUCT
これ列全体指定してたら多分計算終わらん
0623デフォルトの名無しさん
垢版 |
2019/04/11(木) 21:33:34.25ID:7m5ZQ9KZ
ワークシート関数は使い捨てならいいんだけど残して運用し続けるのはつらい
0624デフォルトの名無しさん
垢版 |
2019/04/11(木) 22:23:07.59ID:+qS75l5K
データベース的に使ってるエクセルテーブルで関数従属関係をワークシート関数で実現するのやめてほしいよな
0625デフォルトの名無しさん
垢版 |
2019/04/12(金) 01:26:49.44ID:L59U/aC1
Excelっていうか表計算ソフトは
ゼロから設計し直したほうが良いと思う

セルごとに個別の計算式が入っていて
どれか一つが間違っていても
簡単に気づくことが出来ないとか
一つのセルだけ修正し忘れとか
メンテナンス性が悪すぎる
0626731
垢版 |
2019/04/12(金) 01:40:03.71ID:7vLuIMdD
>>625
え?
少なくとも後者は教えてくれるぞ?

前者は数式表示モードにするか、横にformulatextで表示しとけば?
0627デフォルトの名無しさん
垢版 |
2019/04/12(金) 05:49:04.40ID:V1CbV9zt
OpenTextFileとCreateTextFiledeのメソッドが返すTextStreamには双方でなにか違いがあるのでしょうか?
ファイルの書き出しにはTextStreamのWriteLineメソッドを利用しています。

FileSystemObjectを使ってテキストファイル(拡張子無し)を作成して、
書き込みを行う処理を実装したいのですが、
CreateTextFileを使うとError 5 となりファイルは作成されるのですが書き込みができないことがたまにあります。
発生頻度が少なすぎて原因を抑えられず、
自力ではここまでが限界のため、何か思い当たることがあればご意見を頂けますと助かります。


OpenTextFileのほうでは少なくとも確認できる限りではエラーが発生しませんでした。


CreateTextFile
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/createtextfile-method
OpenTextFile
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/opentextfile-method
0630デフォルトの名無しさん
垢版 |
2019/04/12(金) 08:24:36.34ID:LhXUTlO1
>>629
SUMPRODUCTは所詮O(N)だから実質的な計算量はたかが知れてる
遅けりゃSUMPRODUCT使わないで一時セル使った単純な式に展開してもいい
0631デフォルトの名無しさん
垢版 |
2019/04/12(金) 08:49:24.60ID:wLs4Sov9
>所詮O(N)だから実質的な計算量はたかが知れてる
O(n2)以上だよ
めちゃくちゃ多い
0632デフォルトの名無しさん
垢版 |
2019/04/12(金) 09:00:04.80ID:xRzutCJ1
>>631
O(N^2)となる根拠は?
実装がヘボいのかもしれないけど、仮に手計算でやったとしたら基本的に計算量は行数に比例するだろう
それなら一時セル使えば確実にO(N)で済むよ
0634デフォルトの名無しさん
垢版 |
2019/04/12(金) 10:47:24.57ID:cY6WK7UC
絶対参照の範囲と相対参照の範囲をSUMOTODUCTする場合は平気でO(n^2)になるよ
Excelでシミュレーションとかしてるとよく出てくる
0637デフォルトの名無しさん
垢版 |
2019/04/12(金) 12:22:33.93ID:cAaoTUDS
元々無理矢理VBA使うのはって話から始まってるが、もはや無理矢理関数使うことになってる件w
0638デフォルトの名無しさん
垢版 |
2019/04/12(金) 13:20:22.74ID:L59U/aC1
>>625
> 前者は数式表示モードにするか、横にformulatextで表示しとけば?

それぞれが微妙に違ってる(セル座標のこと)画面からはみ出るぐらいの
長い数式が何十個も表示されていて、それがワークシートを
コピーするたびに量産されていくという状態で
全部見て間違いがないことを確認できるわけ無いだろ
0639デフォルトの名無しさん
垢版 |
2019/04/12(金) 13:41:42.81ID:cY6WK7UC
>>638
全然本質的な解決にはならないけどR1C1形式にすればセル参照含め同じ数式になって多少は見やすいぞ
0641デフォルトの名無しさん
垢版 |
2019/04/12(金) 20:04:10.53ID:kdt5VzkQ
>>640
何を言ってるんだ?
一見してフォーマットが統一されているように見えていながら
誰かがミスして数式が壊れたり、修正が必要な時に漏れたりするから
問題だって言ってるんだろ。

フォーマットを統一するのに「人間がミスをしなければ」という
不可能な条件があるから、だめなんだよ
0644デフォルトの名無しさん
垢版 |
2019/04/12(金) 20:24:13.41ID:kdt5VzkQ
そうそう。エクセルというか表計算は
データと処理(セルに入れる関数)と見た目(色等)が
一つに結合してしまっているという大きな欠点があったな。

分離されてないので、何かを修正する時に
別の何かまで変更してしまって、それに気づかない。
0645デフォルトの名無しさん
垢版 |
2019/04/12(金) 20:27:00.42ID:BpmudOIO
行でデータを作ったら
列には必ず同じ数式しか入れない
バカなことしてたら何時までも進歩しない
0646デフォルトの名無しさん
垢版 |
2019/04/12(金) 20:29:31.50ID:kdt5VzkQ
> 列には必ず同じ数式しか入れない

列には同じ数式入れるとかアホやろwww

DRYじゃない。同じ物は一つだけでいい
0647デフォルトの名無しさん
垢版 |
2019/04/12(金) 20:30:26.99ID:kdt5VzkQ
あ、DRYっていうのは同じことを何度も繰り返すなってことねw
わかりやすく言えば、コピペするなってこと。
0649デフォルトの名無しさん
垢版 |
2019/04/12(金) 20:39:29.55ID:kdt5VzkQ
「式をロック」したいだけなのに
そうすると今度はセルの幅などが変えられなくなる。

細かく設定すれば可能だが、面倒くさい。
メンテナンスする人はいちいち解除しないといけない

そして、どのセルがロックされているかわからない
頑張ればできるが・・・

どんどん無駄な頑張りが必要になる。
0652デフォルトの名無しさん
垢版 |
2019/04/13(土) 11:19:08.13ID:D8o23bai
>>649
それ、単に考えが雑なだけだろなんにしても
計画性もなく適当に増殖させるから自分でも制御できなくなる
0653デフォルトの名無しさん
垢版 |
2019/04/13(土) 11:37:11.36ID:R4ZFT5Jg
セルロックは色々面倒くさくなるのは同意。ほぼ変更なしまで完成されてれば別だが。
なので、自分用とか、可能であれば、式セルに薄い色つけてる。
0654デフォルトの名無しさん
垢版 |
2019/04/13(土) 11:40:20.37ID:D8o23bai
まあ、ある程度データが大きくなったら、データーはテーブル&数式で処理して
表示、印刷はピボットを使うかフォーマットを定義したシートでまとめろよ
目的も、機能も行き当たりばったりってExcelのシートもVBAも負担なだけ
0655デフォルトの名無しさん
垢版 |
2019/04/13(土) 11:50:25.55ID:D8o23bai
>>653
コメント入れればいいんだよ、印刷しなければ問題ない
面倒くさいって、管理できればそんな必要はないけどな
0656デフォルトの名無しさん
垢版 |
2019/04/13(土) 12:09:21.02ID:6byp94bf
その管理が面倒くさいって話

修正でシート変更したとして、
今度から新しいシート使ってくださいとか言っても
間違えて古いシート使ってきて、でも見た上違いわかんねとかさ

エクセルファイルをコピーした分だけ
プログラム(セルに入れる関数のこと)が複製されるから管理不能。
一つのエクセルファイルを共有して使うとか

何人も人がいればやらんだろ?
それぞれ個別のエクセルファイル修正して提出とかだろ?
0657デフォルトの名無しさん
垢版 |
2019/04/13(土) 12:41:36.98ID:DFBgdaK8
削除や挿入でセルがずれない設定があればねぇ
今のところindirectしかない。indirect使うと数式が読みづらくて死ぬ
0661デフォルトの名無しさん
垢版 |
2019/04/14(日) 09:40:00.62ID:C6oAesku
VBAの一番の欠点は情報が圧倒的に少ない
多言語の1億分の一くらいの情報量
質問してもアンサーが遅い
0662デフォルトの名無しさん
垢版 |
2019/04/14(日) 09:47:43.05ID:Q3MA08tK
Webで有用な情報を発信できるレベルの人間ならそもそもVBAなんて使いたがらないからね
0665デフォルトの名無しさん
垢版 |
2019/04/14(日) 11:25:05.41ID:C6oAesku
少しはみ出した使い方とかも出ないし想定内の情報のみ
0666デフォルトの名無しさん
垢版 |
2019/04/14(日) 11:29:14.13ID:CXJ+kocl
まあね、最近のスマホの使い方みたいに
「見ればわかるよ」ってのが長々と書いてあるね
0668デフォルトの名無しさん
垢版 |
2019/04/14(日) 12:23:51.23ID:TZDtV4Z3
Excel VBAは玉石混淆だけどまぁまぁ情報はネット上に転がってる
Access、OutlookのVBAも最低限の情報ならば探せる
これがPowerPoint、Word、Publisherとかになると途端に情報量が減る
0670デフォルトの名無しさん
垢版 |
2019/04/14(日) 15:06:27.05ID:v38VY+Mw
検索力の問題とかじゃなくて情報量が圧倒的に少ないのは事実
VBAプレイヤーの絶対人数が違うんだから当然だけど天才的な人もいない
0672デフォルトの名無しさん
垢版 |
2019/04/14(日) 15:11:39.40ID:XgRuwrtZ
VBAの情報量と言われても、EXCEL操作できればそれでいいんだからそれ以上何かいるんけ?
0673デフォルトの名無しさん
垢版 |
2019/04/14(日) 20:42:13.83ID:ta3d6Ir8
単純なExcel操作の範疇ならそこそこ有能そうな人の記事もあるよね
能力の低い人ほどそれ以上のことをVBAでやろうとするからな
0674デフォルトの名無しさん
垢版 |
2019/04/15(月) 08:13:02.92ID:ZEg6Csuk
VBAしか見ないから少ないと感じる。
普通のExcel操作なんて皆知ってることばかりだろう。
0675デフォルトの名無しさん
垢版 |
2019/04/15(月) 08:13:28.72ID:ZEg6Csuk
VBAしか見ないから少ないと感じる。
普通のExcel操作なんて皆知ってることばかりだろう。
0676デフォルトの名無しさん
垢版 |
2019/04/15(月) 09:47:45.91ID:HgdD6hHz
パワーポイントとワードは同じVBAでしょはよ作ってね
たかがvbaだし期間なんて要らないよねよろしくー
みたいなん多くてうげーてなる
0679デフォルトの名無しさん
垢版 |
2019/04/15(月) 12:40:48.29ID:Es8LFln/
>>677
こういうことだろ

上司A 「パワーポイントとワードは同じVBAでしょ、はよ作ってね」
同僚B 「たかがvbaだし期間なんて要らないよね、よろしくー」
俺 「うげー」
0680デフォルトの名無しさん
垢版 |
2019/04/15(月) 17:13:58.76ID:IzRYxIuW
恥を忍んできくが

WordのVBAって、なんか使い道あんの?

オレは全角半角統一とか
余白ほかレイアウト調整とか
定型文挿入とか
そんな簡単なのは自作して使ってるけど
「高度な使い方」ってのが思いつかない

文章中心のデータに
定型処理って需要があんのかね
0681デフォルトの名無しさん
垢版 |
2019/04/15(月) 17:23:54.84ID:Es8LFln/
>>680
そんだけ活用できてれば十分じゃん
言語仕様を制限する方が余計な手間がかかるから、そのままなんでも使えるようにしてあるだけだろ

高度かどうかは置いといて、Word VBAの使いみちとしては、印刷物の寸法をちゃんと合わせたいとき
Word文書にVBAで罫線なりシェイプを書き込めばいいんじゃない?
0682デフォルトの名無しさん
垢版 |
2019/04/15(月) 17:36:56.85ID:OAOOS1Vr
>>679
すごいな、読む気がなかったかもしれん
>>680
俺は、使ってっるリストボックスで選択した文字で
文書を変更して印刷している
高度である必要あるの?便利であればいいんでないの
0683デフォルトの名無しさん
垢版 |
2019/04/15(月) 17:41:14.99ID:UiI6zhV3
>>681
>>682
ああなんか救われた気がする
スレチ気味の質問だったが
ありがとう

素朴でも便利な小道具つくって行くわ
0684デフォルトの名無しさん
垢版 |
2019/04/15(月) 17:41:23.11ID:Es8LFln/
【1 OSの種類         .】 Windows10 Pro 64bit
【2 Excelのバージョン   】 Excel 2019
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
Visual Studio Community 2019を入れたら、Excelの設定があちこち勝手に書き換わってしまいました
そのうちの一つとしてVBEでスニペットが表示されなくなったのですが、直し方を教えてください
0686デフォルトの名無しさん
垢版 |
2019/04/15(月) 19:14:26.59ID:32DOVlq8
>>680
昔作って、超低頻度だが役に立ってるのが、Windows乗り換えたときに全フォントのサンプル表示と印刷。

各種プログラムソースに色付け、A3縦二段組印刷。(最近はイチから解析しなくなったな〜…)
0689デフォルトの名無しさん
垢版 |
2019/04/15(月) 19:39:30.60ID:ZEg6Csuk
>>686
VBAのキ−ワードの色付けは誰かがやってたからそれを貰って、コメントの色付けを追加して使ってる。
■ このスレッドは過去ログ倉庫に格納されています

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