Excel VBA 質問スレ Part69

■ このスレッドは過去ログ倉庫に格納されています
2020/12/13(日) 00:22:23.67ID:Fd224klc0
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付ける

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

※前スレ
Excel VBA 質問スレ Part68
https://mevius.5ch.net/test/read.cgi/tech/1598756127/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2021/02/03(水) 23:54:01.09ID:KaBI8RGU0
結局そういうアナログな企業は、効率化か進まないしそんな脳みそじゃ事業の収益性も低い。よって給料も少ない。
2021/02/04(木) 00:29:12.39ID:EDgIUA7r0
そりゃそうだ
VBA出来て作業効率高い方が給料も高いわな
ただ単純に考えればVBAを
生業にしている奴より
VBAを補佐的に使って実際にはJavaや
C++、C#、Ruby等で大きなシステムを
作れる奴の方が給料は高い
下を見てもきりがないが
上を見てもきりがないのだよ
2021/02/04(木) 05:41:02.93ID:k/pdvxcQM
>>547
抜本的な改革は現場じゃできないです
国家公務員なんで法律や規則、本省が定めた通達や事務連絡、業務システム等を使うことは義務付けられていて、
特段の定めのない部分を各自の裁量の範囲内で工夫するしかない
そしてその範疇ですらある程度の規模の改革をしようとすると根強いアナログ派に今の業務を変える必要がないと反対されます
2021/02/04(木) 08:45:54.79ID:EDgIUA7r0
>>556
全く
それで糞国家公務員の糞議員が
こんなこと言ってるんだから笑える

【科学】「技術先進国とは呼べなくなった日本…デジタル化は20年遅れ、未知数の研究への投資にも消極的」 元内閣府副大臣が警鐘 ★6 [ボラえもん★]
https://asahi.5ch.net/test/read.cgi/newsplus/1612392403/
2021/02/04(木) 12:43:48.65ID:HL3/AUUDa
システムは作るのが目的ではなく、運用してなんぼ
2021/02/04(木) 16:00:33.10ID:UCczH9pi0
政治家が無理矢理変えてあげないとダメなままってことだね。
しかもいい方向に変えようとすると文句を言うほどの無能の二乗。
政治家の改革に公務員は文句を言ってはならないという法律を作らないとな。
2021/02/04(木) 18:23:19.39ID:Si5WR9J9M
予算分捕るためのシステム構築だからいざ運用しようとすると結局人を介しての無駄な作業になってる
561デフォルトの名無しさん (オッペケ Srbd-akYw)
垢版 |
2021/02/04(木) 18:37:47.68ID:FKk50fHur
Open、put といったバイナリーファイル作成するコマンド類使ってファイル書き出したら、
破損しているとメッセージが出る。
それでも修復して開くと元ファイルと同じような感じなのですが、破損されないやり方ってありますか?ちなみにWordやエクセル形式でなってます。
2021/02/04(木) 19:17:39.93ID:4EyDekmA0
民営化勧めた結果だろ
国が技術に直接投資できる機会が減っただけ
2021/02/04(木) 19:49:33.76ID:oAeYA3FP0
誰かVBAでココア作ってやれよ
2021/02/04(木) 19:53:24.63ID:hiF+rUbe0
VBAでモバイル向けアプリは不可能
2021/02/04(木) 20:04:35.91ID:Gq769HFz0
スレチ
2021/02/04(木) 20:22:03.56ID:txoKZHIlx
>>553
東証一部上場のnot ITな技術職だけど
周りびっくりするほどマクロ使える人居ないよ
スクリプトの存在知ってる人で10人に一人くらい
年齢層高くてWindowsupdateも怖いってな感じな
アナログ昭和な雰囲気が色濃く残る
でも儲かってんだからあんまり気にしないって感じでな
2021/02/04(木) 21:59:36.09ID:SP6gWQY80
>>566
よその会社がどんなだろうとわしらに関係ないし
2021/02/05(金) 00:16:00.19ID:7kBPI4G70
HashiCorp の時価総額は5,000億円、GitHub は8,000億円で、

Shopify は15兆円で、
Airbnb は10兆円で、米ホテル大手3社の合計を超える

