Excel VBA 質問スレ Part69at TECH
Excel VBA 質問スレ Part69 - 暇つぶし2ch524:デフォルトの名無しさん
21/02/02 21:54:41.99 6HeFUyi4M.net
扱いたいデータ次第でしょ
スマートメーターとか
デジタル温湿度計とか
インプットのデータが多様であればあるほど
得られる成果の種類も増えるというもの

525:デフォルトの名無しさん
21/02/02 22:01:58.54 6HeFUyi4M.net
素人質問
VBSで正規表現の(肯|否)定(先|後)読みが出来ないっぽいんだけど
気のせい?

526:デフォルトの名無しさん
21/02/02 22:07:07.66 /jXNxNj70.net
VBAを生活に役立てるとかいう発想が的外れすぎる
Officeでやりたいことを実現する為のものってことすら理解してない

527:デフォルトの名無しさん
21/02/02 22:11:21.43 CQc47MX20.net
そんなの正規表現じゃないからできないよ
もちろん一番肝心なVBAにとってのね

528:デフォルトの名無しさん
21/02/02 22:11:57.41 CQc47MX20.net
>>524
いまいち理屈になってないな

529:デフォルトの名無しさん
21/02/02 22:26:20.10 aIKF9fP10.net
俺はVBAで彼女できたし宝くじも当たった
死んだばあちゃんまで生き返って超ハッピーだわ

530:デフォルトの名無しさん
21/02/02 22:27:38.52 CQc47MX20.net
で、オフィス365で結婚できたんだろ?w

531:デフォルトの名無しさん
21/02/02 22:46:41.30 gUgxJ4hN0.net
競馬当てるアプリ作れないかなあ

532:デフォルトの名無しさん
21/02/02 22:59:13.66 IsWRFffm0.net
まず、「当てるアルゴリズム」を考えなきゃだなw

533:デフォルトの名無しさん
21/02/02 23:44:33.28 gUgxJ4hN0.net
ExcelVbaでコロナ撲滅できないかなあ

534:デフォルトの名無しさん
21/02/03 00:08:17.17 Yvoh8zTm0.net
感染者の数字をいじればあら不思議

535:デフォルトの名無しさん
21/02/03 00:13:00.26 IsA8Nz810.net
>>532
最近、感染者数を少なく発表して緊急事態事態宣言の効果だと思わせてるように感じるわ
でもそれで皆が緊張感を持てば本当に少なくなるわ

536:デフォルトの名無しさん
21/02/03 00:22:42.50 IsA8Nz810.net
数字の操作ってゆうか

537:デフォルトの名無しさん
21/02/03 00:25:44.87 LtKIm7ALM.net
>>525
意味がわかりません

538:デフォルトの名無しさん
21/02/03 09:12:57.83 oZwwFQVT0.net
>>532
なんだEXCELのおかげで減ったのかw

539:デフォルトの名無しさん
21/02/03 15:27:10.82 +BSqfKukd.net
感染者数、重症者数、検査数の計算に100パーセントExcel使ってるだろう

540:デフォルトの名無しさん
21/02/03 15:33:21.67 OWg+mFa00.net
公務員はエクセル使えるほど有能じゃないよ

541:デフォルトの名無しさん
21/02/03 15:43:30.53 +BSqfKukd.net
じゃどうやって計算するんだ

542:デフォルトの名無しさん
21/02/03 15:43:54.79 OWg+mFa00.net
電卓

543:デフォルトの名無しさん
21/02/03 15:47:57.83 vHpfqXCDM.net
役所の資料落としたら実数入ってることあったけど
関数での計算結果を貼り付けた訳じゃなかったのか
まぁ役所なら只管電卓叩くのはありそうだけど

544:デフォルトの名無しさん
21/02/03 15:48:46.57 pCF2gtkpM.net
公務員は電卓使えるほど有能じゃないよ

545:デフォルトの名無しさん
21/02/03 17:11:17.18 NujmcxqJ0.net
計算できるとこに丸投げ

546:デフォルトの名無しさん
21/02/03 19:08:06.27 3ZiqWZ4T0.net
>>539
算盤

547:デフォルトの名無しさん
21/02/03 20:08:10.32 N+D/8PXWM.net
国家公務員ですがVBAとADO(+SQL)でAccessや業務システムからデータ引っこ抜いて統計資料作ったりしてます
前任者は紙に印刷して正の字書いたり交通調査で使うカウンターみたいので数えてました
他にも色々業務楽にしましたが報告すると人が減らされるので、
隠しておいて余った時間に資格試験の勉強とかしてます

548:デフォルトの名無しさん
21/02/03 20:31:35.92 OWg+mFa00.net
手作業が当たり前の公務員の職場環境で
マクロ使うとめっちゃ時間余るわな

549:デフォルトの名無しさん
21/02/03 20:32:39.17 OWg+mFa00.net
結局>>545もやってる仕事は
効率化なぞしてない無能公務員のままってことなんだから

550:デフォルトの名無しさん
21/02/03 21:04:10.99 8fFe9VfNM.net
VBAによる小手先の自動化により無駄な業務の整理や業務フローの見直し、システム改善などの本質的な業務改善のモチベーションが失われ、
結果的に業務効率を下げているというのはVBAあるある

551:デフォルトの名無しさん
21/02/03 21:24:07.09 pw5uMyFVM.net
dictionaryに一括代入ってできますか?

552:デフォルトの名無しさん
21/02/03 21:29:55.02 u9u/PMRw0.net
>>541
只管とかよくすらっと出てくるね。

553:デフォルトの名無しさん
21/02/03 21:31:21.01 u9u/PMRw0.net
>>545
待てこら、それ税金…

554:デフォルトの名無しさん
21/02/03 23:26:22.08 IsA8Nz810.net
>>545
周りのひとはvbaやマクロの存在を知らない
業務ではほぼエクセルを使用
そんな企業に転職したい

555:デフォルトの名無しさん
21/02/03 23:34:48.39 OWg+mFa00.net
一般事務になるね
マクロできて当然の職場よりは時給下がると思う

556:デフォルトの名無しさん
21/02/03 23:54:01.09 KaBI8RGU0.net
結局そういうアナログな企業は、効率化か進まないしそんな脳みそじゃ事業の収益性も低い。よって給料も少ない。

557:デフォルトの名無しさん
21/02/04 00:29:12.39 EDgIUA7r0.net
そりゃそうだ
VBA出来て作業効率高い方が給料も高いわな
ただ単純に考えればVBAを
生業にしている奴より
VBAを補佐的に使って実際にはJavaや
C++、C#、Ruby等で大きなシステムを
作れる奴の方が給料は高い
下を見てもきりがないが
上を見てもきりがないのだよ

558:デフォルトの名無しさん
21/02/04 05:41:02.93 k/pdvxcQM.net
>>547
抜本的な改革は現場じゃできないです
国家公務員なんで法律や規則、本省が定めた通達や事務連絡、業務システム等を使うことは義務付けられていて、
特段の定めのない部分を各自の裁量の範囲内で工夫するしかない
そしてその範疇ですらある程度の規模の改革をしようとすると根強いアナログ派に今の業務を変える必要がないと反対されます

559:デフォルトの名無しさん
21/02/04 08:45:54.79 EDgIUA7r0.net
>>556
全く
それで糞国家公務員の糞議員が
こんなこと言ってるんだから笑える
【科学】「技術先進国とは呼べなくなった日本…デジタル化は20年遅れ、未知数の研究への投資にも消極的」 元内閣府副大臣が警鐘 ★6 [ボラえもん★]
スレリンク(newsplus板)

560:デフォルトの名無しさん
21/02/04 12:43:48.65 HL3/AUUDa.net
システムは作るのが目的ではなく、運用してなんぼ

561:デフォルトの名無しさん
21/02/04 16:00:33.10 UCczH9pi0.net
政治家が無理矢理変えてあげないとダメなままってことだね。
しかもいい方向に変えようとすると文句を言うほどの無能の二乗。
政治家の改革に公務員は文句を言ってはならないという法律を作らないとな。

562:デフォルトの名無しさん
21/02/04 18:23:19.39 Si5WR9J9M.net
予算分捕るためのシステム構築だからいざ運用しようとすると結局人を介しての無駄な作業になってる

563:デフォルトの名無しさん
21/02/04 18:37:47.68 FKk50fHur.net
Open、put といったバイナリーファイル作成するコマンド類使ってファイル書き出したら、
破損しているとメッセージが出る。
それでも修復して開くと元ファイルと同じような感じなのですが、破損されないやり方ってありますか?ちなみにWordやエクセル形式でなってます。

564:デフォルトの名無しさん
21/02/04 19:17:39.93 4EyDekmA0.net
民営化勧めた結果だろ
国が技術に直接投資できる機会が減っただけ

565:デフォルトの名無しさん
21/02/04 19:49:33.76 oAeYA3FP0.net
誰かVBAでココア作ってやれよ

566:デフォルトの名無しさん
21/02/04 19:53:24.63 hiF+rUbe0.net
VBAでモバイル向けアプリは不可能

567:デフォルトの名無しさん
21/02/04 20:04:35.91 Gq769HFz0.net
スレチ

568:デフォルトの名無しさん
21/02/04 20:22:03.56 txoKZHIlx.net
>>553
東証一部上場のnot ITな技術職だけど
周りびっくりするほどマクロ使える人居ないよ
スクリプトの存在知ってる人で10人に一人くらい
年齢層高くてWindowsupdateも怖いってな感じな
アナログ昭和な雰囲気が色濃く残る
でも儲かってんだからあんまり気にしないって感じでな

569:デフォルトの名無しさん
21/02/04 21:59:36.09 SP6gWQY80.net
>>566
よその会社がどんなだろうとわしらに関係ないし

570:デフォルトの名無しさん
21/02/05 00:16:00.19 7kBPI4G70.net
HashiCorp の時価総額は5,000億円、GitHub は8,000億円で、
Shopify は15兆円で、
Airbnb は10兆円で、米ホテル大手3社の合計を超える
Ruby on Rails だと、社員1,000人で、1兆円ぐらい行く。
他の言語の10倍ぐらい高い感じ

571:デフォルトの名無しさん
21/02/05 01:22:13.93 iyRthznT0.net
だからなに

572:デフォルトの名無しさん
21/02/05 11:14:22.52 s99X7duh0.net
何かいているんだろうね
誤爆かな

573:デフォルトの名無しさん
21/02/05 19:34:57.84 6dLnjK/10.net
お前が死ぬ?
だからなに?

574:デフォルトの名無しさん
21/02/06 07:31:11.79 h7KDjzAUa.net
たらばがに?

575:デフォルトの名無しさん
21/02/06 10:04:32.10 vJxzd/Np0.net
タラバガニはカニとつくがヤドカリの仲間

576:デフォルトの名無しさん
21/02/06 10:30:51.90 V74K/t/p0.net
前レスにあったVBAでChromeのWEB操作って安定するの?

