Excel VBA 質問スレ Part71

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0f5f-nIK+)
垢版 |
2021/05/25(火) 12:48:01.06ID:mepUVc/i0
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付けるナリ

ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ

※前スレ
Excel VBA 質問スレ Part70
https://mevius.5ch.net/test/read.cgi/tech/1616072923/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2021/07/07(水) 19:09:31.08ID:xVUMLa1JM
xlsmはローカルにしか保存してないな
第三者に使わせて不具合起きても責任取れん
2021/07/07(水) 19:12:25.86ID:zI2mRysE0
東証一部上場企業の品質保証部門だけど割りとなんでもかんでも業務の自動化効率化にVBA使おうとするぞ
1万ステップのツール作成なんか日常茶飯事
2021/07/07(水) 19:34:48.73ID:qq0OAC8T0
関数程度で済む作業だけならいいんだけどどうあがいても無理な作業があるから
2021/07/07(水) 19:39:36.81ID:F1MfYkRH0
>>761
言っていることがよく分からないな。
そもそも会社から外に出てはいけない内容が載っていた時点で社外秘だ。載せてはいけない内容をVBAに拘る理由がよく分からん。
2021/07/07(水) 19:47:07.04ID:qq0OAC8T0
そういや、そもそも関数って汚くなるよね
大量の処理用の関数列のなんと醜いことか
関数使って並び替えするだけで大騒ぎだ
2021/07/07(水) 19:48:43.14ID:opTZ3hwSM
>>763
悪夢だなあ
2021/07/07(水) 20:29:59.95ID:zI2mRysE0
>>767
しかも作成から管理まで俺のワンオペ
2021/07/07(水) 20:39:17.25ID:qv0y4MQe0
>>761
マクロの入ったファイル自体を受け渡すのではなくて、マクロを使って動的生成されたxlsxファイルを受け渡すような用途にも使ってるよ。

Officeのマクロだからといって文書ファイルの生成に限らず、自分が普段パソコンを使って行っている繰り返し作業等もExcelマクロでツール化できるのがいいところ。
C#等でツール作成してもいいけど、Excelのほうが手軽なことが多い。
2021/07/07(水) 20:43:32.57ID:iU65xv8ZM
>>768
異動になったらどうすんの?
2021/07/07(水) 20:49:55.50ID:YxF5kXH/0
異動先の仕事をすれば良いんじゃね
2021/07/07(水) 20:50:38.88ID:zI2mRysE0
>>770
どうすんだろね?引継ぎ先もないからメンテナンスされないまま使い続けて使い物にならなくなってから大慌てするんかね?いなくなってから呼び出されんのだけは勘弁して欲しいんだがなぁ
2021/07/07(水) 21:12:41.25ID:iU65xv8ZM
退職チラつかせて給料アップいけそう
774デフォルトの名無しさん (ワッチョイ 035f-yPUF)
垢版 |
2021/07/07(水) 21:32:42.95ID:OWcilrjN0
事務員のオレオレマクロはともかく情シスがVBAでツール作ってるとか信じられん
テストとか保守とかどうしてるのさ
2021/07/07(水) 21:36:44.07ID:RMIDDIKO0
しない
必要に応じて各人で作り検証は最終成果物に対して行う
2021/07/07(水) 21:59:27.47ID:szgx/h0V0
ウチの一部上場企業のソレだわ
データをプリント、その数値を各フォーマットへ手入力とかザラにあるわ
VBAで入力&自動化ツールをいつくか作って感謝されたが、元データや出力の仕様変更があれば手直ししなければいけない

IT途上国だと心底思うわ
2021/07/07(水) 22:15:26.68ID:RMIDDIKO0
プリントして手入力はさすがに最近聞かない
2021/07/07(水) 22:16:30.49ID:RMIDDIKO0
とおもったが
ちょっとまえまで勤務表で無意味にやらされてたわ
ただのいじめだとおもう
2021/07/07(水) 22:49:08.74ID:bUHYGk470
>>755
Ruby では、CSV で、配列同士を連結すると、