Ruby on Rails だと、社員1,000人で、1兆円ぐらい行く。
他の言語の10倍ぐらい高い感じ
2021/02/05(金) 01:22:13.93ID:iyRthznT0
だからなに
2021/02/05(金) 11:14:22.52ID:s99X7duh0
何かいているんだろうね
誤爆かな
2021/02/05(金) 19:34:57.84ID:6dLnjK/10
お前が死ぬ?
だからなに?
2021/02/06(土) 07:31:11.79ID:h7KDjzAUa
たらばがに?
2021/02/06(土) 10:04:32.10ID:vJxzd/Np0
タラバガニはカニとつくがヤドカリの仲間
2021/02/06(土) 10:30:51.90ID:V74K/t/p0
前レスにあったVBAでChromeのWEB操作って安定するの?
2021/02/06(土) 10:31:59.83ID:V74K/t/p0
今流行りのRPAってVBAのsendkeyみたいなもんなのかなー
2021/02/06(土) 16:20:00.03ID:Dqii0zXCd
>>575
全然違うw

VBAでも同じことが出来るがSendkeys使うのは、かなりレベルが低い。

普通はUIAutomationか古くからのウィンドウハンドルにコントロール毎の個別メッセージ投げる方法。
2021/02/06(土) 16:31:09.62ID:V74K/t/p0
UIAutomationはじめてきいたよ
検索したら結構すごいな
ありがとうだよ
2021/02/06(土) 19:33:52.07ID:fN47MGl7x
UIAutomation不安定で使いにくいよ
2021/02/06(土) 20:06:48.07ID:V74K/t/p0
あ、そうなの
安定は何?
2021/02/06(土) 20:46:25.88ID:Ye4r/rjw0
Hand
2021/02/06(土) 21:31:42.19ID:V74K/t/p0
Hand?
検索しても出てこない
2021/02/06(土) 21:32:07.41ID:UWEF+xf00
手作業って意味では?
2021/02/06(土) 21:37:41.59ID:V74K/t/p0
えっ!(>@<)
2021/02/06(土) 21:43:24.63ID:lh4GrNRq0
>>578
自分の技術が未熟なだけだろ。
2021/02/08(月) 08:31:47.69ID:3VxmPK6Z0
他の言語にはできてVBAにはできないことって何がある?
2021/02/08(月) 10:21:36.60ID:Scq1JBqB0
環境構築
2021/02/08(月) 10:40:50.82ID:+Mz9f4POH
>>585
言語も色々あるから、VBA「だけ」にできないことってのは思いつかない
VBA「にも」できない、ならexe化とか色々あるけど
2021/02/08(月) 11:53:50.27ID:i/vSXK/G0
>>585
Object指向言語で言うところの継承。
VBAにもインターフェース継承と言うものはあるが、
あれはObject指向言語の委譲に当たるので別物。
2021/02/08(月) 12:19:06.34ID:dnKpq+Faa
>>585
エクセルを使わないで何かする
2021/02/08(月) 12:48:06.83ID:qHUCVA4k0
>>585
全く出来ないわけじゃ無いけど、実質無理なのはマルチスレッド。
マルチプロセスなら出来るけど。
2021/02/08(月) 18:11:48.67ID:p8c3QmB90
ブックを閉じるときに、全部のシートでA4、A6、A18、A20、A22のいずれかのセルに値が入っていたら、
シート名の先頭に"済"をつけて、シートを最後尾に移動するマクロを作りたいのですが、Worksheets(ws).Name = "済" & Worksheets(ws).Nameの所で
「実行時エラー13・型が一致しません」になります

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim ws As Worksheet
For Each ws In Worksheets
ws.Activate
If ws.Cells(4, 1) Like "" And _
ws.Cells(6, 1) Like "" And _
ws.Cells(18, 1) Like "" And _
ws.Cells(20, 1) Like "" And _
ws.Cells(30, 1) Like "" Then
Else
Worksheets(ws).Name = "済" & Worksheets(ws).Name
ws.Move After:=Sheets(Sheets.Count)
End If
Next ws

Application.Quit
ThisWorkbook.Close savechanges:=True