577:デフォルトの名無しさん
21/02/06 10:31:59.83 V74K/t/p0.net
今流行りのRPAってVBAのsendkeyみたいなもんなのかなー

578:デフォルトの名無しさん
21/02/06 16:20:00.03 Dqii0zXCd.net
>>575
全然違うw
VBAでも同じことが出来るがSendkeys使うのは、かなりレベルが低い。
普通はUIAutomationか古くからのウィンドウハンドルにコントロール毎の個別メッセージ投げる方法。

579:デフォルトの名無しさん
21/02/06 16:31:09.62 V74K/t/p0.net
UIAutomationはじめてきいたよ
検索したら結構すごいな
ありがとうだよ

580:デフォルトの名無しさん
21/02/06 19:33:52.07 fN47MGl7x.net
UIAutomation不安定で使いにくいよ

581:デフォルトの名無しさん
21/02/06 20:06:48.07 V74K/t/p0.net
あ、そうなの
安定は何?

582:デフォルトの名無しさん
21/02/06 20:46:25.88 Ye4r/rjw0.net
Hand

583:デフォルトの名無しさん
21/02/06 21:31:42.19 V74K/t/p0.net
Hand?
検索しても出てこない

584:デフォルトの名無しさん
21/02/06 21:32:07.41 UWEF+xf00.net
手作業って意味では?

585:デフォルトの名無しさん
21/02/06 21:37:41.59 V74K/t/p0.net
えっ!(>@<)

586:デフォルトの名無しさん
21/02/06 21:43:24.63 lh4GrNRq0.net
>>578
自分の技術が未熟なだけだろ。

587:デフォルトの名無しさん
21/02/08 08:31:47.69 3VxmPK6Z0.net
他の言語にはできてVBAにはできないことって何がある?

588:デフォルトの名無しさん
21/02/08 10:21:36.60 Scq1JBqB0.net
環境構築

589:デフォルトの名無しさん
21/02/08 10:40:50.82 +Mz9f4POH.net
>>585
言語も色々あるから、VBA「だけ」にできないことってのは思いつかない
VBA「にも」できない、ならexe化とか色々あるけど

590:デフォルトの名無しさん
21/02/08 11:53:50.27 i/vSXK/G0.net
>>585
Object指向言語で言うところの継承。
VBAにもインターフェース継承と言うものはあるが、
あれはObject指向言語の委譲に当たるので別物。

591:デフォルトの名無しさん
21/02/08 12:19:06.34 dnKpq+Faa.net
>>585
エクセルを使わないで何かする

592:デフォルトの名無しさん
21/02/08 12:48:06.83 qHUCVA4k0.net
>>585
全く出来ないわけじゃ無いけど、実質無理なのはマルチスレッド。
マルチプロセスなら出来るけど。

593:デフォルトの名無しさん
21/02/08 18:11:48.67 p8c3QmB90.net
ブックを閉じるときに、全部のシートで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

594:デフォルトの名無しさん
21/02/08 18:14:26.48 NxJgvgy90.net
そりゃ一致しないw
Worksheets(ws).Nameじゃなくて、ws.nameでいけるよ

595:591
21/02/08 18:18:43.05 p8c3QmB90.net
>>592
ありがとうございますm(_ _)m

596:デフォルトの名無しさん
21/02/08 20:35:33.37 zFuXTVqB0.net
wsに何を入れてるか自分でわかってないのでは

597:デフォルトの名無しさん
21/02/08 22:23:33.63 PnrMZIJR0.net
>>594
エラーになってる行以外は正しいからちょっとした勘違いじゃね?
それよりFor Each ... In WorkSheets のループ中にシートの移動とかして大丈夫なんだっけ?

598:デフォルトの名無しさん
21/02/08 22:58:25.06 dqyQLjrK0.net
Like ""じゃなくて.Value <> ""にしてElse消した方が分かりやすいとは思う
まあその辺は好みか

599:デフォルトの名無しさん
21/02/08 23:02:43.36 PnrMZIJR0.net
>>596
> Like ""じゃなくて.Value <> ""にしてElse消した方が
And を Or にするのを忘れてるぞ…

600:デフォルトの名無しさん
21/02/08 23:11:37.90 dqyQLjrK0.net
そんな揚げ足取らんでも

601:デフォルトの名無しさん
21/02/08 23:37:22.94 +Mz9f4POH.net
可読性無視
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

602:デフォルトの名無しさん
21/02/08 23:44:11.84 hflY2uffd.net
最近はexcel vbaを淘汰しようとkintoneとかゆうのが台頭してきたな

603:デフォルトの名無しさん
21/02/09 00:16:34.90 WNqxBDcE0.net
>>600
大体今までの経験則から言うと
ノンプログラミングというのは
ろくなことがない。
無理に纏めようとして
歪みが生じて
結局ぐちゃぐちゃになるのがオチ

604:デフォルトの名無しさん
21/02/09 00:29:46.89 eSMVOSkL0.net
>>600
結局、スクリプトとかが必要になる

605:デフォルトの名無しさん
21/02/09 00:46:13.94 zh7tau7O0.net
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節で分けなくてもカンマで条件を繋げても問題ない
短絡評価にもなる

606:デフォルトの名無しさん
21/02/09 11:57:03.39 RXmZGByb0.net
sagasu= Dir(ThisWorkbook.Path & ”作業ファイル*20210209*”)
Worksbooks.Open(以下略)
みたいな感じで自動でファイルを探してきて開くマクロを作りたいのですが、20210209の部分が常に変わるので、
変数=hizuke(yymmdd、str)を定義したのでこれをDir関数にワイルドカードつきで組み込みたいのですができませんか?
初歩的かもしれませんが検索しても見つからなくて、、、

607:デフォルトの名無しさん
21/02/09 12:24:40.43 3oJYLekcH.net
>>604
sagasu= Dir(ThisWorkbook.Path & "作業ファイル*" & 変数 & "*")
あと、hizukeって関数は自作しなくてもFormatというのがある

608:デフォルトの名無しさん
21/02/09 16:16:16.99 RXmZGByb0.net
>>605
やってみたらできた
ありがとうございます!!

609:デフォルトの名無しさん
21/02/09 17:23:48.59 /LZ4DWEX0.net
いつものあれか

610:デフォルトの名無しさん
21/02/10 01:23:44.62 nFlUbaHj0.net
足し算のできないいつもの人か

611:デフォルトの名無しさん
21/02/10 21:21:46.44 LZ9Af/PB0.net
良かったよ
プロだらけだったらヤバいスレになるw
趣味と後学のために少しずつやっていたら好きになってきた。
仕事で使う機会あまりないわ

612:デフォルトの名無しさん
21/02/12 13:51:51.87 IzjdsqjHM.net
しじいの言う「後学」という単語に哀愁を感じる

613:デフォルトの名無しさん
21/02/12 15:55:10.24 /wh0XpHtM.net
Excelの新機能「Lambda関数」によって「Excelの数式がチューリング完全になった」とナデラCEO。プログラミング言語としてのExcel数式であらゆる計算が可能に
URLリンク(www.publickey1.jp)

614:デフォルトの名無しさん
21/02/12 16:16:26.53 IzjdsqjHM.net
チューリングウイルスに期待

615:デフォルトの名無しさん
21/02/12 17:41:16.52 o9EDytUaM.net
マクロを10個くらいリボンに登録したらVBEがアドインだらけになってワロタ
どうやらxmlを作って一つのアドインとしてまとめて登録するのがセオリーみたいだな

616:デフォルトの名無しさん
21/02/12 20:11:52.96 00Lfe/Nd0.net
>>611
ええええええええええええええええええええええええ
ちょっと驚愕のニュースだ

617:デフォルトの名無しさん
21/02/12 20:13:11.50 00Lfe/Nd0.net
つまりもうマクロを四苦八苦して作る必要はないんだな!?

618:デフォルトの名無しさん
21/02/12 20:18:24.17 00Lfe/Nd0.net
Excelだ
Excelの時代が来る

619:デフォルトの名無しさん
21/02/12 20:22:55.94 eP0byIu+0.net
重さが気になる
便利だけど重くて出来るだけ避けるような関数にならないか

620:デフォルトの名無しさん
21/02/12 20:59:52.79 jxDcSv/l0.net
>>611
よくわからんけどVBA使わなくてもユーザー定義関数が書けるようになったのか?
でもそれだけじゃチューリング完全じゃないよね?
誰が説明してくれ…

621:デフォルトの名無しさん
21/02/12 21:35:08.47 4lNcO7mK0.net
よくわからんがVBA使わないでってことなら
URLリンク(papasensei365.com)

622:デフォルトの名無しさん
21/02/12 22:07:36.71 aXSnuzkq0.net
LAMBDA の発表: Excel の数式をカスタム関数に変換する
URLリンク(techcommunity.microsoft.com)

623:デフォルトの名無しさん
21/02/12 22:29:40.24 aRG7/C7T0.net
よく分からんけどlet使えてことだろ

624:デフォルトの名無しさん
21/02/12 22:35:41.83 jxDcSv/l0.net
>>620
ああ、なるほど名前の一種として関数定義ができるのか
再起を使えばチューリング完全にもなりそうだし、これいいな
ただ、また「(俺が見て)わけのわからん機能は使うな」とか老害に言われるんだろうなw

625:デフォルトの名無しさん
21/02/12 23:02:00.32 82D6PoJM0.net
vbaにLinq付けてくれたほうが喜ばれるぞ

626:デフォルトの名無しさん
21/02/12 23:07:09.02 GpQsWoGq0.net
Lambdaがファーストクラスオブジェクトなら以下のようなscheme風の無限ループも書ける
((lambda (x) (x x)) (lambda (x) (x x)))
VBAの時代は終わるかも

627:デフォルトの名無しさん
21/02/12 23:12:05.58 82D6PoJM0.net
まともなセル内数式エディタは付きますか?

628:デフォルトの名無しさん
21/02/12 23:18:29.37 00Lfe/Nd0.net
恐ろしいことにつくらしい
動画紹介でついてた

629:
21/02/13 01:03:54.87 HkWfV2pEH.net
>>611
その lambda とやらは、不動点コンビネータを記述できるのですか?

630:デフォルトの名無しさん
21/02/13 04:07:19.47 yi//B+MQH.net
セキュリティでVBA禁止にしても、開いた瞬間に固まるブックが簡単に作れてしまうのかな
意図せず無限ループになったらデバッグが大変そう

631:デフォルトの名無しさん
21/02/13 06:10:57.87 qLIOxiK10.net
へー
EXCELでLinqやラムダ式が書けるようになるのか
Linqやラムダ式は.Netでも便利だけど
開発者をふるいに掛けているものの一つだから
理解出来ない脱落者はEXCELやVBAの
開発ですら役立たずの烙印を押される
そんなときが来るなんて夢にも思って無かったな

632:デフォルトの名無しさん
21/02/13 06:48:06.39 qLIOxiK10.net
あ、なんだ
VBAで使えたりLinqが使えるようになる訳では無いのか
あいつら基本レイトバインディングだからトレースするとき慣れてないと分かり辛いんだよな
良かったなお前ら

