1 名前:デフォルトの名無しさん mailto:sage [2020/03/17(火) 16:27:20.88 ID:hh8LiIgR0.net] ExcelのVBAに関する質問スレです コード書き込みや作成依頼もOK ※前スレ Excel VBA 質問スレ Part64 https://mevius.5ch.net/test/read.cgi/tech/1575297834/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
321 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 01:17:01.85 ID:vPyadW120.net] あ、普通にこれでいいか。 Dim 骸骨剣士, 死霊の騎士, 幽霊, 死神
322 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/15(水) 01:24:08 ID:Ikiffowr0.net] For 愛 = 1 To 10
323 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/15(水) 01:34:17 ID:Ikiffowr0.net] >>319 うちの新人が最初に書いてきたコードがそれだったわ (実話 もちろん熟語の意味と変数の用途は無関係で、厨二ワードを思いつきで適当に並べただけ
324 名前:デフォルトの名無しさん (ワッチョイ 57ad-LzhE) mailto:sage [2020/04/15(水) 02:43:11 ID:zLal5e060.net] >>311 初心者なら具体的な処理を抽象化していく ボトムアップのやり方が分かりやすいと思う たとえばかけ算の九九を求める関数に 引数でXを渡してXxX(12×12など)を 求める関数に抽象化すると使い道が広がる あるいは5行6列目のセルを処理する関数を X行Y列目を処理するように拡張するだとか 関数の引数は数学の変数のように考える そして関数(やクラス)を自作する時のポイントは なるべく関数を小分けにして組み合わせて使うこと 関数が大きくなると理解するのも難しくなるから 印刷やシートのコピーとか別の処理を ひとつの関数で全部やろうとしないで 別々の関数に書いておく それで呼び出し元の関数から 実行する関数をIF文で切り替えたりする Excel VBAに限らずプログラミングの定石
325 名前:デフォルトの名無しさん (ワッチョイ ffcc-Ho7r) mailto:sage [2020/04/15(水) 08:51:03 ID:7yJWhPoQ0.net] 個人的な意見だけど 変数を日本語にする事の欠点は、目立ちすぎて、他が見にくくなる事だと思う ループカウンタの様な頻出する変数には、制御構造が見にくくなるので避けるべき ルーチンの目的的なものとか、あまり使わないような変数については、場合によっては推奨
326 名前:デフォルトの名無しさん (ワッチョイ d7ac-DNPS) mailto:sage [2020/04/15(水) 10:07:54 ID:fYr2Vm730.net] いいたいことはわかる なでしこみたいに構造もそうなってれば、比較して自然に見えるしね まあでも英語で慣れちゃってると、気になっちゃうから可読性低いと評価してしまうわ
327 名前:デフォルトの名無しさん (ワッチョイ 1791-N0vN) mailto:sage [2020/04/15(水) 11:57:43 ID:qO0uVKDC0.net] >>303 絶対に止めた方が良い。 今、他人のそういうコードで四苦八苦してる。 しかもプロシージャも日本語だから If 測定結果 Then などとあって、"測定結果"が変数なのかBooleanを返すプロシージャなのかすら直ぐには分からない。
328 名前:デフォルトの名無しさん [2020/04/15(水) 12:04:59.54 ID:tJWgJTOGM.net] それはエーゴでもかわらなくなくね?
329 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 12:43:22.36 ID:9r3ObWq4r.net] >>32 「定義」ですぐわかる
330 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 12:47:51.20 ID:9r3ObWq4r.net] 325の間違い
331 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/15(水) 13:14:16 ID:Ikiffowr0.net] がっつり英語だと、こんどは辞書を引く作業が待ってることもある 発音がわからないと会話で困るし
332 名前:デフォルトの名無しさん (ワッチョイ 778f-Eg7/) [2020/04/15(水) 13:39:00 ID:zDLD/Qb60.net] 特定のURLのソースに任意の文字列が記載されているかどうかを判断したい。 https://auctions.yahoo.co.jp/seller/abcdfgh https://auctions.yahoo.co.jp/seller/zakattas https://auctions.yahoo.co.jp/seller/zafect789 というページのリストがあったとして、ソースに"停止中"もしくは"無効"の文字列が あるURLにはB列に"NG"と吐き出す、ということをやりたいです。 https://okwave.jp/qa/q6120067.html が近いんですが「2)一般的な文字列の場合」はエラーが出て動きませんでした。 VBAに詳しい人、よろしくお願いします。
333 名前:デフォルトの名無しさん (アウアウエー Sadf-Ho7r) mailto:sage [2020/04/15(水) 13:51:28 ID:5mkkxmmPa.net] grep なら一行でできるのに VBA でやらないといけないのか
334 名前:デフォルトの名無しさん (ワッチョイ bff7-pwY/) mailto:sage [2020/04/15(水) 13:53:51 ID:VtNtlccy0.net] 人に送ったら日本語フォントない海外PCで全く動かなくなったりしたな
335 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/15(水) 14:13:32 ID:Ikiffowr0.net] >>330 参考リンク先のどのプログラムを試して、どの行でどんなエラーが出たか書いて エラーが出たままでCtrl+Cを押せば、エラーメッセージがクリップボードに入るから、それをコピペして あと、目的のWEBサイトの文字コードはちゃんと確認した?
336 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/15(水) 14:16:13 ID:Ikiffowr0.net] >>331 まあ wget | nkf | grep のが簡単かもね
337 名前:330 (ワッチョイ 778f-o1R8) mailto:sage [2020/04/15(水) 14:42:43 ID:zDLD/Qb60.net] >>333 すいません。 コピペ繰り返してたらなんとか行けました。 Sub YouTube_Search() Dim objIE As Object Dim i As Long Dim j As Long Set objIE = CreateObject("InternetExplorer.Application") With objIE For i = 1 To Range("A1").End(xlDown).Row .navigate Cells(i, 1).Value While .Busy Or .ReadyState <> 4: DoEvents: Wend For j = 1 To .document.all.Length If InStr(.document.all(j - 1).outerText, "Yahoo! JAPAN IDが無効です") > 0 Then Cells(i, 2).Value = "*" Exit For End If Next Next End With objIE.Quit Set objIE = Nothing End Sub
338 名前:デフォルトの名無しさん (スップ Sdbf-N0vN) mailto:sage [2020/04/15(水) 14:43:10 ID:dyZQaRRHd.net] >>326 確かに。 でも日本語フィールドが多いSQL文の中で、一部の変数も日本語だったりするのとか、変数と気付かなかったりするのもあるし、最悪だよ。
339 名前:デフォルトの名無しさん (アウアウウー Sa1b-4fgg) mailto:sage [2020/04/15(水) 15:14:20 ID:4idtb0t/a.net] かわらなくね?かわらなくなくね?
340 名前:デフォルトの名無しさん (ドコグロ MMbf-A2g6) mailto:sage [2020/04/15(水) 19:27:28 ID:DRi90/CyM.net] >>325 なんの測定なのか知らんけど測定結果がBooleanな時点で知能の足らない職場と言うことがわかる コードレビューなんてしたこと無いだろ
341 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 21:47:05.33 ID:vXo73Hp80.net] 辞書で調べても馴染みのない単語でかえってわかりにくくて結局日本語にしてみたりね
342 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 22:13:27.05 ID:qXjFLib20.net] 311です。 >>314 ,317,322 私がやろうとしていたことが、まず効率の悪いことだったんですね・・・ 細かく分けて関数作って、それを組み合わせて作る方法を取りたいと思います。 (ただ、どこまで細かく分ければいいのか、まだ要領を掴んでおりませんが) ありがとうございました。
343 名前:デフォルトの名無しさん (ブーイモ MMcf-IW4T) [2020/04/15(水) 22:29:20 ID:bRq9+Y6qM.net] 初心者ですがご教授下さい サンプルの工程能力で1個につき6項目の測定値をソフトがエクセルにデータ出力してくれるけど、日によっては23個だったり25個だったりしか測定できず 残りの記入方法は人によって様々で ある人は測定値のバラつきに近い値をテンキーで手打ち ある人はエクセルのrandbetween関数で 各項目の測定値のMAXとMINで乱数だしてそれをコピぺ サンプル1 サンプル2 〜サンプル30 項目1 項目2 項目3 項目4 項目5 項目6 こんな並びで全項目測定後に出力されるから項目の途中で止まることはないです 「サンプル1〜30の間の項目1の行に空白があった場合、それより前(左)にある全ての測定値を参考に乱数でサンプル30の項目6まで埋める」 これは難易度かなり高いですか?
344 名前:デフォルトの名無しさん (ブーイモ MMcf-IW4T) [2020/04/15(水) 22:33:03 ID:bRq9+Y6qM.net] 誤記というか間違えました 「サンプル1〜30の間の項目1の列、又はセルに空白があった場合、それより前(左)にある全ての測定値を参考に乱数でサンプル30の項目6まで埋める」 です すみませんがどういったアプローチがあるのか そもそもできるのかご教授下さい
345 名前:デフォルトの名無しさん (アウアウエー Sadf-fVbL) mailto:sage [2020/04/15(水) 22:49:03 ID:xz8oNroja.net] >>342 それは多分難しくないと思うけど、読解力がなくてよく分からない。 サンプル的なものを挙げてもらえると分かりやすいかも。
346 名前:322 mailto:sage [2020/04/15(水) 23:00:46.12 ID:zLal5e060.net] >>340 >どこまで細かく分ければいいのか 基本的に処理は関数名に沿って分ける 関数名から逸脱した処理があれば 別の関数に分けて整理していく だから関数や変数の 適切な命名が重要になってくる 面倒でも名前と処理を対応させた方が 後でメンテナンスしやすくなる
347 名前:デフォルトの名無しさん [2020/04/15(水) 23:19:56.30 ID:bRq9+Y6qM.net] >>343 いや、俺の説明力がなくて、、 というか行列が逆でした 再度説明させてください https://i.imgur.com/D4MOqky.jpg こんな感じで機械がエクセルに出力してくれるけど 残りのサンプルの数字は上の測定値を見てみんなそれぞれランダムにテンキーで入力したりと、いわゆる数値を適当にバラして打ち込んでます。(偽装というほど重要ではないので) 日によって測定できるサンプルが数が違います。 参考になるか程度のスクショになりますが 「サンプル1から30までで空白の行列があったらそれまで測った上のサンプルの測定値を元に乱数でサンプル30の項目6までVBAが全て記入してくれないかなと、 こんな感じです
348 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 23:34:48.80 ID:xz8oNroja.net] 「列、又はセルに空白があった場合、それより前(左)にある全ての測定値を参考に」というのは? その例でいうと、 ・項目1のサンプル8、9、10が空欄なので、1から7の数値を元にして適当な数値で埋める。 ・残りの項目についても同様 ということですか?つまり上の数値を元にしてるけど。 処理自体は難しくないとは思います。
349 名前:デフォルトの名無しさん [2020/04/15(水) 23:57:01.64 ID:bRq9+Y6qM.net] >>346 その例でいうと、というか今の職場の手間になってる仕事がまさにその通りです 上の数値を元に残りの項目を誰かが埋めてます どんなアプローチで行ったらよさそうかアドバイスいただませんか Rnd関数Int関数、Loop、Offset 調べてもなかなかわからずです‥
350 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 23:58:14.63 ID:Ikiffowr0.net] >>345 数字を偽装するルールが人によって違うのはわかったけど、あなたはどういうルールでやりたいのか、もうちょっと厳密に書いて 「それまでの数値を参考に」という表現では曖昧すぎてプログラミングできない 例として、サンプルが7個しかなかった場合は、その7個の数字をどう使って30個に増やすのか?
351 名前:デフォルトの名無しさん [2020/04/16(木) 00:23:27.26 ID:WB3hiXkKM.net] >>348 数式と一覧を削りましたが普段はここの赤矢印に測定したデータのMax値とMin値を入れて EXCELの関数でこのような数式で乱数を 出しています 数年前に自力で作ったけどもはや覚えていないレベルです https://i.imgur.com/eglO3Ph.jpg
352 名前:デフォルトの名無しさん (ブーイモ MMcf-IW4T) [2020/04/16(Thu) 00:25:05 ID:WB3hiXkKM.net] あとスクショ取りたいが故に行数の抜けやズレが、、、すみません
353 名前:デフォルトの名無しさん (ワッチョイ 9f85-i57j) mailto:sage [2020/04/16(Thu) 00:30:19 ID:eKixqxFQ0.net] 最低値+rnd×最大最低の差で乱数になるよ
354 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/16(Thu) 00:35:38 ID:YY8HOOMA0.net] とりあえず行と列の位置は>>345の画像に合わせて作ったから、あとは適当に修正して Sub Macro1() For 項目 = 1 To 6 列 = 項目 + 2 最小 = Application.WorksheetFunction.Min(Cells(6, 列).Resize(30)) * 1000 最大 = Application.WorksheetFunction.Max(Cells(6, 列).Resize(30)) * 1000 For サンプル = 1 To 30 行 = サンプル + 5 If Cells(行, 列) = "" Then Cells(行, 列).NumberFormatLocal = "0.000" Cells(行, 列) = Application.WorksheetFunction.RandBetween(最小, 最大) / 1000 End If Next Next End Sub
355 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/16(Thu) 00:52:18 ID:YY8HOOMA0.net] >>351の方法を取り入れてみた Sub Macro1() For 項目 = 1 To 6 列 = 項目 + 2 最小 = WorksheetFunction.Min(Cells(6, 列).Resize(30)) 最大 = WorksheetFunction.Max(Cells(6, 列).Resize(30)) 幅 = 最大 - 最小 For サンプル = 1 To 30 行 = サンプル + 5 If Cells(行, 列) = "" Then Cells(行, 列).NumberFormatLocal = "0.000" Cells(行, 列) = Rnd() * 幅 + 最小 End If Next Next End Sub
356 名前:デフォルトの名無しさん (ブーイモ MMcf-IW4T) [2020/04/16(Thu) 01:25:57 ID:ltLJf2qHM.net] >>353 神様過ぎびっくりです。 セルをクリックすると.0754322457888とか小数点が残ってるのですがこれを EXCELのROUND関数みたいに四捨五入した状態でここに出力するようにできますか? 四捨五入で0.000の桁で出力できたらもう 職場の2人が失職してしまうレベルです
357 名前:デフォルトの名無しさん (ワッチョイ d7ac-DNPS) mailto:sage [2020/04/16(Thu) 01:33:01 ID:5emHbHZx0.net] それくらい調べたんかな
358 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/16(Thu) 01:41:31 ID:YY8HOOMA0.net] >>354 Cells(行, 列) = Round(Rnd() * 幅 + 最小, 3) 実際、ごく簡単なマクロで仕事を効率化したおかげで毎年たくさんの失業者が出てるからほどほどにな 経営側でなければ、サビ残がなくなるぐらいのところでやめとけよ
359 名前:デフォルトの名無しさん [2020/04/16(木) 01:59:01.29 ID:dFCopLc9M.net] >>356 神様ありがとう。涙出てきました。
360 名前:デフォルトの名無しさん [2020/04/16(木) 02:43:35.11 ID:Kf4avcM70.net] >>357 またこの間の馬鹿か
361 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 03:23:43.55 ID:KenjGRyod.net] 無意味なデータ入力に数百万の人件費を払う会社か すげーな マクロで解決するより、その作業をなくす方法を真剣に考えた方がいいんじゃないか?
362 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 08:08:02.24 ID:IIRVmVIhr.net] コード教えて君もいるし、PC博士気取れるから教えちゃうやつもいる
363 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 08:16:07.12 ID:Br0d9N6Q0.net] 一時しのぎにはなっても長い目で見れば迷惑にしかならない
364 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 10:34:35.59 ID:HIOPYfc5a.net] 自力でマクロも書けんやつが作ったマクロで会社の経理やるなんてブラック企業しかない
365 名前:デフォルトの名無しさん (スフッ Sdbf-xa8R) mailto:sage [2020/04/16(Thu) 11:54:49 ID:wE+PDO4Yd.net] 4月は零細の新入社員が単純作業をマクロでどうにかしようとがんばる時期
366 名前:デフォルトの名無しさん (ワッチョイ 7749-DNPS) mailto:sage [2020/04/16(Thu) 11:56:31 ID:RK65w6zF0.net] そして保守できずに五月病で辞める
367 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 12:13:47.85 ID:6vJJDJtDM.net] >>363 もともと99%はブラックだし 会社の規模とか無関係に
368 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 12:29:59.97 ID:mPB4Kayur.net] 初歩的な質問なんですけど、ロック付きのブックを編集してSaveAsやcloseで保存したときにロックなしのブックにしたいんですが、どうやればできますか?
369 名前:270 (ワントンキン MMcf-4RW9) mailto:sage [2020/04/16(Thu) 12:54:20 ID:cYWHpILcM.net] >>366 イベントプロシージャにロックを外す処理を書けばいい
370 名前:デフォルトの名無しさん (アウアウウー Sa1b-4fgg) mailto:sage [2020/04/16(Thu) 13:43:07 ID:pZjivNa8a.net] ロックかけた人に外してもらう
371 名前:デフォルトの名無しさん (アウアウウー Sa1b-4fgg) mailto:sage [2020/04/16(Thu) 13:47:25 ID:pZjivNa8a.net] 俺に会社の経理やらせてくれたら自分の口座に自動で入金する処理入れるよ
372 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 14:50:28.74 ID:xWZcVh5Wa.net] 画像フォルダのファイル名を取得→ファイル名と同じ文字列の入ったセルに画像を挿入→画像をセルのサイズに合わせるというサンプルコードを見つけたのですが 画像フォルダ内にファイル1〜5まであり、エクセル内にファイル1の文字列がない場合、「オブジェクト変数またはwithブロック変数が設定されていません。」のエラーが出ます おそらくIFでその場合の処理を設定すればよいのではと思うのですが、変数の設定の仕方が分からないです 昨日今日始めたネット聞きかじりの知識で申し訳ございませんがアドバイス頂けないでしょうか
373 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 15:01:25.35 ID:YY8HOOMA0.net] >>370 まずはうまく動かないコードをここに書いて
374 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 15:08:48.79 ID:RK65w6zF0.net] こらはまたコード出してくれるの待ってるクレクレ君
375 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 15:11:15.02 ID:xWZcVh5Wa.net] >>371 ネット丸パクリのコードだけど Sub sample04() Dim objShape As Object Dim strPath As String, strFileName As String Dim strImgName As String strPath = "c:¥temp¥" strFileName = Dir(strPath & "*.jpg") Do Until Len(strFileName) = 0 strImgName = Left(strFileName, Len(strFileName) - 4) Cells.Find(What:=strImgName).Activate ActiveCell.Offset(0, 1).Activate Set objShape = ActiveSheet.Shapes.AddPicture( _ Filename:=strPath & strFileName, _ LinkToFile:=False, _ SaveWithDocument:=True, _ Left:=ActiveCell.Left, _ Top:=ActiveCell.Top, _ Width:=ActiveCell.Width, _ Height:=ActiveCell.Height) strFileName = Dir() Loop End Sub
376 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 15:12:43.83 ID:xWZcVh5Wa.net] 最終的には画像1-4はシート1、5はシート2みたいな感じに貼りたいんだがとりあえず画像1の文字列ないとエラー起こすのを直したいです
377 名前:デフォルトの名無しさん (ワッチョイ ffcc-Ho7r) mailto:sage [2020/04/16(Thu) 16:37:22 ID:V7jYJHWg0.net] どこでエラーが起きてると思う? 検索して見つからなかったセルに対して何かをしようとしたから、何に対してやるんだよーってエラーが起きたんだよ コードを見ると、Findメソッドの戻り値に対して直接Activateしてるから、そこをばらす必要があるので、一旦戻り値を変数に受けるといい セルはRangeオブジェクトで、 Findメソッドは通常、Rangeオブジェクトを返す オブジェクトを変数に代入する場合は、 Set をつける 見つからなかった場合はFindメソッドはNothing を返す オブジェクトの比較には、Is を使う 例: If Not(r is Nothing) Then 〜 あとはがんばれ
378 名前:デフォルトの名無しさん (ワッチョイ ff8e-eUuY) [2020/04/16(Thu) 17:37:30 ID:Kf4avcM70.net] 馬鹿がコピペで作ったものは使い物にならない
379 名前:デフォルトの名無しさん (オッペケ Sr8b-LtOn) mailto:sage [2020/04/16(Thu) 18:14:58 ID:mPB4Kayur.net] >>367 ありがとうございます。やってみます
380 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/16(Thu) 18:19:31 ID:YY8HOOMA0.net] Sub sample04() Dim objShape As Object Dim strPath As String Dim strFileName As String Dim strImgName As String Dim rngStatus As Object strPath = "c:\temp\" strFileName = Dir(strPath & "*.jpg") Do Until
381 名前:strFileName = "" strImgName = Left(strFileName, Len(strFileName) - 4) Set rngStatus = Cells.Find(What:=strImgName) If Not (rngStatus Is Nothing) Then rngStatus.Offset(0, 1).Activate Set objShape = ActiveSheet.Shapes.AddPicture( _ Filename:=strPath & strFileName, _ LinkToFile:=False, _ SaveWithDocument:=True, _ Left:=ActiveCell.Left, _ Top:=ActiveCell.Top, _ Width:=ActiveCell.Width, _ Height:=ActiveCell.Height) End If strFileName = Dir() Loop End Sub [] [ここ壊れてます]
382 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 18:52:45.98 ID:Cbge2SK50.net] >>369 自動なのにトロイ処理とはこれいかに!
383 名前:デフォルトの名無しさん (ワッチョイ ff8f-Ho7r) mailto:sage [2020/04/16(Thu) 19:18:26 ID:np7lPiVv0.net] >>342 「それより前(左)にある全ての測定値を参考に」が仕様としては曖昧模糊としてる気がする。
384 名前:デフォルトの名無しさん (ワッチョイ 77da-o3Ob) mailto:sage [2020/04/16(Thu) 19:21:15 ID:XXRRqnVg0.net] >>375 >>378 ありがとうございます、動かしながら理解していこうと思います
385 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 20:15:43.63 ID:/BsiXYGwd.net] >>338 知らねーよ。 10年以上前の、他社から引き継いだ、正直全部書き直したいけど今動いてるからそっとしておいてるコードだよ。
386 名前:デフォルトの名無しさん (ワッチョイ 9f01-h94e) mailto:sage [2020/04/16(Thu) 21:03:51 ID:l2cOjNdn0.net] 指摘されたら他社とか言い出してて笑うわ
387 名前:デフォルトの名無しさん [2020/04/16(木) 21:21:39.75 ID:Gr+82O4W0.net] >>381 理解もできない代物を知らない誰かの作ったコードで動かそうという馬鹿
388 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 22:03:58.10 ID:5vefqm3N0.net] 理解してないコードを使う無能に仕事やらせるとかやっぱブラックだったか
389 名前:デフォルトの名無しさん (ワッチョイ ffe6-ycCE) mailto:sage [2020/04/16(Thu) 23:38:37 ID:NQ0wsZwj0.net] そもそもexcelVBAって素人が頑張って自動化してみましたってのが99%なんだから そういうのをメンテしなきゃならない羽目になったって話だろ プログラム板の中では異質なスレなんだと思う コードレビューとか言ってるやつは確実にアスペ、そういう事情が想像出来る脳みそが生まれつき備わってない 相手するだけ無駄
390 名前:デフォルトの名無しさん (ワッチョイ d7ac-DNPS) mailto:sage [2020/04/17(金) 00:46:06 ID:TM3fWeSx0.net] 他の誰かがってのは全部言い訳 仕事してメンテするなら自分自身が目の前の有りものを完全理解しないといけない 事情は関係ない 仕事としてやる以上自分の責任として取り組むべき それを怠って開き直るのは無責任であり無能でありいつまでも何も成せない 趣味ならしらん
391 名前:デフォルトの名無しさん (ワッチョイ 77da-Uqc8) mailto:sage [2020/04/17(金) 01:58:25 ID:d5pl8NtJ0.net] >>386 素人がつくろうが会社で使うんだろう
392 名前:デフォルトの名無しさん mailto:sage [2020/04/17(金) 05:06:04.15 ID:K8Kq74SuM.net] >>386 > 今、他人のそういうコードで四苦八苦してる。 ↓ > 今動いてるからそっとしておいてるコードだよ。 言うことコロコロ変わりすぎw
393 名前:デフォルトの名無しさん (ワッチョイ 9fb5-5bTb) mailto:sage [2020/04/17(金) 17:04:26 ID:hqq8FpSv0.net] 散々ここで聞きまくって不快な思いをさせた物ですが完全に職場での運用に成功しました。 本当にみなさんのおかげというか頭良すぎですねここの人は… フォルダ内にあるtxt全ての任意の列行を片っ端からエクセルにコピーする 空白の部分は乱数で処理 この辺は無知にとってはえげつないです。 提案で出そうと思ったらもっと大きな発表テーマで使うぞと言われました。 100のワークの測定データを作るのに2日かかってたのが5分でテンプレートに出力完了…
394 名前:デフォルトの名無しさん (ワントンキン MM7f-tZ20) mailto:sage [2020/04/17(金) 18:42:59 ID:35vznKDBM.net] >>390 馬鹿は死ねよ
395 名前:デフォルトの名無しさん (ワッチョイ b7e6-R0o5) [2020/04/17(金) 18:48:40 ID:M4VM/pj30.net] せっかくtxtという利用しやすいデータ形式なのに わざわざxlsなんかにしちゃって トドメとばかりにゴミデータをインプラント 面白い人だな
396 名前:デフォルトの名無しさん mailto:sage [2020/04/17(金) 19:49:43.28 ID:d0l4uzMSd.net] >>383 実際そうだし、というか、そんなの多いぞ。
397 名前:デフォルトの名無しさん (スプッッ Sdbf-N0vN) mailto:sage [2020/04/17(金) 19:52:36 ID:d0l4uzMSd.net] >>386 素人じゃないと思うよ。 形の上では。 お客は自ら作るという会社では無い。 作ったのは請け負っている会社だよ。 コメントに会社名らしきものが書かれてるし。
398 名前:デフォルトの名無しさん (スプッッ Sdbf-N0vN) mailto:sage [2020/04/17(金) 19:58:42 ID:d0l4uzMSd.net] >>389 あのね、客の要望は有るんだよ。 要望に答えるためには、今動いてるものも解析しないと答えられるわけが無い。 そのコ一ドが何やってるかわからずに機能追加なんてできるわけが無い。 というか、こんなのVBAに限らず開発やってる会社なら何処でもある話だけどな。 ここには開発専門で仕事したことのある奴が少ないということか。
399 名前:デフォルトの名無しさん mailto:sage [2020/04/17(金) 20:10:16.78 ID:SpmVGRc5M.net] 他社が作ったコードを客の要望で機能追加 しかもVBA そんなズタボロの状態で開発専門とか大丈夫かよw
400 名前:デフォルトの名無しさん mailto:sage [2020/04/17(金) 20:49:15.97 ID:d5pl8NtJ0.net] >>394 その会社名らしきところに使用料とか払った? それともその会社に無断で会社名入りのファイル使ってるの?
401 名前:デフォルトの名無しさん (ワッチョイ d7e5-sLxe) mailto:sage [2020/04/17(金) 21:12:50 ID:zPgoaBKN0.net] 自分で書いたコードでも嫌です
402 名前:デフォルトの名無しさん mailto:sage [2020/04/17(金) 21:26:37.34 ID:d0l4uzMSd.net] >>396 今まで幾つかの開発会社で働いたが、どこでもある話。 VBAにも限らない。 まあ、日本語変数とか日本語関数はVBA以外では聞いたこと無いけどな。 前のコードが酷いので、書き直したらもっと酷くなったなんて、某SE本にも書いてあった。
403 名前:デフォルトの名無しさん mailto:sage [2020/04/17(金) 21:28:25.17 ID:d0l4uzMSd.net] >>397 プログラムは客のもんなので、そんな話にゃならねーよ。 普通はそうなる。 客のもんになってない例もあるかもしれんが見たこと無い。
404 名前:デフォルトの名無しさん (スプッッ Sdbf-N0vN) mailto:sage [2020/04/17(金) 21:30:17 ID:d0l4uzMSd.net] >>397 これ、VBAの話ね。 コンパイルする言語の場合はそうでない例があったな。
405 名前:デフォルトの名無しさん (ドコグロ MMeb-h94e) mailto:sage [2020/04/17(金) 21:52:47 ID:z6C6Zgo5M.net] >>400 > プログラムは客のもんなので ↑ > 他社から引き継いだ ボロ出し過ぎw
406 名前:デフォルトの名無しさん (ワッチョイ ff8f-Ho7r) mailto:sage [2020/04/17(金) 22:02:00 ID:yYE4gKbd0.net] いい加減、他人の宿題とか仕事とかに安易に回答与えるのやめたほうが いいんじゃないかと。
407 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/17(金) 22:44:22 ID:j6CUwBsl0.net] 大手から零細まで、色々なところで仕事してきたけど、会社によっては日本語の関数とか変数は別に珍しくなかったな
408 名前:デフォルトの名無しさん (アウアウエー Sadf-Ho7r) mailto:sage [2020/04/17(金) 23:04:41 ID:tPgd0P7Wa.net] 現実問題として、VBAで複雑なマクロを書くと重くて動かないと思うんだけどな それでも我慢して使っているのかな?
409 名前:デフォルトの名無しさん (ワッチョイ ffda-Ho7r) mailto:sage [2020/04/18(土) 08:44:33 ID:FzSpO5p/0.net] Excelでポリゴンゲー作るとか、 相当極端なことをしない限り大丈夫。
410 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 09:44:05.01 ID:QhOAvRvA0.net] 複雑な処理だからって重くなることはないだろ 重い処理をするから重くなるのであって
411 名前:デフォルトの名無しさん (ワッチョイ 1791-N0vN) mailto:sage [2020/04/18(土) 12:59:54 ID:DE4BsnuO0.net] >>402 お前、事務員だろ。 自分のボロに気付いて無いw 開発会社で働いたことある奴ならすぐわかる。
412 名前:デフォルトの名無しさん (ワッチョイ 1791-N0vN) mailto:sage [2020/04/18(土) 13:06:18 ID:DE4BsnuO0.net] >>405 スキルの低い奴はそうなる。 もちろんVBAは遅いけど、VBAで実施するようなことで、どうしても遅くなると想定されるような処理は殆ど無い。 VBAで実施するようなことじゃなければ別だが、そういう話はあまりない。
413 名前:デフォルトの名無しさん (ワッチョイ 1791-N0vN) mailto:sage [2020/04/18(土) 13:08:05 ID:DE4BsnuO0.net] >>404 話には聞いたことがあるが、自分が目の当たりにしたのは今回が初めてだ。
414 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 13:16:31.33 ID:XwSVwu50d.net] 関数名だけ日本語ってルールにしてるところは見たことがある 意外と見づらくなかった
415 名前:デフォルトの名無しさん (ドコグロ MMbf-h94e) mailto:sage [2020/04/18(土) 13:29:04 ID:bylan2xBM.net] >>408 > 開発会社で働いたことある奴ならすぐわかる。 なら
416 名前:詳しく説明してみなよ 客のものを勝手に引き継ぐとか犯罪だぞw [] [ここ壊れてます]
417 名前:デフォルトの名無しさん (ドコグロ MMdf-h94e) mailto:sage [2020/04/18(土) 13:33:12 ID:jvR0dANmM.net] >>411 まあ、読むのは慣れだと思う 慣れればそんなに苦じゃないし意味不明な英訳調の関数名や変数名よりマシ ただ入力がかなり面倒
418 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 13:38:19.65 ID:DE4BsnuO0.net] >>412 ??? 日本語が理解出来ない人? 客が依頼していた開発会社を変えただけのことだろ。 10年前依頼されてた開発会社のコメントがソースにあったが、プログラムは客のもんだ。 今、依頼されてるうちの会社がどうして10年前に依頼されてた会社の了解を取る必要がある?
419 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 13:43:26.52 ID:DE4BsnuO0.net] >>412 というかね、こんなの普通によくあることだぞ。 別会社のコメントなんて何度も見たことある。 開発会社で働いたことあれば、そんな所に違和感なんて感じないだろ。
420 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 13:53:22.59 ID:oUZZgMAe0.net] ソースコードの著作権をどっちがもつかは契約によるぞ 著作権をシステム会社側がもってるのに違う会社に開示したらそれは違法行為 知らずにやってるってのは昔はよく聞いた 10年前に依頼されてた会社の了解を取る必要はないが 普通はソース開示受けるなら開示元に著作権の確認はする
421 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 14:00:07.44 ID:DE4BsnuO0.net] >>416 そんなの常識だろ。 だが、そこまで分かってるなら結論も容易に想定出来ると思うんだが。 VBAの開発ではExcelならブックそのものにソースが付いてくるし、実質派遣のような形態も多い。 つまり、契約上客のもんになってると想定するのが普通。