Excel VBA 質問スレ Part54

1デフォルトの名無しさん2018/05/26(土) 20:37:37.74ID:Lty78diJ
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK


最近プロによる書き込みが多々見うけられますが
彼らに絡むと話がこじれるので質問したい方は適当にスルーしてください


※前スレ
Excel VBA 質問スレ Part53
http://mevius.5ch.net/test/read.cgi/tech/1524823358/

331デフォルトの名無しさん2018/06/16(土) 21:07:12.41ID:XHohijVT
>>326
>そしてセル数のぶんだけ重くなる。

332デフォルトの名無しさん2018/06/16(土) 21:08:34.68
条件付き書式だらけのワークブックなんて開くのもしんどいわw

333デフォルトの名無しさん2018/06/16(土) 21:19:39.41ID:XHohijVT
>>332
条件付き書式「だらけ」?
ひとつで十分だよね?

334デフォルトの名無しさん2018/06/16(土) 21:51:48.05
>>333
ああ、>>323>>317の個別の事例に特化した話だけをしていたってわけね
俺は(恐らく>>326も)てっきり>>323は一般論を話しているものと思ったよ
「本題とはそれるけど」って書いてあったからかなあ

一般論としてはセルの背景色は条件付き書式で塗りつぶすべきなんていう馬鹿な話はないから

335デフォルトの名無しさん2018/06/16(土) 22:01:21.03ID:XHohijVT
>>334
そりゃだって>>317の画像で言えばB列に条件付き書式を設定すれば十分だし、
色はおまけで値で管理したいだろう?

336デフォルトの名無しさん2018/06/16(土) 22:05:25.26ID:wwpjubpj
>>334
Excelの操作(データ整理など)で、
条件付き書式でセルの文字色や背景色を変更するのは一般的なことだと思ってたんだが、どういう点がバカなんだろ?

337デフォルトの名無しさん2018/06/16(土) 22:06:33.94ID:wwpjubpj
おっと、IDを消してる人にレスしてしまった…

338デフォルトの名無しさん2018/06/16(土) 22:13:39.48ID:+7qeuaiQ
アマチュア事務員さんの一般論とプロの一般論は異なるということだね
プロはセルに一個一個色を設定するなんてめんどくさいことはしないよ

状態が1つ変わるたびに別の状態を同期させるようなコードは手続き的で非常にメンテナンスしにくい
まずは問い合わせで解決することを考えよう
これを覚えてまた1つ賢くなったね事務員さん

339デフォルトの名無しさん2018/06/16(土) 22:21:41.19ID:KM0PBFsq
自分で考えない馬鹿には何を教えてもムダ

340デフォルトの名無しさん2018/06/16(土) 22:29:39.05ID:FpzMctyH
今のエクセルは下手なVBAerが組んだらゴミの山生成するから気をつけたほうがいいのは間違いない

341デフォルトの名無しさん2018/06/16(土) 22:36:27.25ID:42mRpiCp
ブバラー

342デフォルトの名無しさん2018/06/16(土) 22:43:30.84ID:Bzc+Z3iP
>>338-340
馬鹿は何も考えない方が良いんだってよプロさんw

343デフォルトの名無しさん2018/06/16(土) 22:44:27.40
>>336
それも度を過ぎると再計算が走って重くなるからVBAで色を塗ってしまったほうがいいという一般論

344デフォルトの名無しさん2018/06/16(土) 23:08:33.78ID:i9Db63x3
度を過ぎたときにおこる問題を回避するのが一般論という

345デフォルトの名無しさん2018/06/16(土) 23:11:12.97ID:xo8+58G0
それは一般論の一般的な定義ではないねw

346デフォルトの名無しさん2018/06/16(土) 23:12:30.35ID:+7qeuaiQ
その程度では重くならんだろ
どんだけ巨大なモンスターブックだよ

347デフォルトの名無しさん2018/06/16(土) 23:12:39.52ID:h5xcE8hP
>>342
なかなか釣れないね

348デフォルトの名無しさん2018/06/16(土) 23:26:26.09ID:XHohijVT
>>344
これはひどい

349デフォルトの名無しさん2018/06/16(土) 23:52:20.14ID:IDYLbmOn
重くなってから考えればいいと思うよ
仕様で決めたこと以外は極力手を抜こうぜ

350デフォルトの名無しさん2018/06/18(月) 01:25:50.44ID:GSr51TQd
金にならない仕事を勝手にやって問題起こして仕事増やす奴