633:デフォルトの名無しさん
21/02/13 07:44:30.44 PYtZn7CJ0.net
>>628
> セキュリティでVBA禁止にしても、開いた瞬間に固まるブックが簡単に作れてしまうのかな
今でもあるけど計算回数の上限決めて打ち切るでしょ

634:デフォルトの名無しさん
21/02/13 07:56:56.81 IALcuoUI0.net
>>627
URLリンク(www.microsoft.com)
LAMBDA is the true lambda that we know and love
you can define a fixed-point combinator
dekiru

635:デフォルトの名無しさん
21/02/13 11:41:30.80 PelpVnvk0.net
>>611
どんだけ凄いの?
だれか40歳にもわかるように説明して

636:デフォルトの名無しさん
21/02/13 12:21:31.92 PYtZn7CJ0.net
>>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箇所を直すだけで済む

637:デフォルトの名無しさん
21/02/13 12:41:35.80 BN4b1mTrp.net
>>633
40のお前がバレンタインデーでチョコ貰えるくらい凄い

638:デフォルトの名無しさん
21/02/13 12:49:30.81 PelpVnvk0.net
>>635
(>_<)\

639:デフォルトの名無しさん
21/02/13 14:07:20.92 IALcuoUI0.net
ただの関数定義じゃないか
それで十分だった気はするが

640:デフォルトの名無しさん
21/02/13 15:14:43.31 wz9KaBQo0.net
VBAに影響ほとんどなさそう
一発でピボ集計とかシート挿入とかに関係ないし

641:デフォルトの名無しさん
21/02/13 15:33:24.19 QpeYGISo0.net
と言うかラムダ式書けるなら、ついでにセル内でも数式の改行とインデントができるようにしてくれればよかったのにな
Excel職人のIFだらけの数式を読むのがまずキツイんだは

642:デフォルトの名無しさん
21/02/13 15:40:56.55 jHG+5C+w0.net
セルで分ければいいんだけど一つの数式にまとめられるのがすごいと思ってるからな
まあ自分もそうだったけど

643:デフォルトの名無しさん
21/02/13 17:28:35.52 VP7xI/GI0.net
単に複数セル使うのが嫌なだけってのが多いように見える

644:デフォルトの名無しさん
21/02/13 18:42:07.48 yi//B+MQH.net
まとめて印刷とか名前を付けて保存みたいな手作業を置き換えるVBAはなくならないかな

645:デフォルトの名無しさん
21/02/13 19:19:56.21 PYtZn7CJ0.net
>>639
> セル内でも数式の改行とインデントができるようにしてくれればよかったのにな
それ昔からできるぞ…
URLリンク(www.becoolusers.com)

646:デフォルトの名無しさん
21/02/13 19:28:08.81 jHG+5C+w0.net
営業の要ミーティング恐い((((;゚Д゚)))))))

647:デフォルトの名無しさん
21/02/13 21:29:40.36 T3s5Sft8d.net
>>639
普通にやってるけど。
読むのキツイんだろ。

648:デフォルトの名無しさん
21/02/13 21:48:38.47 wz9KaBQo0.net
うかる!って、説明ヘタだね…

649:デフォルトの名無しさん
21/02/13 22:16:40.52 OlVotr6u0.net
職場にIf and orの職人がいるオレに謝れ

650:デフォルトの名無しさん
21/02/13 23:44:53.12 29TtheM20.net
んー? 今までセル内の数式って受身の動きだったけど
それ実装すれば自発的に動けるようになるってこと?

651:デフォルトの名無しさん
21/02/14 00:40:24.25 X0FsHGir0.net
>>643
まじか、しらんかったわ
勝手にスペース削られたりするもんだと思ってたわ。。

652:デフォルトの名無しさん
21/02/14 00:53:19.53 D24G58JB0.net
>>648
自発的には動かないよ
今まではVBAでしかユーザー定義関数は作れなかったけどVBA使わなくても作れるって言うだけ
ただマクロを有効にする必要がないから実務としてはそれなりに意味はある

653:デフォルトの名無しさん
21/02/14 00:53:54.05 D24G58JB0.net
>>649
まあ俺もつい1年ぐらい前に知ったんだけどw

654:デフォルトの名無しさん
21/02/14 05:33:27.25 8cTA8eHd0.net
それよりかパイプライン演算子を実装して欲しい
ラムダ関数はその足掛かりな気もするけど

655:デフォルトの名無しさん
21/02/14 08:25:32.74 0LuW/JvdM.net
セルの書式を調べる関数はよ

656:デフォルトの名無しさん
21/02/14 09:01:53.08 D24G58JB0.net
>>653
Cell("format", a1) じゃ駄目なの?
URLリンク(dekiru.net)

657:デフォルトの名無しさん
21/02/14 09:44:10.83 9bE5PNm50.net
EXCELって意外と古いの使ってたりするから受け渡しがどうかな

658:デフォルトの名無しさん
21/02/14 09:46:12.37 HYvJ8gAi0.net
>>652
一部がダメ文字の文字コード

659:デフォルトの名無しさん
21/02/14 10:33:56.69 ccxL17vjM.net
>>654
ああごめん
表示形式以外の書式ね
色とかフォントとか罫線とか

660:デフォルトの名無しさん
21/02/14 10:46:19.10 IPhvN32f0.net
もしかして >>653
データの「表示形式」だけでなくて
フォントや横位置/縦位置、塗りつぶし、罫線なんかの戻り値が欲しいのかしら?

661:デフォルトの名無しさん
21/02/14 10:47:17.03 IPhvN32f0.net
ありゃ。本人からの返事の方が早かった

662:デフォルトの名無しさん
21/02/14 11:28:53.22 D24G58JB0.net
>>657
4.0マクロ関数でどうぞ
URLリンク(blog.goo.ne.jp)

663:デフォルトの名無しさん
21/02/14 16:36:27.43 W30Sj/2D0.net
VBAはSelectのCaseで、False,Empty,Nullあたりが同一判定されて、個々に行えないのがクソ

664:デフォルトの名無しさん
21/02/14 17:23:19.56 D24G58JB0.net
>>661
VarTypeも知らない僕はアホです
っていうカミングアウトか?

665:デフォルトの名無しさん
21/02/14 19:08:55.75 hT3ZVIIc0.net
ねこ

666:デフォルトの名無しさん
21/02/15 11:39:26.92 S0ZRmbKV0.net
DIR関数を利用して以下のりようなロジックを見たのですが、
foldercheck = (Dir(wrkpath, vbDirectory) <> "")
()の中のロジックはどのような技法なんでしょうか
if Dir(wrkpath, vbDirectory) <> " then

667:664
21/02/15 13:15:47.99 S0ZRmbKV0.net
URLリンク(docs.microsoft.com)
Dim MyResult, Var1, Var2
MyResult = (45 < 35) ' Returns False.
MyResult = (45 = 45) ' Returns True.
自己解決しました。上記と同じなのですね。お騒がせしました。

668:デフォルトの名無しさん
21/02/15 19:45:33.20 olEKN+utr.net
フォルダへの書き込みのアクセス権をチェックするようなサンプルないですかね。

イメージとしてはフォームのフォルダ選択ボタンを押して選んだフォルダが書き込みできなければ選んだ時点でそういうメッセージを出したい。このあとアウトプットフォイルを書き込む際にエラーが出る前に

669:デフォルトの名無しさん
21/02/15 20:10:33.97 xaJaofAeH.net
>>666
まじめにやるならGetFileSecurityとGetAclInformationを使う
もっと簡単にやりたかったら、ダミーのファイルを1つ作ってみてOn Errorでエラーになったかどうか判定

670:デフォルトの名無しさん
21/02/15 20:15:42.96 nKU68rXI0.net
FSOのGetFileでフォルダーを取得して
Attlibutesプロパティ見ればいいんでないかな

671:デフォルトの名無しさん
21/02/15 20:16:42.83 nKU68rXI0.net
>>668訂正
GetFile → GetFolder
だった

672:デフォルトの名無しさん
21/02/15 20:30:32.32 btvLdCUB0.net
>>668
いいわけないだろw
そもそもフォルダのR属性は他の用途に使われている

673:デフォルトの名無しさん
21/02/15 22:00:51.83 iJ9piVTy0.net
普通にicacls呼べばいいじゃん

674:デフォルトの名無しさん
21/02/15 22:59:53.76 R4sT9O4+0.net
>>662
いや、それだと0と1がIntegerとしか返ってこないし、
TrueとFalseもBooleanとしか返ってこないから判定できないだろ。バカかお前?

675:デフォルトの名無しさん
21/02/15 23:48:13.25 yTkZToOt0.net
isnullはあったよなたしか

676:デフォルトの名無しさん
21/02/16 02:55:26.52 nbeJO0KhM.net
CSV形式で保存する前に、Serial値の表示形式をyyyy/m/dにマクロから変更して
保存してからその後開くと、"1/1/2020"とか意味分からんStr型になっちゃうんだけど、
誰か分かるひといる?
csvを取り込むソフトがどうしてもこの表示形式に変更しないと、うまく取り込めない謎仕様なんだ。
ちなみに、いったん保存してから開いてやってもダメだった。
(もちろん、手作業で開いて表示形式変更したらバグらないんだけど・・・)
rngObj.NumberFormatLocal = "yyyy/m/d"

677:デフォルトの名無しさん
21/02/16 07:43:45.82 +oOyZ54g0.net
>>672
型を判定してから値を判定すりゃいいだけだろ
応用力ないのか?

678:デフォルトの名無しさん
21/02/16 10:30:54.61 OCcCJKsW0.net
整数の1と小数の1.0だと値(バイナリ)が違うって知ったら狂いそうだな

679:デフォルトの名無しさん
21/02/16 11:04:29.70 +oOyZ54g0.net
>>674
いま手元にExcelないから確認できないけど
rngObj.NumberFormat = "yyyy/m/d"

book.SaveAs …, Local:=True
に、してみたらどうかな

680:デフォルトの名無しさん
21/02/16 11:41:24.25 XpWP4Lg+0.net
2021/2/15 6:43
みたいに、時間が入ったセルの、
日付の部分
だけ変えたいんですがやり方がわからないです
セルの日付(2021/2/15)を変数で定義して、新たな日付(2021/2/16)の変数も定義して
replace(セルの位置,セルの日付,新たな日付)
で入れ替えようとすると型が合わないって出てしまうのですが
どうすればいいでしょうか?

681:デフォルトの名無しさん
21/02/16 11:56:30.35 S5ddSisTa.net
>>678
もしかして変数で定義してる型がDateだったり?

682:デフォルトの名無しさん
21/02/16 11:58:31.61 XpWP4Lg+0.net
>>679
dateとstring両方試しました

683:デフォルトの名無しさん
21/02/16 12:13:25.96 9n1pp/97M.net
CStr(Format(a,″yyyy/m/d“))