End Sub
2021/02/08(月) 18:14:26.48ID:NxJgvgy90
そりゃ一致しないw
Worksheets(ws).Nameじゃなくて、ws.nameでいけるよ
2021/02/08(月) 18:18:43.05ID:p8c3QmB90
>>592
ありがとうございますm(_ _)m
2021/02/08(月) 20:35:33.37ID:zFuXTVqB0
wsに何を入れてるか自分でわかってないのでは
2021/02/08(月) 22:23:33.63ID:PnrMZIJR0
>>594
エラーになってる行以外は正しいからちょっとした勘違いじゃね?
それよりFor Each ... In WorkSheets のループ中にシートの移動とかして大丈夫なんだっけ?
2021/02/08(月) 22:58:25.06ID:dqyQLjrK0
Like ""じゃなくて.Value <> ""にしてElse消した方が分かりやすいとは思う
まあその辺は好みか
2021/02/08(月) 23:02:43.36ID:PnrMZIJR0
>>596
> Like ""じゃなくて.Value <> ""にしてElse消した方が
And を Or にするのを忘れてるぞ…
2021/02/08(月) 23:11:37.90ID:dqyQLjrK0
そんな揚げ足取らんでも
2021/02/08(月) 23:37:22.94ID:+Mz9f4POH
可読性無視

For Each ws In Worksheets
 with ws
  .Activate
  If .Cells(4, 1) & .Cells(6, 1) & .Cells(18, 1) & .Cells(20, 1) & .Cells(30, 1) <> "" then
   .Name = "済" & .Name
   .Move After:=Sheets(Sheets.Count)
  End If
 End with
Next
2021/02/08(月) 23:44:11.84ID:hflY2uffd
最近はexcel vbaを淘汰しようとkintoneとかゆうのが台頭してきたな
2021/02/09(火) 00:16:34.90ID:WNqxBDcE0
>>600
大体今までの経験則から言うと
ノンプログラミングというのは
ろくなことがない。

無理に纏めようとして
歪みが生じて
結局ぐちゃぐちゃになるのがオチ
2021/02/09(火) 00:29:46.89ID:eSMVOSkL0
>>600
結局、スクリプトとかが必要になる
2021/02/09(火) 00:46:13.94ID:zh7tau7O0
Select文で求めない条件を並べるのもおすすめ

Select Case Empty
Case ws.Cells(4, 1).Value
....
Case ws.Cells(30, 1).Value
Case Else
Worksheets(ws).Name = "済" & Worksheets(ws).Name
End Select

Case節で分けなくてもカンマで条件を繋げても問題ない
短絡評価にもなる
2021/02/09(火) 11:57:03.39ID:RXmZGByb0
sagasu= Dir(ThisWorkbook.Path & ”作業ファイル*20210209*”)

Worksbooks.Open(以下略)

みたいな感じで自動でファイルを探してきて開くマクロを作りたいのですが、20210209の部分が常に変わるので、
変数=hizuke(yymmdd、str)を定義したのでこれをDir関数にワイルドカードつきで組み込みたいのですができませんか?
初歩的かもしれませんが検索しても見つからなくて、、、
2021/02/09(火) 12:24:40.43ID:3oJYLekcH
>>604
sagasu= Dir(ThisWorkbook.Path & "作業ファイル*" & 変数 & "*")

あと、hizukeって関数は自作しなくてもFormatというのがある
2021/02/09(火) 16:16:16.99ID:RXmZGByb0
>>605
やってみたらできた
ありがとうございます!!
2021/02/09(火) 17:23:48.59ID:/LZ4DWEX0
いつものあれか
608デフォルトの名無しさん (ワッチョイ 9fe6-/W+d)
垢版 |
2021/02/10(水) 01:23:44.62ID:nFlUbaHj0
足し算のできないいつもの人か
2021/02/10(水) 21:21:46.44ID:LZ9Af/PB0
良かったよ
プロだらけだったらヤバいスレになるw
趣味と後学のために少しずつやっていたら好きになってきた。
仕事で使う機会あまりないわ
610デフォルトの名無しさん (ラクッペペ MMde-HHI4)
垢版 |
2021/02/12(金) 13:51:51.87ID:IzjdsqjHM
しじいの言う「後学」という単語に哀愁を感じる
2021/02/12(金) 15:55:10.24ID:/wh0XpHtM
Excelの新機能「Lambda関数」によって「Excelの数式がチューリング完全になった」とナデラCEO。プログラミング言語としてのExcel数式であらゆる計算が可能に
https://www.publickey1.jp/blog/21/excellambdaexcelceoexcel.html
612デフォルトの名無しさん (ラクッペペ MMde-HHI4)
垢版 |
2021/02/12(金) 16:16:26.53ID:IzjdsqjHM
チューリングウイルスに期待
2021/02/12(金) 17:41:16.52ID:o9EDytUaM
マクロを10個くらいリボンに登録したらVBEがアドインだらけになってワロタ
どうやらxmlを作って一つのアドインとしてまとめて登録するのがセオリーみたいだな
2021/02/12(金) 20:11:52.96ID:00Lfe/Nd0
>>611
ええええええええええええええええええええええええ