351デフォルトの名無しさん2018/06/18(月) 02:25:09.76ID:KIJFP7i7
FileCloseとSub Procの寿命について質問です。
作業中のSafe Backupを作成しようと思い、Shift+Ctrl+Sに
@ "_01" で終わるファイル名を、"_00" でリネーム保存
A 続けて "_01"でリネーム保存して元のファイルに戻る
といった動作を割り付けています。
この@の直後の時、"_01" はプロセス上にいないと思うのですが、SafeBackup
は最後まで正常に走り、"_01" ファイルがプロセス上に戻ってくるのが不思議です。
内部的にはどのような動きになっているのでしょうか。

352デフォルトの名無しさん2018/06/18(月) 07:11:35.78ID:teiB5Dus
期間にあったものを抽出する検索ソフト作ってて、optionボタンそれぞれ1年前〜今日、2年前〜今日、全期間ってあってdateadd関数計算して全期間以外はうまく出来るのですが全期間ってどう計算したらいいですか?

353デフォルトの名無しさん2018/06/18(月) 08:40:12.00ID:XqqBFg8U
>>352
ネタ?
その程度の事をここで聞かないと分からないの?
嘘だろ?

354デフォルトの名無しさん2018/06/18(月) 12:21:10.07ID:MeAHP2Rc
非建設的発言は良くないでしょ。

>>352
でも質問に情報が全く足らないな。
検索されるものは何なの?
別シートに日付のついたデータがあって、そこから検索するとか?

DateAdd使ってるのも良くわからないな。
全期間ってのは他に検索条件が無ければ全データになっちまうと思うんだが。

355デフォルトの名無しさん2018/06/18(月) 12:45:04.79ID:teiB5Dus
>>354
テキストファイルから一列ずつ検索。
instr(1,strline,txtSrchWd)
これてヒットしたら、スプリットで切って配列に入れて、(5)に入る日付と比べて正なら抽出したくてやってます。
現在の日付からそれぞれ1年、2年前は計算でうまく抽出出来ますが、全期間は一番古い日付調べておく必要があるんですか?

356デフォルトの名無しさん2018/06/18(月) 13:39:37.58ID:cd2yrKv4
>>355
全期間だから全部だろ、馬鹿なの?
それとも前提条件を全部書かない馬鹿なの?

357デフォルトの名無しさん2018/06/19(火) 00:08:08.37ID:ndSRzvjj
君vba出来るんでしょとか言われて簡単なプログラム作成任されて作ったけど管理めんどくさすぎん?
初めはここは数字しか入らんよて言われてたからisNumericだけ判定してたのに数字以外入れると止まっちゃうから漢字とか諸々の対応させられた
そんな感じで他のinputとかアウトプットの要件がころころ変わる
そして全然動かんねーとか言われるイラつく

358デフォルトの名無しさん2018/06/19(火) 00:14:52.67ID:aJgkz5DG
>>355
全期間ならば現在の日付からの計算は必要なく、一番古い日付を指定しなくともテキストファイルの最終行まで走らせれば良いのでは。

359デフォルトの名無しさん2018/06/19(火) 00:48:51.59ID:k6tS4sBE
>>357
プログラムの仕様を決めるのはあなた
あなたが使用者に対してルールに沿った入力を求めるのは当然
道具は正しく使われるから道具として機能するのであって、猿に道具を渡しても壊れて返ってくるだけ

会社の要求をどの程度受け入れるか、もう一度冷静に考えたらどうか
個人的には、猿には付き合う必要ないと思ってる

360デフォルトの名無しさん2018/06/19(火) 01:12:30.87ID:iuv9bUNx
入力規則でガチガチにしろ

361デフォルトの名無しさん2018/06/19(火) 06:09:54.39ID:Pu21NEEU
>>357
人に使わせるような真面目なツールにVBAは無謀でしょ
品質担保しようとしたら凄まじいコストがかかる
自分しか使わない、数行で終わる、使い捨ての、エクセル操作に特化したマクロがVBAのターゲット

362デフォルトの名無しさん2018/06/19(火) 07:29:40.94ID:mTLBhIvR
トレードオフで論破

363デフォルトの名無しさん2018/06/19(火) 07:36:01.81ID:3QD7URK7
>>307
一番簡単な方法はその都度オブジェクトブラウザで確認すること
アイコン表示されているから一目瞭然

364デフォルトの名無しさん2018/06/20(水) 18:04:43.14ID:jC8iZ17h
>>357
バカほど我儘な要求を平気でするからなぁ。で、「俺は忙しいからプログラムなんて覚える暇が無いんだ、暇なヤツはいいなぁ」とか吐かしたりさぁ。

俺は「お前のオツムに合わせてたらキリがねえわバカ」ってあからさまに言ってるよ。だいたい、数字を入力するところに平気で文字を入力して「何jこれエラーとかマジやってらんない」とか。
やってらんねえのはこっちだっての!