684:デフォルトの名無しさん
21/02/16 12:24:02.20 XpWP4Lg+0.net
すいません自己解決しました
変数の定義がおなしかったみたいです

685:デフォルトの名無しさん
21/02/16 13:04:12.03 nbeJO0KhM.net
>>677
いけましたサンクス!!!

686:666
21/02/16 19:15:33.72 +pX1epGPr.net
遅くなりましたが、結局Dummyファイルの書き込みにしました。アドバイス頂いた方ありがとうございました。

687:デフォルトの名無しさん
21/02/16 21:00:08.21 PQjj23xSa.net
スミマセン、セルの特殊な機能だと思うのですが、
セルにポインタを合わせると、セルの外側右下に小さな▼が出現、
▼を押すとセルの下に小さなウィンドウが展開し、羅列された文字や数字を選択できる。
上記機能の名称とは何なのか、
どこでイジれるのか、作成できるのか等わからず困ってしまいました。
機能が生きているセルもありましたため、
新規で作成せずともその機能をコピーしようともしましたが方法わからず。
お詳しい方いらっしゃいましたら
お力添え願いたいです。
失礼します。

688:デフォルトの名無しさん
21/02/16 21:24:43.99 kmFmEkS70.net
VBAとは関係なく
「セルの入力規則」から「リスト」を選択してあとは適宜
詳細は上記キーワードで検索して

689:デフォルトの名無しさん
21/02/16 22:46:03.00 g3oiZXVYr.net
教えていただけると助かります。
VBAでIEからExcelに文章を写したいです。
アクティブなIEからカーソルで範囲指定して、その内容を写すことは可能なのでしょうか?
例えば、ヤフーで気になる記事の内容だけをコピペといった感じです。
気になるものだけなので、検索を入れ込む必要はないです。
IEとYahoo起動まではできるのですが、その先が分かりません。
よろしくお願いいたします。

690:デフォルトの名無しさん
21/02/16 23:02:29.70 LtHH0x/40.net
それ手動でコピペしたほうが早いんじゃね

691:デフォルトの名無しさん
21/02/16 23:41:10.89 5LT5VcGn0.net
気になる記事の条件は?
それを自分で判断するなら>>688が正解だと思うが

692:デフォルトの名無しさん
21/02/17 09:01:14.53 tQXaEzsv0.net
>>687
ちったぁググれ
URLリンク(konowaza.com)

693:デフォルトの名無しさん
21/02/17 10:16:38.01 vOoN+LpT0.net
>>690
優しすぎる

694:デフォルトの名無しさん
21/02/17 12:53:19.33 3Z4/s25m0.net
>>686
ありがとうございますm(_ _)m
トライします。

695:デフォルトの名無しさん
21/02/17 12:57:54.00 quEf8nPTr.net
いえいえ

696:デフォルトの名無しさん
21/02/17 12:59:55.94 Mp3MtPnAH.net
クリップボードを監視して、新しいデータがコピーされるたびに保存してくれるアプリとか使えばいいんじゃない?
いちいちウィンドウを切り替えたりペーストしなくていいやつあるだろ

697:デフォルトの名無しさん
21/02/17 15:46:44.57 i293dZUhd.net
>>686
機能が生きているセルを上記指南で解析し、
貼り付けで解決しました!
助かりました。
ありがとうございました!

698:デフォルトの名無しさん
21/02/17 22:01:12.58 YnE2/fOB0.net
最終列までコピーをしたいんですがエラーを繰り返しなかなか実現できません…
例えばA3セルがデータの始まりでA7セルが最終列の場合、以下の文になるかと思いますRange(“A3:A7”).copy
ただ、半年に一度最終列が一列追加になるので、メンテナンスしなくていいように上の文のA7の部分が最終列になるようにしたいです
この場合何かいい方法はあるでしょうか

699:デフォルトの名無しさん
21/02/17 22:41:15.13 FtApzB1S0.net
行じゃなくて列?

700:デフォルトの名無しさん
21/02/17 22:42:03.66 tZ0yQ1Z/0.net
オーソドックスなのはこれだけど、物凄い珍回答を聞いてみたいわ
Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row).Copy

701:デフォルトの名無しさん
21/02/17 22:45:44.66 LXOFF6tt0.net
>>696
last_row = Sheet1.UsedRange.Row + Sheet1.UsedRange.Rows.Count - 1
last_col = Sheet1.UsedRange.Column + Sheet1.UsedRange.Columns.Count - 1
Debug.Print "A3:" & Sheet1.Cells(last_row, last_col).Address(RowAbsolute:=False, ColumnAbsolute:=False)
こんなん?

702:デフォルトの名無しさん
21/02/17 22:46:54.85 bJ7UNxEFr.net
>>690
ありがとうございます❗
探してたものに出会えました。
ググってはみたんですが、このサイトには巡り会えなかったので、本当に助かります。
やってみたら、思う結果になりました。
ありがとうございました。

703:デフォルトの名無しさん
21/02/17 22:47:30.28 YnE2/fOB0.net
行じゃなく列です
最終列が半年に一回追加になるのです…

704:デフォルトの名無しさん
21/02/17 22:50:45.05 YnE2/fOB0.net
>>697
ごめんなさい、最終列の話だったのでA3セルからD3セルをコピーする場合、以下になるんでした
Range(“A3:D3).copy
今はD3が最終列ですが、半年後にはD3が最終列になるイメージです

705:696
21/02/17 22:51:42.12 YnE2/fOB0.net
何度も間違えてすみません…
今はD3が最終列ですが半年後にはE3が最終列になるの間違いでした

706:デフォルトの名無しさん
21/02/17 22:55:52.03 X7VrF3DN0.net
最終列取得の仕方調べないの?

707:デフォルトの名無しさん
21/02/17 23:06:07.99 FtApzB1S0.net
Range("A3").CurrentRegion.Copy

708:デフォルトの名無しさん
21/02/17 23:08:53.17 ooyd3US+0.net
ColLst = Sheet1.Сells(3,Columns.Count).End(xIToLeft).Column
Range(Sheet1.Cells(3,1),Sheet1.Сells(3,ColLst))
みたいにケツのColumnIndexを可変化させりゃええ
指定範囲より右側にコメントが入るのであれば別の方法を考える必要があるけど

709:デフォルトの名無しさん
21/02/17 23:09:11.52 LXOFF6tt0.net
CurrentRegionは使えそうで使わない

710:デフォルトの名無しさん
21/02/17 23:16:43.14 FtApzB1S0.net
UsedRangeだって使うの怖ない?
どっかにドットあるだけども持ってかれる

711:デフォルトの名無しさん
21/02/17 23:18:02.78 tZ0yQ1Z/0.net
これってやり方は何通りかあるけど、
どの状況でも使える完璧なのが無いよな
一見よさげなUsedRange.Find法とかも、
検索と置換の状態が変わっちゃうし

712:デフォルトの名無しさん
21/02/17 23:21:06.27 LXOFF6tt0.net
ちゃんとやりたい場合列のヘッダの名前の有無を確認とか意味解析するしかないよ

713:デフォルトの名無しさん
21/02/18 00:18:06.29 ZQty99yr0.net
vbaしかつかえないうんちなんだけど、ダイアログに変数名入れたら、その名前を反映させた定型コード作ってくれるような支援ソフトないの?
たとえば、Dim var: var= xとかFor i=LBound(arr) to UBound(arr)とか。いちいちめんどい。
cliborはつかってる。スレチだったらすまそ。

714:デフォルトの名無しさん
21/02/18 02:16:18.22 QcGF+jUk0.net
それこそ自分で作れよ
自分だけにに都合よく自動化したいならそれしかないだろ

715:デフォルトの名無しさん
21/02/18 08:21:36.53 sd++046d0.net
>>711
そういうの別言語だと見たことあるけど
VBAでは諦めた方がいいんじゃないかなぁ
URLリンク(mobile.twitter.com)
こういう奴でしょ?
(deleted an unsolicited ad)

716:696
21/02/18 08:30:28.40 0xKDo7Uv0.net
最終列の取得をしてコピーしたいと申した者です
具体的には2シート目以降のC8セルから最終列までコピペしたくこのような文を書いてました
Maxcol = Worksheets(1).Range(“C8”).End(XlToRight).Column
For i = 2 To Worksheets.Count
Worksheets(i) = Range(Cells(8,3), Cells(8, Maxcol)).Copy
Worksheet(1).Cells(Maxrow,1).PasteSpecial Paste:=xlPasteValues
Maxrow = Maxrow + 1
Next i
上には書いていませんがMaxRowで最終行していて、1シート目の最終行にペーストするイメージです
このとき以下の箇所でエラーになりました
Worksheets(i) = Range(Cells(8,3), Cells(8, Maxcol)).Copy

717:デフォルトの名無しさん
21/02/18 08:31:50.99 cssKdxraM.net
>>713
やっぱVbaだと厳しいか、、、別言語だとこんなのあるんだな!ありがとう。

718:696
21/02/18 08:45:37.53 0xKDo7Uv0.net
解決しました…
Rangeの中にCellsを入れる際はCellsの方にもワークシート名を記載してあげなければいけなかったんですね…
お騒がせしました

719:デフォルトの名無しさん
21/02/18 10:27:10.11 4sNPnSsIM.net
4点指定でrange作れればいいのにね

720:デフォルトの名無しさん
21/02/18 13:38:16.10 EVRbmhyV0.net
>>717
まあ、
Sheet.Cells(開始行, 開始列).Resize(行数, 列数)
もしくは
Sheet.Cells(開始行, 開始列).Resize(終了行 - 開始行 + 1, 終了列 - 開始列 + 1)
ってやるだけだし

721:デフォルトの名無しさん
21/02/18 17:41:06.06 Khd0zmwWM.net
>>714
これで動くのか
それならまあいいけども

722:デフォルトの名無しさん
21/02/18 20:47:31.34 Sdz2Rpjn0.net
コンパイルしたときに「ユーザー定義型は使用できません」といったようなエラーが出るのですが、
エラー箇所が選択されず特定できません。
ググってみたのですが「関数を一個ずつ切り貼りしながらコンパイル」的な記事しかなく、
結構大きなプロジェクトファイルになってしまっていて現実的ではありません。
原因って何が考えられますでしょうか。

723:デフォルトの名無しさん
21/02/18 21:08:20.83 QcGF+jUk0.net
情報が少なすぎるだろ
で、ユーザー定義型を使ったの?

724:デフォルトの名無しさん
21/02/18 21:48:45.33 sd++046d0.net
>>720
VBAでは珍しいかも知れないけど
VBSではよくある話
実行前コンパイルの概念がないからね
別に1関数単位で抜かなくても
纏めてごっそり抜いてみて
エラーが発生しなくなったら
残った部分には原因がなくて
抜いた部分に原因があるんで
まずそうやって切り分ける
抜いた部分から半分くらい戻してやって
またエラーが起きないか確認するのを
繰り返して行く内に
原因の可能性がある範囲はどんどん狭まるんで
そうやって確認して行く