ちょっと驚愕のニュースだ
2021/02/12(金) 20:13:11.50ID:00Lfe/Nd0
つまりもうマクロを四苦八苦して作る必要はないんだな!?
2021/02/12(金) 20:18:24.17ID:00Lfe/Nd0
Excelだ
Excelの時代が来る
2021/02/12(金) 20:22:55.94ID:eP0byIu+0
重さが気になる
便利だけど重くて出来るだけ避けるような関数にならないか
2021/02/12(金) 20:59:52.79ID:jxDcSv/l0
>>611
よくわからんけどVBA使わなくてもユーザー定義関数が書けるようになったのか?
でもそれだけじゃチューリング完全じゃないよね?
誰が説明してくれ…
2021/02/12(金) 21:35:08.47ID:4lNcO7mK0
よくわからんがVBA使わないでってことなら
https://papasensei365.com/excel-game-dq3/
2021/02/12(金) 22:07:36.71ID:aXSnuzkq0
LAMBDA の発表: Excel の数式をカスタム関数に変換する
https://techcommunity.microsoft.com/t5/excel-blog/announcing-lambda-turn-excel-formulas-into-custom-functions/ba-p/1925546
2021/02/12(金) 22:29:40.24ID:aRG7/C7T0
よく分からんけどlet使えてことだろ
2021/02/12(金) 22:35:41.83ID:jxDcSv/l0
>>620
ああ、なるほど名前の一種として関数定義ができるのか
再起を使えばチューリング完全にもなりそうだし、これいいな
ただ、また「(俺が見て)わけのわからん機能は使うな」とか老害に言われるんだろうなw
623デフォルトの名無しさん (ワッチョイ d2e6-HHI4)
垢版 |
2021/02/12(金) 23:02:00.32ID:82D6PoJM0
vbaにLinq付けてくれたほうが喜ばれるぞ
2021/02/12(金) 23:07:09.02ID:GpQsWoGq0
Lambdaがファーストクラスオブジェクトなら以下のようなscheme風の無限ループも書ける
((lambda (x) (x x)) (lambda (x) (x x)))
VBAの時代は終わるかも
625デフォルトの名無しさん (ワッチョイ d2e6-HHI4)
垢版 |
2021/02/12(金) 23:12:05.58ID:82D6PoJM0
まともなセル内数式エディタは付きますか?
2021/02/12(金) 23:18:29.37ID:00Lfe/Nd0
恐ろしいことにつくらしい
動画紹介でついてた
2021/02/13(土) 01:03:54.87ID:HkWfV2pEH
>>611
その lambda とやらは、不動点コンビネータを記述できるのですか?
2021/02/13(土) 04:07:19.47ID:yi//B+MQH
セキュリティでVBA禁止にしても、開いた瞬間に固まるブックが簡単に作れてしまうのかな
意図せず無限ループになったらデバッグが大変そう
2021/02/13(土) 06:10:57.87ID:qLIOxiK10
へー
EXCELでLinqやラムダ式が書けるようになるのか
Linqやラムダ式は.Netでも便利だけど
開発者をふるいに掛けているものの一つだから
理解出来ない脱落者はEXCELやVBAの
開発ですら役立たずの烙印を押される
そんなときが来るなんて夢にも思って無かったな
2021/02/13(土) 06:48:06.39ID:qLIOxiK10
あ、なんだ
VBAで使えたりLinqが使えるようになる訳では無いのか
あいつら基本レイトバインディングだからトレースするとき慣れてないと分かり辛いんだよな
良かったなお前ら
2021/02/13(土) 07:44:30.44ID:PYtZn7CJ0
>>628
> セキュリティでVBA禁止にしても、開いた瞬間に固まるブックが簡単に作れてしまうのかな
今でもあるけど計算回数の上限決めて打ち切るでしょ
2021/02/13(土) 07:56:56.81ID:IALcuoUI0
>>627
https://www.microsoft.com/en-us/research/blog/lambda-the-ultimatae-excel-worksheet-function/

LAMBDA is the true lambda that we know and love