365デフォルトの名無しさん2018/06/20(水) 18:22:57.33ID:4RNQOdaM
使い方守れない馬鹿も馬鹿だけど本気で業務システムを作ろうってんなら
誰でも使えるようにデザインする努力も必要

入力文字種を守れない馬鹿がいる環境なら自由に手入力させる余地を残すな

366デフォルトの名無しさん2018/06/20(水) 18:39:01.82ID:toz5qFyw
とりあえずドキュメントなりマニュアルなりを作って
読まん奴まではフォロー出来ないとはっきり意思表示する

そっから先は職場の人間関係の話なので何とも

367デフォルトの名無しさん2018/06/20(水) 19:02:33.02ID:qDCLfWL3
そういう人に使わせる前提のある程度しっかりした作りのアプリはエクセルみたいな非生産的なプラットフォームでは普通は作らないね
エクセルは個人用のちょっとした処理をサクッと実行したい時とかに使うといいよ
まあその個人用のちょっとした処理だと今度はPowerShellのほうが楽なんだけどな
帯に短し襷に長しってやつだ

368デフォルトの名無しさん2018/06/20(水) 19:28:16.79ID:HhJafGKf
> そういう人に使わせる前提のある程度しっかりした作りのアプリ
エクセルには無理なんやなく
プロさんには無理なだけやんけw
言い訳だけは上手やねw下手やけどw

369デフォルトの名無しさん2018/06/20(水) 20:43:28.89ID:cuSrC+bt
VBAでUTF-8(BOM無し)ファイルを読み書きする最速の方法は何ですか?
ADODB.Streamだと遅いしBOM無しにするための2度読み書きでさらに遅いし

370デフォルトの名無しさん2018/06/20(水) 21:27:51.31ID:M43dIS8l
>>364
数字とか入力文字列の制限とかくらいはプログラム側でエラー処理するべきだろ。

371デフォルトの名無しさん2018/06/20(水) 21:54:21.71ID:M43dIS8l
>>367
程度にもよるが普通作る。
1回動かして終わりになる場合は作らんが。

372デフォルトの名無しさん2018/06/20(水) 22:03:23.77ID:HdA5J+lc
>>369
アセンブラで最適化したDLLを作って読み込む

373デフォルトの名無しさん2018/06/20(水) 22:36:11.28ID:nVdjaZdP
>>369
nkfでBOM付けて処理して、ポスト処理で外すw

374デフォルトの名無しさん2018/06/21(木) 02:33:39.35ID:cblRaFU0
2007から2016に変えたらCSVの処理速度なんかがかなり低下した気がするんですが気のせいかな?

375デフォルトの名無しさん2018/06/21(木) 10:26:53.76ID:3AUOqUng
>>369
コードページを明示的に指定するdllを作るのがいいんじゃないか?
俺はそうしてる。自動判定なんていらん。(言い過ぎ?)

376デフォルトの名無しさん2018/06/21(木) 12:24:27.49ID:gHr1eedB
>>374
CSV言うても読み方も書かんとわからん。
workbook.openなんかはバージョン上がるにつれてどんどん遅くなってる。2003までは一瞬だったのに・・・

377デフォルトの名無しさん2018/06/21(木) 15:28:13.92ID:DWS517Dt
>>369
こいつ程度の頭でもできる最速の方法なのか?
そもそも最速の定義は何なのか。同一ハードウェア上でという前提条件があるのかないのか等々
馬鹿は考えもなしに「最高とか最速」などの用語を使いたがる

378デフォルトの名無しさん2018/06/21(木) 16:15:01.66ID:cblRaFU0
>>376
あー、基本workbook.openで開いてます…
ここで結構時間かかってるのかな
あと、セルの数字を一つ一つ計算したり置き換えたりって処理もかなり遅くなってるような
配列でまとめてとりこんで配列で吐き出すって感じの方が速いのかな

まだ色々と確認中なのですがいろんな物がこれまでよりやたら遅くなってる気がして…

379デフォルトの名無しさん2018/06/21(木) 17:46:03.54ID:G3PMV1Ez
表計算ソフトなんだかた視覚効果なんかいらないと思うんだが何故かMSはそういうのに拘りがあるようで

380デフォルトの名無しさん2018/06/21(木) 17:55:46.72ID:UNnnYLs6
それいったら殆どの機能が不要になるけど
表計算の上に無秩序に機能を拡張したコンセプトのよくわからないソフト
素人にはこういうのがいいんだよ

381デフォルトの名無しさん2018/06/21(木) 19:45:05.77ID:G3PMV1Ez
>>380
スマホタブレット世代の若いヤツはそれをいいとは思わないだろ。

新着レスの表示
レスを投稿する