725:デフォルトの名無しさん
21/02/18 21:52:25.45 sd++046d0.net
原因として考えられるのは
ない型を指定した場合なので
型宣言の書き間違えとかかな

726:デフォルトの名無しさん
21/02/18 21:59:48.04 Sdz2Rpjn0.net
>>721
使ってます。
また、クラスモジュールやライブラリも沢山使ってます。
以前なら間違っている名前の箇所が選択されるので、直ぐに原因が特定できたのですが・・・
>>722
今、出来る範囲でモジュールを解放・インポートを繰り返して検証して見たのですが、
フォームモジュールのいくつかが原因の様で、これらを抜くとコンパイル(実行前コンパイル)が成功します。
ただ、その原因と思われるモジュール内の全てのコードを削除しても同じエラー発生します。
意味が分かりません・・・

727:デフォルトの名無しさん
21/02/18 22:36:52.79 Xk2lzcuAM.net
フォーム内のエラーはフォーム呼び出しコードが選択されるから、F8の手押し連打で進めて行けばエラー箇所で止まるんじゃね

728:デフォルトの名無しさん
21/02/18 23:05:06.07 jY4O/2kG0.net
いつもの人っぽいけど、クラスモジュールでエラー止める設定すれば分かるかもしれん

729:デフォルトの名無しさん
21/02/18 23:14:40.89 Oj+90OvE0.net
>>726
シートに書くとエラーの場所がわからないから標準モジュールに書け、
なんて書いてるサイトがあって、その解決策しばらく気づかなかったわ

730:デフォルトの名無しさん
21/02/18 23:38:17.80 chyUcvsN0.net
ズボラせず1個ずつちゃんと調べなよ

731:デフォルトの名無しさん
21/02/19 00:07:23.60 3RXIcFsGH.net
DimとかConstとかでタイプミス
SubやFunctionの宣言部でもよくある
Visual StudioでVB.netプロジェクトを作ってコピペで発見できる場合もある

732:デフォルトの名無しさん
21/02/19 03:59:43.95 fFtIagGX0.net
>>725,726
実行時例外じゃないです。
>>728
>>724の通り、発生元と思われるモジュール内コードを全て削除しても発生し、
モジュール自体を解放すると発生しなくなるため悩んでいます。
私も一個づつ調べたいのですが、もはや調べ方も分からない状況です・・・。
>>729
宣言文のタイプミスでも、通常はエラーが発生すれば原因箇所が選択(反転)されると思いますが、
今回はそのエラー箇所の選択がなく困っています。
vscodeですがVB.netプロジェクトへのコピペもやってみましたが、
関係のないエラーや注意が大量発生して特定困難でした。
というか互換性ないと聞いたのですが・・・

733:デフォルトの名無しさん
21/02/19 04:14:33.39 fFtIagGX0.net
お礼言うの忘れてました。
沢山回答ありがとうございます。
些細な事柄でも気になる点があればレス欲しいです。
一応質問内容をまとめます
・エラーが発生しているのはコンパイル時です
・通常あるエラー発生箇所の選択がされません(この「発生個所が選択されないという現象」自体の原因も調べています)
・原因と思われるクラスモジュールを解放すると発生しなくなります
・しかし、そのモジュール内のコードを消すだけでは引き続き発生します

734:デフォルトの名無しさん
21/02/19 05:06:58.61 UOwA+kJV0.net
なるほど
つまりVBAのコード側の問題ではないと
詳しい状況が分からんから何とも言えんけど
考えられる状況としては
・ファイルがぶっ壊れてる
・フォーム側に使ってるバージョンにそぐわないオブジェクトが設定されている
・使ってるバージョンにそぐわないAPIとかが使用されている
・何か変な参照設定切ってそれを使ってる
とかじゃない?
クラスとかライブラリ(何をもってライブラリと言ってるのかは分からんけど)使ってて
結構大きなプロジェクトファイル使ってると言うなら
元々動いてたものだったと思うんだけど
今改修を掛けているものが同じ環境下(EXCELのバージョンとか使ってるならランタイムとかが同じ)
で動くか確認した方がいいんじゃないかと思うよ

735:デフォルトの名無しさん
21/02/19 05:44:12.15 6sfyeCMi0.net
>>731
クラスモジュールを開放したあと、同名のクラスモジュールを空で新規追加したらどうなるの?
そのクラスモジュールの名前は何?

736:デフォルトの名無しさん
21/02/19 14:25:58.33 fFbWPHDZ0.net
ユーザ定義型は定義されていません

737:デフォルトの名無しさん
21/02/19 21:58:08.64 p5a0AjpTa.net
>>724
インポートとかすると改行や全角空白、タブ、eofとかがおかしいのが入ることあるよ

738:デフォルトの名無しさん
21/02/19 23:14:07.14 FBAC49/30.net
ぶっちゃけ原因不明でコードを新規ブックにそのままコピペしたら動いたってのは何度かあった
理由がわからんだけだったのかもしれないけど

739:デフォルトの名無しさん
21/02/20 00:17:20.20 /mom05J70.net
怪しい辺りを切り取り貼り付けで直るパターンもあった

740:デフォルトの名無しさん
21/02/20 02:39:20.18 exEQDxd80.net
エクスポートして新規ブックでインポートしてどうなるか試せ
そのクラスモジュールとやらをどっかに張ればなんかわかるかもしれん

741:デフォルトの名無しさん
21/02/20 10:48:29.96 +4W1iOYZ0.net
帳票でひな形ファイルにDBからのデータを張り付ける際に
ひな形ファイルに前もって用意している一覧より件数が多くなり
一覧部を増やす際って存在している行を必要分コピペしたら処理が重く遅くなりますか?
範囲指定して行の高さや罫線その他書式を作成していくのが普通ですかね

742:デフォルトの名無しさん
21/02/20 11:52:03.51 FtzhhzvS0.net
1件ずつコピペしてたら遅くなる可能性があるけど
必要な行数を計算してコピペ1回なら問題にはならんのじゃないかな

743:デフォルトの名無しさん
21/02/20 13:27:35.51 GLzvS33R0.net
すげえ基本的な話だけど
2003と2019じゃソースを書き換えないと使えないのはわかるけど
2015と2019は使えるの?

744:デフォルトの名無しさん
21/02/20 18:00:11.01 M8GDG/5fa.net
自分で試せばいいのに

745:デフォルトの名無しさん
21/02/20 20:13:12.43 OBWJcVSW0.net
書き換えないといけないところが分かるなんてすごい実力者だね

746:デフォルトの名無しさん
21/02/21 00:07:25.30 J4wkOwtc0.net
複数バージョン持ってないと試せんだろう

747:デフォルトの名無しさん
21/02/21 00:25:53.91 yZKJ3RszM.net
どっちでも動くように作るのさ

748:デフォルトの名無しさん
21/02/21 02:57:17.71 PfdFyViG0.net
持ってないバージョンで動かないかもとか考えなくてもよくね

749:デフォルトの名無しさん
21/02/21 03:11:53.20 NVBTtkD2H.net
逆に、2019だけで動くようにしろと言われてもできる気がしない
わざと追加されたワークシート関数を使うみたいな、手段と目的を逆転させるのは無しで
そんなに言語仕様って変わってたっけ?

750:デフォルトの名無しさん
21/02/21 03:19:27.77 BLnKvBaX0.net
VBAの言語仕様なんて、64ビット対応しか変わってないだろ
EXCELのアプリケーションモデルは多少の変化はあったかもしれんが

751:デフォルトの名無しさん
21/02/21 09:10:45.20 Mdn5KR7p0.net
基本使えるだろうけど
365のは分からん

752:デフォルトの名無しさん
21/02/21 09:54:57.69 E7dwtz5J0.net
2019未満は切り捨てるためにわざと2019仕様に変更とか
わからん

753:デフォルトの名無しさん
21/02/21 18:05:27.14 bOGV4XR6a.net
古いのいつまでも使われると新しいの売れないからかな

754:デフォルトの名無しさん
21/02/22 11:45:30.79 FCcJxvZt0.net
>>747-748
動かなくなる原因は言語仕様だけじゃないよ
2007 辺りでグラフ周りがかなり変更されてソースに手を入れる羽目になったとかある

755:デフォルトの名無しさん
21/02/22 13:18:52.42 kOquHQc20.net
そうっすか

756:デフォルトの名無しさん
21/02/22 17:32:51.40 /Yenw0XZd.net
>>752
正にそれ結構大変だった。

757:デフォルトの名無しさん
21/02/24 00:40:47.03 HDXsWzJB0.net
VB長けてる人ってExcelの機能関数に疎い人多いね
田中に聞けば?

758:デフォルトの名無しさん
21/02/24 01:26:36.59 QrJrBlgW0.net
Worksheetfunction使うのでそれはない。

759:デフォルトの名無しさん
21/02/24 02:17:27.39 CQQJwOCp0.net
2019欲しいけど
いまクソ高いんだよな
昔は10000ぐらいで買えたよな?

760:デフォルトの名無しさん
21/02/24 02:42:57.68 +tup+0KC0.net
今でも1000円で…

761:デフォルトの名無しさん
21/02/24 02:59:15.91 CQQJwOCp0.net
割れは怖くて使えんわ

762:デフォルトの名無しさん
21/02/24 14:09:58.51 HLiwO+Yd0.net
64bitで未定プログレスバー使うにはどうすればいいの?

763:デフォルトの名無しさん
21/02/24 19:44:17.34 CpCHMr0L0.net
オレの2019はアマゾンで900円くらいだ

764:デフォルトの名無しさん
21/02/25 21:11:18.01 u/u+FiSza.net
原本となるシートでマクロが動いて欲しくないからマクロを搭載した別ブックのシートにコピーしようとしてるのだけど、activeXコントロールのコピーで詰んでいる。
selectAllすると位置がずれる、ネットで見かけるfor each x in sheets.Shapes方式だと「rangeクラスのTopプロパティを設定できません」とか出る(原因分からないうえ、同じものが複数コピーされてたりする)
Clickメソッド使ってるからシート自体に記述しなくちゃならない状態(原本にマクロを搭載できない理由でもある)
原本をコピーした新しいシートにマクロを転写する方法か、activeXコントロールをうまくコピーする方法などをどなたか分かれば教えてください。
よろしくお願いします

765:デフォルトの名無しさん
21/02/25 21:28:47.82 mAZPOqOP0.net
俺はファイルコピーで解決しようとするから知らんわ

766:デフォルトの名無しさん
21/02/25 22:14:57.96 zfgrXATG0.net
シートコピーしたら

767:デフォルトの名無しさん
21/02/25 23:11:51.37 h5Yd8P0i0.net
デザインモードじゃないから梃子でも動かないって意味か?

768:デフォルトの名無しさん
21/02/26 03:13:02.34 RTjFElvVH.net
>>762
ブックを別名で保存してからそっちを開いたら?
コントロールの状態や中身まで含めた完全なコピーが簡単にできるよ