require 'csv'

input_1 = <<"EOT"
1,1.1
2,2.2
EOT

input_2 = <<"EOT"
a.jpg
b.jpg
EOT

# 2次元配列
ary_1 = CSV.parse( input_1 )
ary_2 = CSV.parse( input_2 )

# 最初の配列に、後ろの配列を連結する
ary_1.zip( ary_2 ).each do |one, two|
one.push two[ 0 ]
end

# 2次元配列を、CSV 文字列に変換する
csv_str = ary_1.map( &:to_csv ).join
print csv_str

出力
1,1.1,a.jpg
2,2.2,b.jpg
780デフォルトの名無しさん (ワッチョイ 1e8e-p275)
垢版 |
2021/07/07(水) 23:24:13.32ID:2yFOFfGi0
>>779
いつものあいつ=Ruby馬鹿
2021/07/07(水) 23:30:24.01ID:qq0OAC8T0
エクセルのデータをプリントアウトして別のソフトに手入力させられたことある
たまらず自動化した
手作業だと月20時間くらいかかるんよアホくさい
2021/07/07(水) 23:40:11.63ID:gLv/ZatbM
うちは逆に、明らかにVBA程度で十分な業務も何でもかんでもITベンダーに投げてシステム化された結果身動き取れなくなってるわ
ちょっと業務を変えようと思えばすぐSIer案件だ
それなりに金持ちな会社なのと商売の特性上IT投資が通りやすいのとで、ジャブジャブ金が出る
2021/07/07(水) 23:45:26.80ID:qq0OAC8T0
そりゃ景気が良いようで何よりだね…
2021/07/08(木) 00:00:54.36ID:oSqIVDjt0
正直今EXCEL VBAとは全く関係ないシステムを作っているけど恐らくEXCEL VBAで全く遜色ないものが作れるのは内緒だ
2021/07/08(木) 00:17:04.27ID:GKH05+tfM
あるシステムをVBAで作ることを提案したら却下されて外部に投げる事になった

他部署で似たシステムをVBAで運用してたらエクセルファイルがクラッシュして惨事になったかららしい
VBAでもプロが作ってたらこんな事にはならなかったんじゃないかな多分
2021/07/08(木) 00:17:34.22ID:/77nN11b0
ウチの職場の課長はとにかくExcelの高い技術もっているヤツの評価を上げてくる
複雑な表作れるヤツは査定上がりまくり
なぜか社員同士で技術を競わせる。。。
これ変わった職場なんかな?
2021/07/08(木) 00:47:52.09ID:HGGhZaBw0
課長の頭がちょっと変ですね
2021/07/08(木) 00:52:55.83ID:FAdYkbsO0
A/Bテストとか確率統計的なのとか
背景にある仕事を無視して
複雑な表の一言で片づけてないか
2021/07/08(木) 03:09:52.98ID:1vTjU6YoH
特定の社員に依存してると、その人がいなくなった時に惨事になる
まともな会社はちゃんと金かけて外部に作らせる
2021/07/08(木) 07:23:57.98ID:fR9QCK450
そんな金があるならVBA使える人材を雇ったほうが良くない?
2021/07/08(木) 07:29:04.11ID:2yggkSqs0
どう考えても外部に頼む方が安いだろ
2021/07/08(木) 07:31:58.17ID:fR9QCK450
いや頼むたびに金かかるんだろ
今いるやつをいくらか首にして
これから雇うやつはvba使えるやつオンリーにしたほうが安くならんかね
2021/07/08(木) 07:46:45.16ID:2yggkSqs0
社員1人にやらせた場合、年間500百万くらい人件費かかるんだよ
2021/07/08(木) 07:47:16.89ID:1vTjU6YoH
ならんよ
コーディングの仕事がコンスタントに発生するわけないし、コーディングルールや担当者が変わった時の引き継ぎの方法など、ルール作りには莫大なコストがかかる
プログラムが書ける人だけいてもしょうがないんだよ
2021/07/08(木) 07:49:04.32ID:d7ZV5m1ma
年間5億かかる社員1人ってやばくないか
2021/07/08(木) 07:49:41.17ID:2yggkSqs0
500万ね
2021/07/08(木) 08:18:34.75ID:1RdbXluhM
別にVBAだけやらせる訳でもないし
規模にもよるんだろうけど
外部に頼んで操作性最悪のゴミプログラム作られるよりはマシだと思うけどな
ゴミプログラムでずっと非効率的な入力してるやつがいてゾッとした
2021/07/08(木) 08:49:58.84ID:2yggkSqs0
人事を自由にできる立場なら好きに人員配置すればいいんじゃね
お前の職場の問題は職場内で解決しろよ
799デフォルトの名無しさん (ラクッペペ MMc6-Q0eP)
垢版 |
2021/07/08(木) 09:42:40.08ID:dQrLp+p1M
で、いつもの人みたいなのが入社してくる
2021/07/08(木) 10:33:08.75ID:hO4Y7gtya
気づいたらrubyで組まれてるよ
2021/07/08(木) 11:06:41.42ID:qzQUzceM0
あほか
2021/07/08(木) 13:17:32.45ID:FOZeM4k/0
外注するといくらくらいかかるのだろうか
803デフォルトの名無しさん (ラクッペペ MMc6-Q0eP)
垢版 |
2021/07/08(木) 14:11:06.03ID:dQrLp+p1M
毎日要求する仕様が変わっていくからそれに対応するには た く さ ん いるよ
2021/07/08(木) 14:17:02.21ID:oSqIVDjt0
https://www.itra.co.jp/webmedia/programming_language_ranking.html

