Excel VBA 質問スレ Part60
■ このスレッドは過去ログ倉庫に格納されています
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part59
https://mevius.5ch.net/test/read.cgi/tech/1549692750/ >>588
スマンが君の書いてる機能はマクロを使わずにできるものだが
>集計と報告系のマクロ書いてるけどグラフ出力とか一部は指定サイトの結果取得
集計と報告系・・・当然簡単だろ、場合によってはワードも利用する
>グラフ出力
ピボット使えよ、何が不足してるんだ?
>一部は指定サイトの結果取得
こんなのクエーリーの標準機で、起動時に読み込むとか、一定時間おきに読み込めよ
面白がってVBAにしないで、標準の機能で出来ることはExcel様に任せるよ そこまで作り込む能力があるなら素直にPS, Python, Ruby, node.jsあたり学んだほうが幸せになれるぞ SIerすらメンテできないようなものを作ると後々自分の首を締めることになるよ
ずっとお守りに時間を奪われて出世は閉ざされ、そのうちシステム刷新でクビよ ってか、Excelの標準機能も満足に使えないのに無理やりVBAを使うのは
やめた方が良い、標準機のでできることはコードにしないな 規模的にスケールするような作り方を理解した上でなら全然大した量ではないけど、
なんちゃってプログラマのアドホックなコーディングはだいたい1000行を超えたあたりで限界が来る
俺は絶対お守りしたくない >>595
そういうののお守りもしたことあるよ。
いやー大変だった。
基本、デバック実行で、何の処理をしているのかを類推することになる。 >>593
そうなのか?
自分はほぼOffice共有マクロでやっていてExcel固有の機能とかは最低限しか使ってないな >>592
開発者ならそうだろうけど
開発者じゃなくて業務をしてるだけ
みたいな人がついでに使うのがexcelvbaって感じだから
その人が首になる事はないんじゃないかなぁ?
それにそんな本格的なシステムを組むほど予算が無い
みたいな会社規模だとどのみちどうしようもないし
そういう界隈用って有る様で無いし
表計算
という点では予想外の使われ方だとは思うけど
なんかそういう小零細向けのアプリが有った気がしたけど >>598
それが、組織内での共通認識ならいいんでないの
マクロは俺は基本的に避けるが、好みだよ
でも、「Excel固有の機能とかは最低限」じゃあExcel使う意味あるの? まあ、勘違いするバカ多いんだよな
プログラムは自分で作ってるとか、俺が考えたとか(笑) >>600
ExcelはUIとしては優れていると思うよ。
操作するユーザーとのデータのやりとりとかグラフ出力とかね。
でもSQLでやるようなクエリーはもちろん不向きだし、途中段階のデータ加工処理にも不向きだと思うんだがね。 >>603
でも、そんなの君の好みだろ
不向き気なら使う必要ないな
ってか使えるとこだけうまく使うんだろ
なのに文句だけいゆうのな まあ、何も使いこなせない奴って文句しかないんだよな >>604
文句なんか言ってないだろ?単に不向きなことはExcelにやらせてないというだけのことじゃないか
そもそも>>593がそっちの趣味主観から始まっているわけだしな >>606
そっちこそ俺の書いた
「SQLでやるようなクエリーはもちろん不向きだし、途中段階のデータ加工処理にも不向きだと思う」
に具体的な反論があるなら言ってみてはどうなのか >>608
PowerPivotとPowerQuery使えば楽勝だぞ >>608
>「SQLでやるようなクエリーはもちろん不向きだし、途中段階のデータ加工処理にも不向きだと思う」
>に具体的な反論
お前は不向きの内容も具体的に書き込んでないのにどのようなアドバイスが欲しいのかな?
処理速度かな? 問題点がなにかも自覚しないから不満なだけで止まるんだよな
で、自分ではなくツールのせいにする楽なこった >>610
言いたかないが、それはレベルが低いだろ。
普通に考えれば分かることだ。 >>603
>でもSQLでやるようなクエリーはもちろん不向きだし、途中段階のデータ加工処理にも不向きだと思うんだがね。
工夫次第で普通にできる。別に不向きじゃないと思う
そういうのはAccessのほうが向いてると言われればその通りだと思うが >>614
元々のVBAを使わずにExcelの機能を使うっていう話の観点で言えば、データが多くなるとExcel関数ではどうにもならないくらい遅くなるということがある。
銀行のデータ整合性チェックをしたことが有るんだが、10万以上のデータでSUMPRODUCTとか全くのアホなことやってたな。
その時はSQLじゃ無いけどVBAで組んだら一瞬になったけど。
今の仕事でも50カラムぐらいで40万件ぐらいのレコードをExcelに吐き出してるのを扱ってるがVBA使わずに関数とか正気の沙汰とは思えない。 10万くらいなら関数でも楽勝だろ
自動計算切れば普通に動く 数値だけなら楽勝だけど文字列のfindとかは結構キツイ
>10万以上のデータでSUMPRODUCT
これ列全体指定してたら多分計算終わらん ワークシート関数は使い捨てならいいんだけど残して運用し続けるのはつらい データベース的に使ってるエクセルテーブルで関数従属関係をワークシート関数で実現するのやめてほしいよな Excelっていうか表計算ソフトは
ゼロから設計し直したほうが良いと思う
セルごとに個別の計算式が入っていて
どれか一つが間違っていても
簡単に気づくことが出来ないとか
一つのセルだけ修正し忘れとか
メンテナンス性が悪すぎる >>625
え?
少なくとも後者は教えてくれるぞ?
前者は数式表示モードにするか、横にformulatextで表示しとけば? 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 >>621
SUMPRODUCT知らないか、10万のデータでどういう使い方するのか想像出来ない奴は黙ってろ。 >>629
SUMPRODUCTは所詮O(N)だから実質的な計算量はたかが知れてる
遅けりゃSUMPRODUCT使わないで一時セル使った単純な式に展開してもいい >所詮O(N)だから実質的な計算量はたかが知れてる
O(n2)以上だよ
めちゃくちゃ多い >>631
O(N^2)となる根拠は?
実装がヘボいのかもしれないけど、仮に手計算でやったとしたら基本的に計算量は行数に比例するだろう
それなら一時セル使えば確実にO(N)で済むよ >>620
そりゃSUMPRODUCTとか使われたら話は違ってくるわな
>>630にあるように工夫すればいいってこと 絶対参照の範囲と相対参照の範囲をSUMOTODUCTする場合は平気でO(n^2)になるよ
Excelでシミュレーションとかしてるとよく出てくる 元々無理矢理VBA使うのはって話から始まってるが、もはや無理矢理関数使うことになってる件w >>625
> 前者は数式表示モードにするか、横にformulatextで表示しとけば?
それぞれが微妙に違ってる(セル座標のこと)画面からはみ出るぐらいの
長い数式が何十個も表示されていて、それがワークシートを
コピーするたびに量産されていくという状態で
全部見て間違いがないことを確認できるわけ無いだろ >>638
全然本質的な解決にはならないけどR1C1形式にすればセル参照含め同じ数式になって多少は見やすいぞ >>638
その考え方が間違いだろ
フォーマットは統一しろよ
みて確認なんかしない >>640
何を言ってるんだ?
一見してフォーマットが統一されているように見えていながら
誰かがミスして数式が壊れたり、修正が必要な時に漏れたりするから
問題だって言ってるんだろ。
フォーマットを統一するのに「人間がミスをしなければ」という
不可能な条件があるから、だめなんだよ >>641
個別に修正なんかしない
そんな事するからミスをする > 個別に修正なんかしない
シートにデータ入れる時点で修正するんだが? そうそう。エクセルというか表計算は
データと処理(セルに入れる関数)と見た目(色等)が
一つに結合してしまっているという大きな欠点があったな。
分離されてないので、何かを修正する時に
別の何かまで変更してしまって、それに気づかない。 行でデータを作ったら
列には必ず同じ数式しか入れない
バカなことしてたら何時までも進歩しない > 列には必ず同じ数式しか入れない
列には同じ数式入れるとかアホやろwww
DRYじゃない。同じ物は一つだけでいい あ、DRYっていうのは同じことを何度も繰り返すなってことねw
わかりやすく言えば、コピペするなってこと。 「式をロック」したいだけなのに
そうすると今度はセルの幅などが変えられなくなる。
細かく設定すれば可能だが、面倒くさい。
メンテナンスする人はいちいち解除しないといけない
そして、どのセルがロックされているかわからない
頑張ればできるが・・・
どんどん無駄な頑張りが必要になる。 accessや.netで作るとメンテナンスもっと面倒だよ >>649
それ、単に考えが雑なだけだろなんにしても
計画性もなく適当に増殖させるから自分でも制御できなくなる セルロックは色々面倒くさくなるのは同意。ほぼ変更なしまで完成されてれば別だが。
なので、自分用とか、可能であれば、式セルに薄い色つけてる。 まあ、ある程度データが大きくなったら、データーはテーブル&数式で処理して
表示、印刷はピボットを使うかフォーマットを定義したシートでまとめろよ
目的も、機能も行き当たりばったりってExcelのシートもVBAも負担なだけ >>653
コメント入れればいいんだよ、印刷しなければ問題ない
面倒くさいって、管理できればそんな必要はないけどな その管理が面倒くさいって話
修正でシート変更したとして、
今度から新しいシート使ってくださいとか言っても
間違えて古いシート使ってきて、でも見た上違いわかんねとかさ
エクセルファイルをコピーした分だけ
プログラム(セルに入れる関数のこと)が複製されるから管理不能。
一つのエクセルファイルを共有して使うとか
何人も人がいればやらんだろ?
それぞれ個別のエクセルファイル修正して提出とかだろ? 削除や挿入でセルがずれない設定があればねぇ
今のところindirectしかない。indirect使うと数式が読みづらくて死ぬ offsetで大体逝ける
始点がずれるのはむしろ使いやすい offsetか、滅多に使わないけどindirectよりは楽そうだ >>657
わかりやすい名前を付けてそれを使えばズレないだろし分かりやすい VBAの一番の欠点は情報が圧倒的に少ない
多言語の1億分の一くらいの情報量
質問してもアンサーが遅い Webで有用な情報を発信できるレベルの人間ならそもそもVBAなんて使いたがらないからね 少しはみ出した使い方とかも出ないし想定内の情報のみ まあね、最近のスマホの使い方みたいに
「見ればわかるよ」ってのが長々と書いてあるね Excel VBAは玉石混淆だけどまぁまぁ情報はネット上に転がってる
Access、OutlookのVBAも最低限の情報ならば探せる
これがPowerPoint、Word、Publisherとかになると途端に情報量が減る >>661は釣りだぞ
検索力低いですね^^;って返すとこまでがテンプレ 検索力の問題とかじゃなくて情報量が圧倒的に少ないのは事実
VBAプレイヤーの絶対人数が違うんだから当然だけど天才的な人もいない VBAの情報量と言われても、EXCEL操作できればそれでいいんだからそれ以上何かいるんけ? 単純なExcel操作の範疇ならそこそこ有能そうな人の記事もあるよね
能力の低い人ほどそれ以上のことをVBAでやろうとするからな VBAしか見ないから少ないと感じる。
普通のExcel操作なんて皆知ってることばかりだろう。 VBAしか見ないから少ないと感じる。
普通のExcel操作なんて皆知ってることばかりだろう。 パワーポイントとワードは同じVBAでしょはよ作ってね
たかがvbaだし期間なんて要らないよねよろしくー
みたいなん多くてうげーてなる >>677
こういうことだろ
上司A 「パワーポイントとワードは同じVBAでしょ、はよ作ってね」
同僚B 「たかがvbaだし期間なんて要らないよね、よろしくー」
俺 「うげー」 恥を忍んできくが
WordのVBAって、なんか使い道あんの?
オレは全角半角統一とか
余白ほかレイアウト調整とか
定型文挿入とか
そんな簡単なのは自作して使ってるけど
「高度な使い方」ってのが思いつかない
文章中心のデータに
定型処理って需要があんのかね >>680
そんだけ活用できてれば十分じゃん
言語仕様を制限する方が余計な手間がかかるから、そのままなんでも使えるようにしてあるだけだろ
高度かどうかは置いといて、Word VBAの使いみちとしては、印刷物の寸法をちゃんと合わせたいとき
Word文書にVBAで罫線なりシェイプを書き込めばいいんじゃない? >>679
すごいな、読む気がなかったかもしれん
>>680
俺は、使ってっるリストボックスで選択した文字で
文書を変更して印刷している
高度である必要あるの?便利であればいいんでないの >>681
>>682
ああなんか救われた気がする
スレチ気味の質問だったが
ありがとう
素朴でも便利な小道具つくって行くわ 【1 OSの種類 .】 Windows10 Pro 64bit
【2 Excelのバージョン 】 Excel 2019
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
Visual Studio Community 2019を入れたら、Excelの設定があちこち勝手に書き換わってしまいました
そのうちの一つとしてVBEでスニペットが表示されなくなったのですが、直し方を教えてください >>680
昔作って、超低頻度だが役に立ってるのが、Windows乗り換えたときに全フォントのサンプル表示と印刷。
各種プログラムソースに色付け、A3縦二段組印刷。(最近はイチから解析しなくなったな〜…) >>680
ExcelVBAのソースコードを自動で色付けするのに使ってる。 >>686
VBAのキ−ワードの色付けは誰かがやってたからそれを貰って、コメントの色付けを追加して使ってる。 ■ このスレッドは過去ログ倉庫に格納されています