769:デフォルトの名無しさん
21/02/26 14:42:35.05 uwtwTRSf0.net
>>760
わいはコントロールやめてユーザーフォームで自作した

770:デフォルトの名無しさん
21/02/26 18:00:57.54 3R2zb4XV0.net
>>762
原本はそのままで動くように作っといて、原本をコピーするマクロは原本とは別ファイルにするのが良いんじゃね

771:デフォルトの名無しさん
21/02/27 04:24:42.64 RGn50kCua.net
>>768
フールプルーフの観点で原本にプログラムを直接書きづらいんですよね。このツールを使うのも原本を更新するのも私じゃないので…
>>767
フォームなら別のブックにコピーできるし使いたいんですが要件的に使えないんですよね
最初はフォームで動作するものを作ったんですが、いちいちウィンドウが開くのめんどくさいと一蹴されました
あくまでシートにマクロをコピーする方法か、activeXコントロールの綺麗なコピーの方法を探しています。

772:デフォルトの名無しさん
21/02/27 04:28:43.21 qDfn4Zqt0.net
>>769
みつかるといいね

773:デフォルトの名無しさん
21/02/27 08:38:37.65 +dnfLZll0.net
>>769
出来るけど、セキュリティ的に大問題アリ。
マクロウイルスのやりたいことと一緒だからな。

774:デフォルトの名無しさん
21/02/27 10:42:13.72 MpvSTRAea.net
ウイルスの作り方探してるのかな

775:デフォルトの名無しさん
21/02/27 16:48:22.46 9QiTc1mX0.net
質問です。
VBAでウィンドウの幅によってレイアウトが変化するページを取り込む方法で詰まっています。
例えば、下記のURLのテーブル「5」をExcelに取り込みたいとします。
しかし、このページはウィンドウの幅を狭くすると「自動レイアウト」になります。
URLリンク(www.nankankeiba.com)
URLリンク(i.imgur.com)
本当はPC固定レイアウトで取り込みたいのですが、下のVBAだと自動レイアウトの方で取り込まれてしまうのですが
どうしたらよろしいでしょうか。
VBA
URLリンク(i.imgur.com)
PC固定のレイアウトで取り込みたいけど、取り込むとこうなる
URLリンク(i.imgur.com)

776:デフォルトの名無しさん
21/02/27 16:50:21.04 9QiTc1mX0.net
>>773
列や行の関係でPC固定で取り込めるようにしたいのですが、クエリで何か設定などあるのでしょうか

777:デフォルトの名無しさん
21/02/27 19:51:14.14 qDfn4Zqt0.net
>>774
よくわからんが内容は正しく取得できているんだから、表示用のシート作って
そっちに2行を1行にまとめて表示させるマクロ書けばいいんじゃね

778:デフォルトの名無しさん
21/02/27 20:13:53.31 9QiTc1mX0.net
>>775
実は最近サイトがスマホ用に「自動レイアウト」に対応してリニューアルしたので
もともと作ってあった表示用シートが連れてしまうために「PC固定レイアウト」にしたいのです…

779:デフォルトの名無しさん
21/02/27 20:25:57.30 Ydjbk0QN0.net
URLの後ろに何か引数入れればいいんだろうけど、javascript読めんからわからん。
Web系のスレで聞くか、ここでやるんだったらDOM解析してgetElementsByTagNameとかで取得するしかない。

780:デフォルトの名無しさん
21/02/27 20:28:08.24 9QiTc1mX0.net
>>777
やっぱりweb系のプログラミング知識がないと無理っぽいですかね
自分はさっぱりなので、そっち系でも聞いてみます。

781:デフォルトの名無しさん
21/02/27 20:46:04.22 Ydjbk0QN0.net
ってそれExcel2013?
2019だとどちらも見えていて、
Table4が自動でTable5が固定になっている。
もし2019が使えるなら、QueryTables.Addじゃなくて、
Queries.Addでやってみるといい。

782:デフォルトの名無しさん
21/02/27 21:38:16.92 9QiTc1mX0.net
>>779
わあああ!できました!!!
自分のだと、テーブル5だと自動で、テーブル6が固定でした!!
固定と自動でテーブルずらすだけで良かったんですね。
本当に助かりました;;感謝!

783:デフォルトの名無しさん
21/02/27 21:44:40.46 9QiTc1mX0.net
なるほどー
URLの違いじゃなくてテーブル数が増えていてテーブルの変更でレイアウトを別々で読み取っていたんですね
今後も参考になる知識でめっちゃタメになりました!
いやーID:Ydjbk0QN0さんの着眼点のおかげで助かりました。感動です

784:デフォルトの名無しさん
21/02/27 23:59:01.77 W4zZ+WShM.net
いいってことよ(≧∇≦)b

785:デフォルトの名無しさん
21/02/28 00:38:35.67 1YMxSz2W0.net
XMLを取得したあと、要素を取得するためにgetElementByIdを使用する方法は無いでしょうか?
XMLでは仕様上IDの規定が無いのでこのメソッドは無いようですが、
対象にしているデータはIDが重複していない(タグ名は重複)ことが分かっています

786:デフォルトの名無しさん
21/02/28 08:33:47.20 0O+t6o860.net
やったことないけどXMLをブラウザーで開いて取得とか

787:デフォルトの名無しさん
21/02/28 13:49:51.41 0oELj/fSM.net
>>783
単なる属性値だからxpathで属性検索すればいいんじゃね?

788:デフォルトの名無しさん
21/02/28 17:16:05.41 1YMxSz2W0.net
>>785
ごめんなさいこれで出来ました
コーディングミスしてただけだったようで…

789:デフォルトの名無しさん
21/02/28 23:20:44.51 Kw7HIYRo0.net
テーブルを使った列転記について質問です。
オートフィルターを使って、
特定条件に合致する列のみを別シートに転記するvbaを作成しています。
検索条件が1件でもヒットすれば、うまく動くのですが、
検索条件の結果が0件の場合、なぜかテーブル内にある全ての列がコピーされてしまいます。
解決方法をご教示いただけたら幸いです。
With Range("A3").ListObject
   .Range.AutoFilter 1, "佐藤"
.Range.AutoFilter 2,"2020"
.Range.AutoFilter 3, "土地"
.ListColumns(4).DataBodyRange.Copy Sheets(2).Range("B12")
.ListColumns(5).DataBodyRange.Copy Sheets(2).Range("D12")
.ListColumns(6).DataBodyRange.Copy Sheets(2).Range("C12")
End With

790:デフォルトの名無しさん
21/02/28 23:38:01.73 aFXd9lq10.net
0の時コピペしない

791:デフォルトの名無しさん
21/03/01 03:56:15.13 eH/icf8Z0.net
Countifsで、1件以上の時 と
条件分岐させるのが読み返してわかりやすくなるんでね

792:デフォルトの名無しさん
21/03/01 16:05:10.88 SmQDGBhxa.net
前回の表示が残っているならメッセージボックスとか出すといいかも

793:デフォルトの名無しさん
21/03/02 13:09:41.26 hWjLfumtC.net
(1)A1~A100セルにそれぞれ0001.txt~0100.txtという文字列が格納されている
(2)ファイルサーバ上(\\share\txt)に(1)の名前と対応する実際のテキストファイルが格納されている
→この場合、B1~B100セルの中に(1)と対応する(2)のテキストファイルの中身を自動で入力させたいのですが、どのようにすれば可能でしょうか。。

794:デフォルトの名無しさん
21/03/02 13:28:23.53 xn7W4wyt0.net
丸投げか?
まずは自分で作ってみろよ

795:デフォルトの名無しさん
21/03/02 13:38:46.86 Myd7KGhQ0.net
先生が添削してくれるみたいです

796:デフォルトの名無しさん
21/03/02 15:10:40.09 S4zyTxBwM.net
A1セルに書かれたファイル名を読み取る
そのファイル名を開く
B1セルから書き込む
を繰り返せばいいと思います

797:デフォルトの名無しさん
21/03/02 17:47:07.08 stzBjdlCH.net
いつもの人

798:デフォルトの名無しさん
21/03/02 19:42:52.19 h1fr2K930.net
>>791
どうでもいいがB1~B7へは入力じゃなくて出力って言った方がいい

799:デフォルトの名無しさん
21/03/02 23:19:45.83 yDNF8xvg0.net
>>791
マクロの自動記録

800:720
21/03/03 02:30:35.83 hWQCqBl50.net
>>720ですが、解決というか悪化したので一から作り直すことにしました。
原因と思われていたフォームモジュールを解放しても常時コンパイルエラーが発生するようになりました。
思い切って順に全て解放しながらコンパイルしてみたところシートを含めた全てのモジュールを
削除して新規シート一枚の状態でも発生する始末です。
>>733
試してみたところ、使用できない文字を使った時と同じ「不正なオブジェクト名」だと怒られます。
(もし重複なら「既に~使われています」)
コンパイルエラーの原因にある「ユーザー定義型」というのはフォームのモジュール名の事だったのかも・・・
ちなみに原因らしいフォームのモジュール名を変えても同様のコンパイルエラーは発生し、
その新しいモジュール名でも同じ症状が出るようになります。
>>732
>>何をもってライブラリと言ってるのかは分からん
すみません。参照設定にあるCOMコンポーネントの事です。
APIはSleepしか読み込んでおらず、
コントロールもリストボックスとコマンドボタンとオプションボタンのみです。
元の環境で実行も出来ませんでしたが、
テストで色んなモジュールの解放してインポート、モジュール名変更して戻すを繰り返していると、
プロジェクトのコンパイルは同じエラーがでるが、(環境問わず)実行は可能という状態になりました。
コンパイルのテストしかしていなかったのでどのタイミングで実行可能になったのかは分かりませんが、
引き続き調べてみます。

801:720
21/03/03 02:46:34.41 hWQCqBl50.net
>>733
レスに追加です
名前の変更では「不正なオブジェクト名」と出ますが、その名前でのインポートは成功します。
インポート出来れば自由にフォーム名を変更したり戻したりできました。
>>735
見てみましたが、特に変わりはないようです。
>>738
フォームモジュール以外を全部移したところコンパイルが通りました。
同じフォームを作って再発すると怖いので、
フォームに有ったコントロールはシート上に再現して、とりあえずこれで運用してみることにしました。

802:デフォルトの名無しさん
21/03/03 21:19:07.61 CdcHt2GZ0.net
シートの中身を初期化しようと、範囲選択してClearcontentしたら処理が滅茶苦茶重くて
他のどの処理よりも一番重いまであります
セルの中身をクリアして真っ新にしたいんですが、軽くなる方法とか削除するのに他のいい方法は何かありますか?

803:デフォルトの名無しさん
21/03/03 22:01:26.45 x1QDDRPj0.net
画面更新切ってないとか

804:デフォルトの名無しさん
21/03/03 22:53:36.00 cY/9Er0+0.net
場合によってはシートごと削除&同じ名前のシート作成orテンプレで用意していたシートをコピー