you can define a fixed-point combinator

dekiru
2021/02/13(土) 11:41:30.80ID:PelpVnvk0
>>611
どんだけ凄いの?
だれか40歳にもわかるように説明して
2021/02/13(土) 12:21:31.92ID:PYtZn7CJ0
>>633
例えば、A1, B1, C1セルの中身をカンマで繋いでD1に格納したい
その際セルが空なら"[空だよーん]"ってしたいとするでしょ
今までは
D1: =TEXTJOIN(", ", FALSE, IF(A1 = "", "[空だよーん]", A1), IF(B1 = "", "[空だよーん]", B1), IF(C1 = "", "[空だよーん]", C1))
って似たようなIF式を何度も書く必要があったけどLAMBDA使えたら
f: =LAMBDA(x, IF(x = "", "[空だよーん]", x))
って定義しておけば
D1: =TEXTJOIN(", ", FALSE, f(A1), f(B1), f(C1))
って書ける
さらに課長に"[空だよーん]"とかふざけんな、"[空でございます]"にしろって言われてもLAMBDAの1箇所を直すだけで済む
2021/02/13(土) 12:41:35.80ID:BN4b1mTrp
>>633
40のお前がバレンタインデーでチョコ貰えるくらい凄い
2021/02/13(土) 12:49:30.81ID:PelpVnvk0
>>635
(>_<)\
2021/02/13(土) 14:07:20.92ID:IALcuoUI0
ただの関数定義じゃないか

それで十分だった気はするが
2021/02/13(土) 15:14:43.31ID:wz9KaBQo0
VBAに影響ほとんどなさそう
一発でピボ集計とかシート挿入とかに関係ないし
2021/02/13(土) 15:33:24.19ID:QpeYGISo0
と言うかラムダ式書けるなら、ついでにセル内でも数式の改行とインデントができるようにしてくれればよかったのにな
Excel職人のIFだらけの数式を読むのがまずキツイんだは
2021/02/13(土) 15:40:56.55ID:jHG+5C+w0
セルで分ければいいんだけど一つの数式にまとめられるのがすごいと思ってるからな
まあ自分もそうだったけど
2021/02/13(土) 17:28:35.52ID:VP7xI/GI0
単に複数セル使うのが嫌なだけってのが多いように見える
2021/02/13(土) 18:42:07.48ID:yi//B+MQH
まとめて印刷とか名前を付けて保存みたいな手作業を置き換えるVBAはなくならないかな
2021/02/13(土) 19:19:56.21ID:PYtZn7CJ0
>>639
> セル内でも数式の改行とインデントができるようにしてくれればよかったのにな
それ昔からできるぞ…
https://www.becoolusers.com/excel/img/long-formula-line-break20.png
2021/02/13(土) 19:28:08.81ID:jHG+5C+w0
営業の要ミーティング恐い((((;゚Д゚)))))))
2021/02/13(土) 21:29:40.36ID:T3s5Sft8d
>>639
普通にやってるけど。
読むのキツイんだろ。
2021/02/13(土) 21:48:38.47ID:wz9KaBQo0
うかる!って、説明ヘタだね…
2021/02/13(土) 22:16:40.52ID:OlVotr6u0
職場にIf and orの職人がいるオレに謝れ
2021/02/13(土) 23:44:53.12ID:29TtheM20
んー? 今までセル内の数式って受身の動きだったけど
それ実装すれば自発的に動けるようになるってこと?
2021/02/14(日) 00:40:24.25ID:X0FsHGir0
>>643
まじか、しらんかったわ
勝手にスペース削られたりするもんだと思ってたわ。。
2021/02/14(日) 00:53:19.53ID:D24G58JB0
>>648
自発的には動かないよ
今まではVBAでしかユーザー定義関数は作れなかったけどVBA使わなくても作れるって言うだけ
ただマクロを有効にする必要がないから実務としてはそれなりに意味はある
2021/02/14(日) 00:53:54.05ID:D24G58JB0
>>649
まあ俺もつい1年ぐらい前に知ったんだけどw
2021/02/14(日) 05:33:27.25ID:8cTA8eHd0
それよりかパイプライン演算子を実装して欲しい
ラムダ関数はその足掛かりな気もするけど
2021/02/14(日) 08:25:32.74ID:0LuW/JvdM
セルの書式を調べる関数はよ
■ このスレッドは過去ログ倉庫に格納されています