こうやって見てるとVBAの年収が611万、
月に換算して大体ひとり頭51万くらい。
これに使うPCのリース料や
交通費支払いを含めてひとり頭53万くらい
見とけばいいんじゃないの?
2021/07/08(木) 14:43:27.68ID:n1pxwHJS0
特定のセルへのリンクは番地指定ですが、この場合にリンク先の情報をソートしてしまうと全部ずれてしまい、
出鱈目なリンクになってしまいますが
ソートしてもリンクが保たれるように番地以外で指定できる方法は無いのでしょうか?
2021/07/08(木) 15:11:39.55ID:/77nN11b0
求人要項に「Excelの機能関数マクロに精通している方」と募集すれば腕自慢の人材がたくさん応募してくるはず
2021/07/08(木) 15:35:33.49ID:cFZgjTgGM
>>805
セルに名前をつける
Sheet1のA1のセルにhogepiyoって名前を付けたら
Sheet1.Range(″hogepiyo“)で指定可能
2021/07/08(木) 15:51:51.75ID:n1pxwHJS0
>>807
こんな手があったんですねぇ、勉強になりました。
ありがとうございます!
2021/07/08(木) 17:31:18.98ID:2yggkSqs0
名前のリンク切れてゴミが残るので使わなくなった名前は削除忘れるなよ
2021/07/08(木) 18:55:36.10ID:n1pxwHJS0
>>809
ありがとうございます。
2021/07/08(木) 20:34:54.66ID:9c8Bf8hB0
長い自分語りからやっと質問が来て草
2021/07/08(木) 20:58:45.45ID:RI/EjZKO0
教えて下さい。
名前の定義を設定したセルの値を、他のブックからセル指定ではなく定義名で参照して変数に格納したいのですが、どのような構文になりますか?
2021/07/08(木) 22:21:17.23ID:j/81gfVw0
セル番地で指定するときと同じで

変数名 = WorkBooks("ブック名").WorkSheets("シート名").Range("セルの名前").Value
2021/07/08(木) 22:31:20.47ID:fR9QCK450
>>804
えっVBA使えるだけでその年収?マジで?
2021/07/09(金) 00:24:58.21ID:7Ablxh2G0
>>814
もちろん上下のバラつきはあるだろうけどそんなもん。
もし驚くほど自分の貰ってる給料が安いならVBAの中でもそれだけ簡単な作業なのか
あるいはそれだけ中抜きが発生していると言うことだと思うよ。
2021/07/09(金) 00:33:20.26ID:BJPqqRZNM
どれくらいの事ができれば600万円稼げる?
無理だろ
2021/07/09(金) 00:49:15.02ID:X/VBsNsh0
VBA使えるプログラマの年収だろ
2021/07/09(金) 00:51:46.29ID:titf6IVJH
つまりVBAは使えないと言っといた方が給料は上がる
2021/07/09(金) 01:18:28.83ID:X/VBsNsh0
それは案外ある

履歴書に「VBA」ってあったら、
この人VBAにスペース割かないといけないほど技術力のアピールポイントないのかと心配になる
2021/07/09(金) 02:04:09.67ID:7Ablxh2G0
そうかな?
Javascriptも出来てASP.NetのVB.Net、C#、
普通にCやC++、Pythonやアセンブラが経歴書に載ってたとしても俺ならVBAも書いとくよ。
EXCELやそのVBAはUTやITとかでデータの整合性を確認するのに必要不可欠だから書いてあるとそういうのも効率よく手っ取り早くやれると判断されるからね。
2021/07/09(金) 02:31:07.79ID:cG7xmRD20
必要ないよ〜
2021/07/09(金) 03:38:16.92ID:X/VBsNsh0
なんだろうな
お前にとってテスト結果をエクセルにまとめるのは技術力の一つだと思ってるのかもしれないけど、
エクセルに関数打ち込んだり簡単なマクロ操作したりなんて
その場で適当にググって作れるものという判断です。

仮にそれをVBAとかを駆使して美しく作っても
「おえかきのセンスがあるひとだ」「こんなのに凝ってヒマなんだな」って扱いです。
2021/07/09(金) 04:28:38.56ID:5D7N00g40
VBA使えます(※ただしEXCELに限る) って書かないと
2021/07/09(金) 05:10:19.31ID:7Ablxh2G0
>>822
大丈夫です。
適当にその場凌ぎにググって書いて動きゃ後はどうでもいいと思ってる人のソースはVBAに限らず一時が万事そんな感じです。

そして適当な仕事しか出来ないので給料も安く同じ現場で長続きしません。3ヶ月から半年で退場させられてしまいます。
プロパーであった場合は周りから使えない人というレッテルを貼られて辞めたり左遷されたりします。

どうでしょう。あなたもそういった考えを捨ててもう一歩先に進んでみては?

いつものRubyの人か他のどの言語やってる人か分かりませんが、わざわざ他の言語のスレに来てその言語を見下したような発言をしてマウントをとったような気になる惨めな心境ではなく、本来の自分の言語のスレでマウントが取れるようになるかも知れませんよ。

もっとも、そこまで行けば精神的に余裕が生まれるのでマウントを取ろうとも思わなくなるかも知れません。
2021/07/09(金) 09:05:08.09ID:lamjRmUpM
俺は>>822に同意するわ
俺の経験としても、少なくとも今の会社と前職ではVBAスキルについてはだいたい>>822のような認識だったよ
>>824の言いたいこともわからないでもないが、傍から見りゃそれこそ突然一方的な人格攻撃を仕掛けてマウント取ろうとしてるようにしか見えるから気を付けたほうがいいぞ
2021/07/09(金) 09:42:41.99ID:qNLMFspTp
まぁVBAのスレで碌にVBAやったことない奴が適当なこと書いて煽ってるんだから何言われてもしゃーなし
2021/07/09(金) 15:37:52.84ID:cG7xmRD20
ネットに転がっている野良マクロをコピペして「マクロを作った気」になっているのは最低でしょ
2021/07/09(金) 16:40:19.80ID:q2X6MUv3a
突然一方的か?俺には>>822が2行目から殴り掛かってるように見えるんだけど…
2021/07/09(金) 16:40:49.31ID:lAEJntQuM
そうかなあ
Webから適当にコピペして使うのって、ある程度ちゃんとしたプログラミングのバックグラウンドがないと結構難しいと思うよ
本当に能力の低い人はググってもそれを使いこなすことができず、サンプルを渡してやらないと自分で何も作れない
2021/07/09(金) 17:26:50.00ID:titf6IVJH
初心者まはまず西武労働レストランでアルバイトしてこい
2021/07/09(金) 18:19:47.05ID:5D7N00g40
みんな優しいな
どこかの誰かがよその職場でEXCELマクロに四苦八苦しているとか正直どうでもいいことなのにね
2021/07/09(金) 18:30:47.59ID:iJqYAcx/M
>>813
ありがとうございました。
2021/07/09(金) 23:25:55.24ID:X/VBsNsh0
>>832
どういたしまして

ただ、この手の質問が出るって事は普段は
Set MyRange = Range("名前")
みたいに省略してたりする?

上記は勝手に ActiveSheet.Range("名前") だと解釈されるので、
出来るだけオブジェクト修飾子を省略せずに書いた方が思わぬトラブルが減るよ。
毎回書くのが億劫な場合は次のようにすると楽。

' 事前に変数に参照先を割り当てる
Dim MainSheet1 As WorkSheet
Set MainSheet1 = WorkBooks("ブック名").WorkSheets("シート名")

' プロパティで定義する
Private Property Get MainSheet2() As MySheet
Set MainSheet2 = WorkBooks("ブック名").WorkSheets("シート名")
End Property

滅多にないけど、複数のエクセルを参照してる場合は
どのエクセルかを示すApplicationオブジェクトからの参照も必要になる

Set MainSheet1 = MainApplication.WorkBooks("ブック名").WorkSheets("シート名")
2021/07/10(土) 02:33:21.25ID:1/iYafxq0
>>833
>上記は勝手に ActiveSheet.Range("名前") だと解釈されるので
これもよくある勘違いだが間違ってるぞ
シートモジュールのコードだと未修飾のRangeはそのシートだ
なのでActiveSheetを期待して省略してもそうならないというバグのもとになる

まあ、シート指定省略するなってことだが
2021/07/10(土) 05:43:04.57ID:snEMoFgF0
>>833
SDIになって以降はオブジェクト装飾子は明示的に指定するようにしています。
少し長い処理中に他のブック触ろうとする輩がいるもんで。
2021/07/10(土) 08:22:58.40ID:nZ2Tccbk0
>>834
確認したら確かにそうだった
訂正ありがとう
2021/07/12(月) 01:12:57.21ID:sSXCOhFa0
最近は仕事で自動化できる作業がなくなって達成感なくなって
つまらん
2021/07/12(月) 03:20:10.46ID:SFDNlCO90
せやろか?
2021/07/12(月) 07:01:52.54ID:fr4XvaeQa
それで給料もらえていいやん
2021/07/12(月) 12:10:22.77ID:SFDNlCO90
給料のためじゃなくて、承認欲求のためにやっている人が職場にいる
2021/07/12(月) 14:35:00.51ID:qFdN8mlda
他人事
2021/07/12(月) 16:16:37.63ID:WA3n3jxU0
ほか、じんじ
2021/07/13(火) 01:44:54.78ID:Cuc65Kjp0
仕事も承認欲求の一つやん
なまぽでそれなりの生活できるのに
2021/07/13(火) 05:37:58.85ID:ey6/x0sX0
職場のすべての問題は上司に責任がある
2021/07/13(火) 05:39:59.28ID:ey6/x0sX0
管理、監督の責任な
2021/07/13(火) 05:43:34.85ID:Cuc65Kjp0
責任の所在と原因が何かは別だがな
2021/07/13(火) 07:02:58.15ID:CA19+vjaa
上司の許可なく勝手なことはできないないし
やれといわれればやるしかない
2021/07/13(火) 19:50:44.83ID:V9rD1NRmd
質問スレなのは承知で愚痴りつつ質問
長文すまん

無意味な事務作業をなくしたく、
Excel初心者から必死で勉強し、中級くらいまでVBAを使えるようになった
おかげで100時間級の作業を5時間以内に終わらせることができるようになったよ
ついでにピボットテーブルも使えない同僚のために自動化したりもした

組織のためになったと思っていたんだよ

ところが上司と同僚が変わり全くExcel知識がなく、マクロは愚かvlookupやピボットテーブルも属人化という始末
マクロが動くときは便利に使うくせに、データを壊して動かなくなったら急に切れる

俺が悪という風向きになってきた

ちなみに今期の部のミッションにはDX化がある

もうこれまで作ってきたマクロは共有せずに自分だけで使った方がいいかな?
2021/07/13(火) 19:58:54.40ID:t+hTMRm+0
そもそも使う側がvbaや関数を拒否してるんなら
あなたの言う道以外にないのでは
2021/07/13(火) 20:00:22.01ID:t+hTMRm+0
よくvbaなんて誰でもできるって言う風潮あるけど幻想だよね
楽になる道があるのにそこに行かないで賽の河原で石を積む作業を延々してるやつなんて腐るほど居る
2021/07/13(火) 20:06:08.68ID:V9rD1NRmd
>>849-850

回答ありがとう
ピボットテーブルとvlookupなんてググって10分もすりゃ覚えられるのに
なんでやらないんだろう
ちなみにそれらのマニュアルも置いてあるが誰も読まない
苦手意識の強い人はもうヒステリーになっちゃうよね

ブラックボックス化させたくないので撤収させよう

恐らくあいつらは電卓まで退化する
2021/07/13(火) 20:07:40.57ID:PCfW/7XL0
>>848
>マクロが動くときは便利に使うくせに

便利さを知っちゃってるなら元のアナログ作業には戻れんと思うけど...
2021/07/13(火) 20:11:27.84ID:DIJuY5g3a
苦手な人は、ワンクリックに魂込めて仕事してる気になってるタイプが多いんだよ。
自動化で楽するなんてもってのほかだってねw
なので、できなくてもやってもらいたいと頼んでくる人に限ってます。
2021/07/13(火) 20:12:15.01ID:t+hTMRm+0
まあ人に生殺与奪権握られるのは嫌だと思うけどね
それなら今からでもvbaや関数の勉強したらどうかって思うけど
なかなかそうはならないのが人間
2021/07/13(火) 20:19:45.88ID:V9rD1NRmd
依頼ベースで処理していけばいいのかな?
とりあえず撤収して様子見かな?
2021/07/13(火) 20:27:54.15ID:DIJuY5g3a
>>855
あなたの職場での役割が自動化でなくて、できる力があるが故のことならそれでいいのでは?
こっちからわざわざ「やってあげようか?」なんて言う必要もないし、烏滸がましい気もしますし。
あなたが社内改善とかのそういったチームに所属するなら話は別ですが。
2021/07/13(火) 20:46:27.58ID:V9rD1NRmd
>>856
総務なので社内改善の要素はあります
特にDX推進を求められています

職場での役割は、自動化というかPC全般、データを与えておけばやたら早く処理をするという扱いの作業者です
また、管理表等のマスタの作成・管理もしています
結構な大切な仕事が多く、自惚れではなくルーチンワークを裏で牛耳っている扱いとなります
ただそれが課長が気に食わないようです

できればリモート環境を維持したいので牛耳りポジションでいたいのですが、なかなか調整が難しいです
2021/07/13(火) 20:54:13.36ID:ecK6gxVxM
全角でDX
とても気持ち悪い
2021/07/13(火) 20:55:02.58ID:GMVrqor30
ホントそう、VBAなんて楽勝なはずと言っているヤツは多分VBAやった事ないか余程の天才かのどちらかだね。
ひろゆき信者とかウザイは本気で楽勝と思い込んでるし
2021/07/13(火) 22:29:02.60ID:MP+HGEv70
そこらのVBAはかなり簡単に壊せちゃうんだよな
ローカルが基本だから環境にも依存しやすい
そういうところがやりずらい
言語的な難易度は低いんだけどね
2021/07/13(火) 22:38:33.67ID:8H9wIpZ60
開発環境が貧弱すぎなのが
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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