805:デフォルトの名無しさん
21/03/03 23:58:49.06 zTCiutcbd.net
>>800
Clearcontentsじゃなくて単に「削除」に時間が掛かってるだけ説。
どうしようもないExcelのバグ、俺もこの前株シミュレーター作ってて直面した。
たかだが3万行×1列消すのに10分掛かる糞仕様。
どういうわけかD列とE列に入っているがD列を消してからだとE列が、E列を消してからだとD列がそうなる。
2007と2013入れてたがどちらでも同じ結果。スプレッドシートでならサクっと消せた。

806:デフォルトの名無しさん
21/03/04 00:37:39.40 0V1y42950.net
質問させてください
業務用PCのためDsoFramerのインストールを容易には出来ない環境で、ユーザーフォームにワークシートを表示するシステムを作成するのは厳しいでしょうか

807:デフォルトの名無しさん
21/03/04 02:10:45.74 EcELbNCH0.net
レスありがとうございます
画面更新は勿論切ってます
ただ初期化したいだけなのにアホみたいに時間が掛かるので、同じ使用のシートを作る処理にする事も検討します

808:デフォルトの名無しさん
21/03/04 06:47:21.46 yRtnuXOv0.net
変数に入れてから消すとか、同じ選択範囲の配列(空白)ぶっこんでみてもだめかな

809:デフォルトの名無しさん
21/03/04 10:44:48.81 B7/1q6yvH.net
一気に何万行も消さずに100行ずつとか小分けしたら軽くなったりしないのかな

810:デフォルトの名無しさん
21/03/04 10:49:05.92 1zCrSMV60.net
ClearContentsで重かったことなんてないなあ。
めんどくさくてVBAじゃなくマクロで作って選択範囲小分けのまま放置してるからかな?

811:デフォルトの名無しさん
21/03/04 11:15:36.75 fKYNPqjU0.net
>>800
ふーん
範囲指定して消したらどう?
後、最近のEXCELはひょっとして
セルの内容が変わったら
再計算しているかも知れないから
一応自動計算も切ってみたら?
セル値が変わった時のイベント拾って
何かやってるとかいうオチだったら
問題外だけど

812:デフォルトの名無しさん
21/03/04 11:36:50.11 EtHhkpeQ0.net
スレが見つからなかったのでこちらで失礼します
C8の値が$100にならない理由を教えて下さい
URLリンク(i.imgur.com)

813:デフォルトの名無しさん
21/03/04 11:53:16.96 w9aQykj0M.net
関数変わっちゃうけど代案を出すなら
VLOOKUP(B8,B1:C5,2,FALSE)
とかどう?

814:デフォルトの名無しさん
21/03/04 12:01:03.02 1zCrSMV60.net
なんだこりゃ
LookUpって欠陥あるんかね

815:デフォルトの名無しさん
21/03/04 12:21:33.50 w9aQykj0M.net
LOOKUPって近似値を検索する関数だから文字列探そうとすると上手くいかない事が多かった気がする
だから面倒臭くなってVLOOKUP,HLOOKUPを使うように癖をつけた記憶がある

816:デフォルトの名無しさん
21/03/04 13:49:43.11 1PJYOy7Jr.net
これ思い出したわ
URLリンク(i.imgur.com)
URLリンク(i.imgur.com)

817:デフォルトの名無しさん
21/03/04 13:50:26.95 FInty+sk0.net
新規作成してから試してみたけど$100になったな

818:デフォルトの名無しさん
21/03/04 14:14:53.10 Kq0/JwOuM.net
>>810
C8 が "もり " みたいに空白入ってるとかじゃね?

819:デフォルトの名無しさん
21/03/04 14:47:21.95 skJUg0gJ0.net
検査範囲の値は昇順にしてください
そうでなければ正しい値はえられません
並んでないときはVLOOKUPやHLOOKUPを使ってください
という旨のことをヘルプに書いてある。

820:デフォルトの名無しさん
21/03/04 16:50:41.38 b7V1SruDM.net
LookupにもVLookupやHLookupみたいに検索方法のオプションあればいいのにね
まあMSとしてはExcel最新版にしてXLookup使ってねって言うことなんだろうな

821:デフォルトの名無しさん
21/03/04 18:46:57.78 EcELbNCH0.net
初期化で若干重たいのは取り敢えず諦めることにして、外部のCSVをクエリテーブルで読み込んでから
Refleshでシートに書き込んでるのですが、この書き込む前の段階で、クエリテーブル上で不要な列のデータを削除する事って可能でしょうか?
不要なデータが大量に混ざっているので、全部まとめてシートに書き込むとやはり重たいので軽量化したいのですが……

822:デフォルトの名無しさん
21/03/04 19:49:49.80 V/SEJayw0.net
いつものあいつだな

823:デフォルトの名無しさん
21/03/04 20:49:35.42 yRtnuXOv0.net
lookup系よりindexmatch使うことが多いな

824:デフォルトの名無しさん
21/03/04 20:55:32.61 INwEijJcM.net
lindexmatch使いアピールしてはじめて自称excel上級者として一人前

825:デフォルトの名無しさん
21/03/04 21:28:29.09 Cjl2zDCE0.net
昔はユーザー定義関数作ったけど、今はXLOOKUPがある。

826:デフォルトの名無しさん
21/03/04 22:18:19.39 1zCrSMV60.net
IindexMatchなんぞ使わず、
列をボーンとコピー挿入してVLOOKしてこそ一人前

827:デフォルトの名無しさん
21/03/05 05:33:04.89 eGeMRqFI0.net
いつものあいつて何?

828:デフォルトの名無しさん
21/03/05 09:21:20.59 n//DPju00.net
とうしつの自己紹介

829:デフォルトの名無しさん
21/03/05 21:02:22.60 s30llsqJ0.net
臭う質問者の総称

830:デフォルトの名無しさん
21/03/06 12:22:29.01 yJvSdslEH.net
実際に使ってないような質問をして答えさせて悦に入る人

831:デフォルトの名無しさん
21/03/07 10:26:06.26 FD1rrusm0.net
webページからデータをとってきてセルに格納するマクロを書いています
msxml2.xmlhttpというのを使うとページの内容をgetすることができるのですが、これはどうやらieを利用しているようです
ieはいつなくなるかわからないので他の方法があれば今のうちから変えておきたいのですが、vbaで使える方法で他にどういうのがあるか教えてください

832:デフォルトの名無しさん
21/03/07 10:30:32.44 ZX3XyXetM.net
IEはなくなるのにVBAは大丈夫だと思う理由は?
言語もPythonとかにしてBeautifulSoupやSeleniumでも使った方がよい

833:デフォルトの名無しさん
21/03/07 10:37:32.50 4ExLqYxe0.net
パワークエリはどうかな

834:デフォルトの名無しさん
21/03/07 10:42:14.29 TW4NSoKtM.net
無くなったときのビジネスインパクトはIEよりもVBAの方が遥かに小さいから、MSがどっちか先に切るとしたらVBAだろう
最悪VBAは切られてもExcelのバージョンを塩漬けにして運用できなくはないしな

835:デフォルトの名無しさん
21/03/07 11:28:15.07 zpOLYdVD0.net
>>830
まあそのうちpythonに移行するんでしょうけど、今は慣れない言語を一から勉強してる暇はないので
それで、あなたはvbaでやる他の方法を示せないということでよろしいですか?
>>831
どうかな、じゃなくてどうやるのか教えてください

836:デフォルトの名無しさん
21/03/07 13:02:06.24 JbGOdXToM.net
704 名無し~3.EXE sage 2021/03/01(月) 20:11:45.17 ID:hZCKpI4x
デスクトップ版のVBAマクロに替えてWeb版はOfficeスクリプトがプレビュー中(現在は法人向け365のオンラインのみ)
URLリンク(docs.microsoft.com)
705 名無し~3.EXE sage 2021/03/01(月) 20:16:10.79 ID:hZCKpI4x
Excelの新自動化ソリューション「Office Scripts」プレビュー版が登場
URLリンク(ascii.jp)
Excel操作をJavaScriptで記録 ~Microsoft、“Office Scripts”をパブリックプレビュー
URLリンク(forest.watch.impress.co.jp)

837:デフォルトの名無しさん
21/03/07 13:04:56.15 JbGOdXToM.net
788 名無し~3.EXE sage 2021/03/03(水) 18:26:40.20 ID:5NVXQTtc
Excel関数ベースのプログラミング言語「Microsoft Power Fx」登場 オープンソースで公開予定
URLリンク(www.itmedia.co.jp)
Microsoft、自社製RPAツールを全Windows 10ユーザーに無償提供 マウスクリックやキーボード入力をGUIで自動化
URLリンク(www.itmedia.co.jp)

838:デフォルトの名無しさん
21/03/07 13:46:03.75 5FBwssoR0.net
>>833
なんだただの馬鹿か
煽って聞きだそうとしてもこのスレはいつものあいつで耐性ができた人ばかりだから無理

839:デフォルトの名無しさん
21/03/07 14:06:40.31 4ExLqYxe0.net
触れないようにしてたけど辛辣で草

840:デフォルトの名無しさん
21/03/07 17:25:15.30 CYFzWFvV0.net
>>836
答えられないならレスしなくていいよ
無能に用はないから

841:デフォルトの名無しさん
21/03/07 17:51:15.16 5FBwssoR0.net
>>838
悔し買ったか?馬鹿

842:デフォルトの名無しさん
21/03/07 18:27:16.06 REgzkSN70.net
な、age厨だろ?

843:デフォルトの名無しさん
21/03/07 20:22:49.89 l5mf+U2f0.net
反論できなくてアゲサゲ言い出す奴は見苦しい

844:デフォルトの名無しさん
21/03/07 21:30:58.30 iHuYVCVV0.net
言われて下げてやんのwww

845:デフォルトの名無しさん
21/03/07 22:58:33.05 5FBwssoR0.net
馬鹿は自分が相手にしてるのはただ一人だけと思い込む

846:デフォルトの名無しさん
21/03/08 05:43:53.99 bSh0ioyn0.net
な、age厨だろ?

847:デフォルトの名無しさん
21/03/08 07:03:19.05 +AeHqC2j0.net
自己紹介www

848:デフォルトの名無しさん
21/03/08 09:05:36.54 +ItxpBbz0.net
類友

849:デフォルトの名無しさん
21/03/08 09:36:00.68 gk28PyLU0.net
もはや論点なにそれ状態

850:デフォルトの名無しさん
21/03/08 10:52:47.61 TrYviUKj0.net
保存して閉じる処理をしても、ファイルは閉じてもExcelはとじません
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'処理
Application.DisplayAlerts = False
Application.Quit
ThisWorkbook.Close savechanges:=True
Application.DisplayAlerts = True
End Sub
これでもダメでした
Application.Quit
ThisWorkbook.Close savechanges:=True

851:デフォルトの名無しさん
21/03/08 11:07:15.73 9xs5g46P0.net
ActiveWindow.Close

852:848
21/03/08 11:38:58.50 TrYviUKj0.net
>>849
Application.Quit
ThisWorkbook.Close savechanges:=True
ActiveWindow.Close
これもダメでした

853:デフォルトの名無しさん
21/03/08 11:53:11.92 9xs5g46P0.net
Application.Quit
Application.DisplayAlerts = False
ThisWorkbook.Close savechanges:=True
Application.DisplayAlerts = True

854:デフォルトの名無しさん
21/03/08 11:57:13.64 vFSNvomr0.net
Application.DisplayAlerts = False
If Workbooks.Count = 1 Then
Application.Quit
Else
ThisWorkbook.Close
Application.DisplayAlerts = True
End If
とかどう?

855:デフォルトの名無しさん
21/03/08 11:59:04.12 ub+dBY/l0.net
>>848
何でセーブする前にEXCELのアプリケーション閉じようとしてるの?

856:848
21/03/08 12:04:00.24 TrYviUKj0.net
>>851
>>852
ダメでした。
ほかのファイルでは問題なくExcelが終了するのですが
Private Sub Workbook_BeforeClose(Cancel As Boolean)
を使うマクロのときだけ、閉じなくなるような気がします。関係ありますかね?

857:デフォルトの名無しさん
21/03/08 12:23:48.80 Qtlmv4rK0.net
>>853

858:デフォルトの名無しさん
21/03/08 12:30:21.22 ub+dBY/l0.net
わざわざセーブメッセージ叩き潰して
ブック捕まえたまんまにして
アプリケーション閉じようとしてるんだから
わざと閉じられないようにしているようにしか見えない

859:デフォルトの名無しさん
21/03/08 12:44:18.76 Qtlmv4rK0.net
savechangesでも無限ループしてそう

860:デフォルトの名無しさん
21/03/08 12:56:18.62 vFSNvomr0.net
>>854
BeforeCloseにApplication.Quit記述してイミディエイトからThisWorkbook.Closeを実行してみたけど問題なく閉じたから何か別の物が干渉してる可能性があるかなぁ

861:デフォルトの名無しさん
21/03/08 13:04:41.43 9xs5g46P0.net
めっちゃ古いバージョンとかじゃないだろうな

862:848
21/03/08 13:32:58.59 TrYviUKj0.net
>>855
当初はこれでしたが、ググったら、Application.Quitを上に書くらしいです
ThisWorkbook.Close savechanges:=True
Application.Quit
>>856
Application.Quit
ThisWorkbook.Close savechanges:=True
だけでも同じでした
>>857
他に保存する方法を教えてください
>>858
自分でも試してみましたが、確かにちゃんと閉じますね。他の干渉を疑ってみます。
>>859
2019です

863:デフォルトの名無しさん
21/03/08 13:49:36.30 9xs5g46P0.net
Application.EnableEvents = true
を頭に付けてみるとか

864:デフォルトの名無しさん
21/03/08 18:00:51.59 +0kCYoNG0.net
そこでやるべきことは ThisWorkbook.Save だけだと思うんだが

865:デフォルトの名無しさん
21/03/08 18:30:55.70 bSh0ioyn0.net
コマンドプロンプトでtaskkill /f /im excel.exe

866:デフォルトの名無しさん
21/03/08 19:53:15.72 Awv++sSE0.net
Quitは最後では
変なExcelプロセスが残ってないか確認した方がいいのでは

867:デフォルトの名無しさん
21/03/08 21:03:57.98 53ng3r6C0.net
VBEでVBAを使って出来たものがマクロであってる?
本屋にVBAの本とマクロの本があるけど同じことと思っておk?

868:デフォルトの名無しさん
21/03/08 21:12:54.65 ub+dBY/l0.net
>>865
半分正解

869:デフォルトの名無しさん
21/03/08 21:17:42.97 ub+dBY/l0.net
「VBEで作ったものはマクロ」
これは合ってる
「VBAとマクロは同じことを言っている」
マクロにはVBAtで作られたもの以外に
4.0マクロと言うものが有ってだな・・・
まぁ、あまり気にしなくても良いかもしんないけど

870:デフォルトの名無しさん
21/03/08 21:34:20.02 B96zl28N0.net
マクロ
スクリプト
関数
これらはプログラムのひとかたまり
厳密に区別しずらいけどそれぞれ
ニュアンスの違いはある

871:デフォルトの名無しさん
21/03/08 21:58:36.85 U/cFdqiVM.net
>>865
VBEはエディタ。Excelの場合はVBAとマクロは同じ意味で使われる。ExcelマクロがExcel VBAのコードで表現されるため。

872:デフォルトの名無しさん
21/03/08 22:10:13.99 Awv++sSE0.net
>>867
なんかいろいろ違うぞ

873:デフォルトの名無しさん
21/03/08 22:16:46.29 Dj6nESKZ0.net
関数は全然違うだろwww

874:デフォルトの名無しさん
21/03/08 22:42:26.89 53ng3r6C0.net
>>866
まだ表紙なのに理解半分かw
>>867
4.0マクロネットで見て使ったこと1回だけあるけど関数みたいなやつだった記憶。
>>868
スクリプトも便利そうですよね。
デスクトップかっこ良くするフリーソフトに自由にスクリプト使えますって書いてあって挫折した。。
>>869
出来たもんがマクロでVBAが設計図でVBEが紙と鉛筆か。
みんなありがと、ネットにも解説サイトあるけど違うとこ見ちゃうから本買ってくるわ。ノシ

875:デフォルトの名無しさん
21/03/08 23:14:12.98 u4CRr3CF0.net
そういえばvbaをjsで書ける世界まだなんだっけ?
gasみたいな感じで書けないかな

876:デフォルトの名無しさん
21/03/08 23:18:26.32 hUWITx/G0.net
WScriptのJScriptでExcel使えるだろ

877:デフォルトの名無しさん
21/03/09 00:19:47.43 fLnH8jKyM.net
>>873
>>834

878:デフォルトの名無しさん
21/03/09 02:53:50.15 uNAjD4zcH.net
微妙に違う気がするなあ
VBAはプログラミング言語の名前(の略称)。単語と文法が書いてあるだけの辞書みたいなもん
その言語で書かれた物がマクロで、むしろ設計図はこっちが近い
VBEはマクロの作成を手助けするツール、紙と鉛筆って考え方はだいたい合ってる
で、マクロの中でも結果を一組だけ呼び出し元に返すように作られてるのが関数

879:デフォルトの名無しさん
21/03/09 05:15:21.29 suvlK62N0.net
機能とワークシート関数とか全くわからん
操作なんてVBAで良いじゃん
周りでもそういった人いるしさ

880:デフォルトの名無しさん
21/03/09 08:22:35.06 zXQo4RJq0.net
本来、Excelの操作の自動化を目的にしたVBAマクロなのに元の機能そのものが全く分からんとか本末転倒にも程がある

881:デフォルトの名無しさん
21/03/09 10:45:46.13 pnwu5thka.net
作成依頼です
一定範囲内において、選択されたセルすべてに、書式設定で取り消し線を付けたいです
たとえば、D5からD20の範囲内で、そこ以外の範囲が選択されていた場合はエラーを返す
範囲内なら、選択されたセル(単一、複数、飛び石あり)すべてに、一括で取り消し線を追加
というような感じです
飛び石状態で複数が選択された場合に、上手く処理できなくて相談させていただきました
よろしくお願い致します

882:デフォルトの名無しさん
21/03/09 11:04:35.36 oV9GYLDS0.net
>>879
そんな仕様のものを作ってはいけない

883:デフォルトの名無しさん
21/03/09 11:21:48.31 Nc9tdWjH0.net
>>879
選択範囲をまとめて見るんじゃなくて、選択されたセル一つ一つについて既定の範囲内にあるか条件判断をし、エラーかそうでないか
エラーでなく全てのセルが範囲内なら一つ一つのセルに取り消し線を追加
とすれば普通にできるでしょ
横着しようとしてるからいけないんじゃないの

884:デフォルトの名無しさん
21/03/09 11:25:30.81 uNAjD4zcH.net
VBEは赤ペン先生?全部じゃないけど間違いをすぐ教えてくれる

885:デフォルトの名無しさん
21/03/09 11:58:31.47 zYh1VL3E0.net
>>879
お金ください

886:デフォルトの名無しさん
21/03/09 12:03:56.11 uNAjD4zcH.net
>>879
For Eachでセルを1個ずつ処理するんだよ
For Each、セルアドレスチェック、1つでもD5-D20じゃなかったらエラー
エラーがなかったらもう一度For Each、各セルに取り消し線
みたいな流れ

887:デフォルトの名無しさん
21/03/09 12:09:52.12 4S2gbixUa.net
ピボットグラフのスライサー内の選択を変えた時にマクロが動くようにしたいです
イメージ的にはワークシートイベントです
例︰スライサーの日付を変更時にグラフの色を塗る
選択変更の検知方法を教えてください
よろしくお願いします

888:デフォルトの名無しさん
21/03/09 12:25:42.94 t7O7P6i9M.net
外枠なら面倒だけど取り消し線なら簡単だ

889:デフォルトの名無しさん
21/03/09 12:38:26.95 uNAjD4zcH.net
外枠でも大差ないと思う
Selectionの上下左右に罫線を引くだけ

890:デフォルトの名無しさん
21/03/09 12:43:13.10 pnwu5thka.net
>>881
>>884
なるほど、これなら自分でできそうです
ありがとうございました

891:デフォルトの名無しさん
21/03/09 13:03:57.82 C5e26MY+0.net
いえいえ、自分でもっと勉強してくださいね

892:デフォルトの名無しさん
21/03/09 16:16:21.91 1va3W7Si0.net
>>879
If Intersect(Selection, Range("D5:D20")).Count <> Selection.Count Then
MsgBox "エラー"
Else
Selection.Font.Strikethrough = True
End If

893:デフォルトの名無しさん
21/03/10 00:11:15.88 seJ5KfaI0.net
だってさ、先輩がExcelなんか全部マクロで動かせば良いって言われたからさ。。。
ワークシートの関数とかそんなもん覚えなくて良いと言われたからさ。
だからVBAしか知らない。
今凄く関数とか機能を覚えるために苦労してる。

894:デフォルトの名無しさん
21/03/10 02:20:07.32 Mh5oeh7J0.net
>>891
無理してやる必要ないのに、何のために覚えるの?

895:デフォルトの名無しさん
21/03/10 07:58:05.94 seJ5KfaI0.net
>>892
マクロだけでは遠回りだと気づいて

896:デフォルトの名無しさん
21/03/10 08:18:24.93 afuwFvM40.net
vlookupはなんであんな変なインターフェースなんですか

897:デフォルトの名無しさん
21/03/10 09:29:52.26 AjUIRLk9M.net
ポーカーフェイスですよ

898:デフォルトの名無しさん
21/03/10 10:14:53.26 B52MA1yl0.net
>>894
古いから


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch