Excel VBA 質問スレ Part76

■ このスレッドは過去ログ倉庫に格納されています
2022/05/01(日) 02:23:41.78ID:2t63WK/jM
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑2行に減ってるけど、同じ内容を3行に増やして貼り付けること

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

次スレは>>980が立てること
無理なら細かく安価指定

※前スレ
Excel VBA 質問スレ Part75
https://mevius.5ch.net/test/read.cgi/tech/1644384272/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2022/06/15(水) 17:15:36.58ID:HRaMYgOd0
>>517
他に方法がなさそうなのでこれでやってみます

>>518
Private Sub Label1_Click() を1000個とか作るのはちょっと汚いので止めておきます
2022/06/15(水) 17:23:32.33ID:C/XRb82A0
ラベルを動的に1000個作るのは汚くないのかよ
2022/06/15(水) 17:37:50.64ID:fn3i9wsI0
まずどうして1000個も必要なのかのほうが突っ込みどころな気がする
VBAってフォーム内でクリックした座標の検出できないのかいな
2022/06/15(水) 17:42:47.22ID:Vg/305+8M
クリックイベントを1000個作るぐらいならクラス化しちゃうかなぁ
どっちにしろ面倒臭いけど

大量にラベル設置した時のリネーム作業を簡単に出来る方法何かない?
2022/06/15(水) 17:51:28.07ID:2pwDzYJj0
いや普通につくるならプルダウンだろ
何かしらで分岐させれば3,4回の選択で済む
2022/06/15(水) 18:13:02.83ID:Vg/305+8M
構内マップを作らされてその上にマインスイーパみたいな升目を作らされ、機器の設置場所を設定出来るようにしたい。場所の指定は分かりづらいから文字だけにするのはNGね。なんて業務を振られる事も稀によくある
2022/06/15(水) 18:14:34.90ID:C/XRb82A0
何をどうしたいのか知らんし、その1000個の元データはどっからどう持ってくるのかしらんけど
Excel VBAだしな
俺ならシートで選択させてフォームのボタンかな
2022/06/15(水) 18:28:15.26ID:C/XRb82A0
>>524
で、それを実現するのがEXCEL VBAでラベル1000個なのか?
いろいろ検討して最終的にそれしかないとなったならまあご愁傷様
そうじゃないならあほとしか思えん
2022/06/15(水) 18:47:53.19ID:Vg/305+8M
それしかないじゃなくてそれしか許されないんだよ
アホかって思いながらやってるよ
2022/06/15(水) 18:57:22.93ID:myHzQmQR0
マス目なら座標取ればいいような気がするが許されないなら仕方がないな
2022/06/15(水) 19:32:37.12ID:JFwHiHWC0
a=郵便番号電話番号
b=Left(a,7)
c=Replace(a, Left(a, 7), "")
2022/06/15(水) 19:34:39.87ID:8qf24aUq0
1000ならまだいける、10000だったら逃げるけどな
2022/06/15(水) 19:40:20.96ID:2pwDzYJj0
>>529
NG
2022/06/15(水) 19:56:19.48ID:y5599rfC0
ワークシートの背景をマップにしてセルクリックでイメージを表示するイベント書けば?
2022/06/15(水) 19:57:21.42ID:TJhxNtAv0
昔ながらの紙の地図帳をイメージすればいいのか
最初のページで全体図をマッピングした概略図を掲げといて
詳細の判るまで拡大した一ページ(※)をマス目で区切って、縦に 1 2 3 横に A B C とか振り分けて
例えば B 4 とかをクリックしたら「設備名」の詳細を表示するとかか?

ユーザーフォームでそれぞれのマス目を呼び出すよりは、インデックスのSheetに全体図
そこをクリックで各Sheet (※)へジャンプとかのが楽そう  上が承認するかどうかだけど
上に承認してもらうようにサンプル作ってプレゼンしてもいいし
2022/06/15(水) 21:04:50.79ID:m3jNjkHdd
コントロールフォームの動的配置 & クラスモジュールでイベント起こすに一票
どうせどこかでイベント共通化の処理が入るだろうからスケーラビリティ確保のためにも
2022/06/15(水) 21:45:31.66ID:y5599rfC0
>>534
うぬ、それが一番だと思うけど何故にエクセルなのかと思ってしまう
2022/06/16(木) 01:45:48.79ID:s8B3FZ9N0
1000個のラベルと見せかけて、
実は1個だけラボルが混ざってるんじゃないだろうか。
537デフォルトの名無しさん (ワッチョイ 4363-b1tp)
垢版 |
2022/06/16(木) 07:24:34.47ID:FKA1V1750
テキストファイルを開いて1行ずつ中身を読んでます。
Open ファイル名 For Input As fNo
Line Input fNo, buff
途中まで読んだあと、先頭から読み直したいです。
ファイルを閉じてまた開くのは嫌です!
下のURLを参考にして、
FileSystemObjectを使ってすべてを1変数に読み込み
改行コードで区切って配列化して
先頭から読み直したいときは配列の先頭から読みなおし
という方法を思いつきましたがコード修正が大変なので
もっと楽な方法をご教示いただけたら幸いです。
tps://bokulog.org/vba-read-file/
2022/06/16(木) 07:25:26.98ID:FKA1V1750
sageそこねスミマセン
2022/06/16(木) 08:10:36.64ID:fGEidPk00
>>529
1桁足りないじゃんって思ったら
Optionbaseデフォルト値でやるのが普通なのか?
俺はどうにも馴染めないので1でやってるが
2022/06/16(木) 08:12:48.83ID:H6wZRQj3M
>>537
vbaにseekってなかったっけ?
2022/06/16(木) 08:52:14.47ID:ijJBEomdd
どんなコード書いててそこからどんな手直しするかわからないのに回答のしようがないよね
542デフォルトの名無しさん (アウアウウー Sa67-IhGj)
垢版 |
2022/06/16(木) 10:17:53.34ID:G3W4msQ6a
>>537
ファイルを閉じて開き直すのが祖谷な理由が書かれてませんので
嫌でもやればいいんじゃね
2022/06/16(木) 10:35:38.36ID:OXzWqs7e0
IE終了したけど、今日の時点ではVBAからIE操作できた。いつまで保つか明示されてる?
544デフォルトの名無しさん (ワッチョイ 732f-TFwb)
垢版 |
2022/06/16(木) 13:56:39.50ID:j/xQYS4f0
サポートしないだけで
PC内にIEがある限り
永久に使えるんじゃないか?
2022/06/16(木) 14:04:02.85ID:9IfQq+aNM
そのうち深刻な脆弱性が見つかったらセキュリティソフトでウィルス扱いされるようになって、
IEコンポをロードした瞬間にウィルス警告が出るようになるだろうな
2022/06/16(木) 14:55:49.33ID:TulzdQgt0
WannaCryのときMSはサポート外にパッチ出しちゃった前科あるからなあ
なんだかんだ面倒みそうでなあ
2022/06/16(木) 19:55:32.69ID:g5Jzetu50
>>543
7年くらい大丈夫と見たような気がする
2022/06/16(木) 21:22:11.67ID:wccj32jkd
>>547
何の根拠もないな
危険な脆弱性が明日見つかったらそれで終わりだよ
2022/06/16(木) 23:09:10.84ID:BfseDl080
https://www.ka-net.org/blog/?p=13587
素直にedgeに対応したコンポーネント出してほしいなぁ

webapiからjsonを読み込むときにIEだけはいちいちダウンロード確認のポップアップが出て止まる挙動で苦しんだ記憶があるから嫌い
2022/06/17(金) 02:08:51.88ID:qX3KJPna0
>>540
Seek命令あるけど、あれランダムかバイナリモード用だと思う
が、試したがシーケンシャルファイルでもバイト位置で指定できるな
2022/06/17(金) 07:31:22.44ID:tno+JwDPr
>>547
エッジで互換モードする期間じゃない?
2022/06/17(金) 08:55:59.12ID:LpDNne3Kd
IEで終了したのは「アプリ」の「サポート」だけだぞ
IEオブジェクトはしばらく残すと明言してるから、マクロから使うのはまだ問題ない

けど、猶予期間の今のうちに社内ルールの変更など根回しはちゃんとやっとけよ
2022/06/17(金) 13:19:56.68ID:6WxlvkUPd
IEが非対応のサイトも増えてくるから対策出来るならした方が良いのはわかってる
が現状Selenium Webdriverが最適解のようでいちいちバージョン合わせるためにダウンロードしたり記述が変わったりすげー面倒

MSがどうにかしてくれると淡い期待をしたいが
2022/06/18(土) 02:47:00.46ID:x1pEIMNT0
Edgeに限らず、新しくなって使いづらくなるのホント意味不明。
PC起動するとWindows11にしませんか?って言われるけど、もうお前なんか信用しとらんわ!
555デフォルトの名無しさん (ワッチョイ 9a4f-+QtH)
垢版 |
2022/06/18(土) 06:12:14.25ID:tcSE7QQr0
まぁしょうがない
良かれ悪かれ何でも時代の変化で変わって行く
VBAは関係ないけどちょっと前にとあるシステムで
IE → EDGE の移行作業行ったよ
開発ツールは確かにIEの方がEDGEより
使いやすかったと思う。慣れだろうけどね。
2022/06/18(土) 06:56:56.06ID:8iz4uO0y0
世の中がセキュリティに舵を取るようになったからね
楽観論じゃなりゆかない時代なんだから仕方がない
2022/06/18(土) 08:20:33.50ID:7fgrQLBR0
セキュリティを理由に広告ゴリ押し
こうはなりたくないね
2022/06/18(土) 10:08:00.88ID:SSs68PlgM
もうマイクロソフトの為に仕事するのやめませんか?
559デフォルトの名無しさん (アウアウウー Sa47-iAjv)
垢版 |
2022/06/18(土) 10:08:32.00ID:Os2AgP5Ia
ieで取れなかった個人情報を集めてるからな
560デフォルトの名無しさん (ワッチョイ 17f6-vQ73)
垢版 |
2022/06/18(土) 10:59:15.44ID:0BdDrqNN0
ExcelもIEも何年も使ってないわ
kneetじゃねーよ
2022/06/18(土) 11:55:08.82ID:+2kbSQo1M
VBAもそろそろかな
2022/06/18(土) 13:40:01.62ID:T0WefD6fd
そう言われ続けて20年たった
2022/06/18(土) 16:09:32.02ID:JcC1S0zs0
VBA無くなればこのスレも下火になるかもな。
パワークエリスレが活気出る
2022/06/18(土) 16:29:16.53ID:Es40ajdn0
PowerQueryは万能じゃない
VBAと比較するもんじゃない
2022/06/18(土) 18:07:43.74ID:lnn1Xxq/M
PowerShellは万能だぞ
ExcelのワークシートもWEBブラウザも操作できる
2022/06/18(土) 18:14:09.38ID:59smDk8ed
デフォのPS 5.1はクソだけどな
BOM付きUTF-8を要求したり権限厳しかったり
2022/06/19(日) 01:44:47.25ID:7uc9nhCj0
万能かもしれんがVBSみたいな手軽さが無いのがな…
568デフォルトの名無しさん (ササクッテロレ Sp3b-+QtH)
垢版 |
2022/06/19(日) 10:44:47.27ID:uZGRAEGZp
Power shellは
.Net Freamworkが入ってなければただのShellだもんな
なら素直にVSの類いれとけばいい
2022/06/19(日) 21:06:19.28ID:+DYD1D5ZM
Powershell 7は.NETと関係ない汎用のコマンドラインシェル
macOSやLinux向けの製品すら存在する
2022/06/19(日) 21:33:18.64ID:nfQGh1M+d
追加でWebからインストールしなきゃいけないPowerShell(6以降)に存在価値はない
それが許されるんならあえてPowerShellなんて使わずとももっと優れた選択肢がいくらでもある
2022/06/19(日) 22:00:01.16ID:c6U60qvsM
Win11でもオプションなの?
うちいまだにWin10だからわからん
2022/06/20(月) 09:16:41.32ID:ZiXH0O+ed
win11でも入ってるのは5だけ
6以降はサポート期限がLTSでもリリースから2年しかないから、
仮にWindowsにプリインストールすると2年ごとにWindowsの更新で強制的にメジャーバージョンが上がって既存資産がぶっ壊れるリスクが生じる
だからどうしてもユーザーの自己責任で塩漬けにできる選択肢が必要で、Windowsの一部として扱うことが不可能なんだよ
2022/06/21(火) 14:59:24.30ID:nrTPRY1Pr
質問です
2022/06/21(火) 15:16:20.71ID:nrTPRY1Pr
質問です
ある動画で「連想配列とユーザー定義型を組み合わせると便利」ということで色々勉強していたのですが、ユーザー定義型ってpublic宣言しても別モジュールで呼び出せないですよね?
てことは別モジュールにプロシージャがあって、それを引数設定して呼び出してもエラーになりました
そこでクラスモジュールを使っても同じような事ができると聞き、クラスモジュール内に3つ型を宣言した変数を作ったのですが、それを配列に入れようとすると「配列に入れることができません」というエラーがでます
具体的には以下のとおりです
Dim c() as class1
Set c = New class1 ←ここでエラーがおきます
この記述を
Dim c() as New class1
とすればエラーは起きないのですが、別モジュールの引数に
sub test(c as New class1)と記述はできないので困っています
なにかいい方法はないでしょうか?
2022/06/21(火) 16:23:50.93ID:NaTv3t2Wr
すみません
私の勘違いでした
普通にユーザー定義型でできました
2022/06/22(水) 00:02:57.35ID:fcQ3wVRo0
ネタ投下
「貴様は一体何を仰ってるんだ」Excelマクロの納品時、担当者に言われたひと言にTwitterざわつく - 「良さを完全に殺しに来てる」の声も
https://news.mynavi.jp/article/20220620-wadai6/
2022/06/22(水) 01:16:32.40ID:/230SSBOd
>>576
くだらなすぎる
読むのは時間の無駄
2022/06/22(水) 02:03:36.70ID:/pBOMLc50
うさんくせー
セミナー屋ほど胡散臭いのはないわ、
やっぱ5ちゃんねるが一番!
2022/06/22(水) 07:25:36.31ID:dKKatMvdD
嘘松藁人形
手作業大好きおじさんが一人いましたって面白くもない話
2022/06/22(水) 07:29:12.94ID:bFCzOkRx0
話の内容はともかく客に説教とかアホすぎる
2022/06/22(水) 09:39:47.61ID:fcQ3wVRo0
「ミスが起こるような仕組み」でなくて、
まるっきりブラックボックスでもなく、
人が過程を辿れるようなの、作りたいな・・・
とは思う。
2022/06/22(水) 11:11:38.88ID:SHGr4jOjd
完全にネタ、作り話だろこれ

そもそもVBAごときでミスが起きないシステムなんて作るの不可能だし
マクロはたくさんある工程の一つに過ぎないんだから、業務全体で見ればミスが起きる余地なんてほかにいくらでもあるだろうに
2022/06/22(水) 11:58:03.94ID:qNhhYbIzd
話題にするだけばからしいでしょ
こんなの言ったもん勝ちだしね
2022/06/22(水) 12:09:22.34ID:PZ27NODvM
ブラックボックスでミスが見つけられない
を独自解釈しただけだろ
2022/06/22(水) 13:02:01.70ID:acQQyPov0
>>581
どうせDebug.Printするんだろうからデバッグモード付きで納品すればいいんじゃね
2022/06/22(水) 13:45:53.56ID:5jQGKRYma
マクロの作成頼まれたけど要求内容があまりにも怪しかったので、
マクロと一緒に「入力に対する出力が合っているか」と「そもそもの入力が誤っていないか」を簡易的に(電卓などで)求められる計算方法を渡した
そしたら約3ヶ月に一回ぐらいの割合でそもそもの入力すべきデータを誤っていたことが判明した
ってことはあったな
後で調べたら、こういうのは「封筒裏の計算」っていう手法らしいけど
2022/06/22(水) 13:46:18.61ID:qNhhYbIzd
>>581
保存期間なり世代管理してログ出力すればいいでしょ
2022/06/22(水) 15:52:29.00ID:acQQyPov0
>>586
祝儀袋の封筒に書かれた金額と入っている金が違うやんってことか
なるほど日本人はうまい例えを作るもんだと思ったら全然違ってた
2022/06/22(水) 17:31:38.14ID:/pBOMLc50
わろた
2022/06/22(水) 19:32:15.50ID:XefayqmG0
Excel2013のVBAで
Debug.Print (1 = 1) * 1
てやると-1になるけど、
セルで
=(1=1)*1
て入れると1になる。
これって不具合?
591デフォルトの名無しさん (ワッチョイ 3b5f-sER5)
垢版 |
2022/06/22(水) 19:47:11.74ID:5Bb+Exnq0
ワークシート上の(1=1)、つまりTRUE値は「1」だけど
VBAでのTrue値は「-1」だから合ってる
2022/06/22(水) 21:45:57.03ID:Io6qCa48M
>>576
毎日新聞の戯言

お前暇やろ
593デフォルトの名無しさん (ワッチョイ 1763-WaTF)
垢版 |
2022/06/23(木) 00:03:21.37ID:RpD62pBf0
VBAは好き
どんな職場で働けばいいの?
正社員じゃなくていいです。
594デフォルトの名無しさん (ブーイモ MMba-S7oR)
垢版 |
2022/06/23(木) 06:39:08.02ID:d1WC2qsrM
>>593
事務派遣。
ゆるい職場ならvba使用が禁止されて無いから与えられた業務で使って見ればいい。
2022/06/23(木) 06:45:25.15ID:ms1G02BaH
ワイまさに派遣事務でたまにVBAやってこちらのみなさんにお世話になってる(*´ε`*)
2022/06/23(木) 07:34:26.56ID:OFyvXiPXd
>>593

日本で働くのはやめておけ
将来性無いぞ
2022/06/23(木) 07:40:40.65ID:SBEKkY350
>>593
派遣おすすめ
vba縛りの事務なら、めちゃくちゃ楽で定時に帰れる
そういう人を見たことある

一生生きていけるだけの金もってたら、
そういう人生送りたかったってぐらいやりたい生き方だわ
2022/06/23(木) 09:00:02.54ID:KOp9wOBp0
生涯困らない金があって、VBAの事務作業か  もっと他に・・ いや、どうぞご自由にだけどさ
2022/06/23(木) 09:06:50.94ID:SBEKkY350
>>598
一時金持っててさ、毎日酒のんでゲームしてパッパラパーな人生送ってたのよ
当然、あっという間に体壊して病院行き

適度な仕事は、自分の健康につながるよ
2022/06/23(木) 09:13:48.26ID:RH4NXyqT0
貧困な想像力って悲しいよね
2022/06/23(木) 10:45:06.10ID:omFSpe9sd
VBAしかできないやりたくないような人だとしたらそのような人を使ってくれるところは少ないのでは・・・
なのでここで聞いてもいい回答はもらえないでしょ
602デフォルトの名無しさん (アウアウウー Sa47-vQ73)
垢版 |
2022/06/23(木) 10:56:16.87ID:M4XLJX6ga
いまさらVBAには関わりたくないな
そもそもVBA自体よりもVBAを使ってる連中と関わりたくない
603デフォルトの名無しさん (アウアウウー Sa47-iAjv)
垢版 |
2022/06/23(木) 12:20:08.77ID:QS7NhMN+a
安定のNHK
2022/06/23(木) 12:41:27.99ID:8671gq8M0
なんでココにいるのか?
ってツッコミ入れたら負けなんかなw
2022/06/23(木) 13:16:25.44ID:Qj8PYDZt0
ちがうでしょ、所謂かまってちゃんでしょ。
慰めてやるべき
2022/06/23(木) 13:34:30.38ID:iXtKw0QdM
プログラマからしたらVBAしか出来ないって使えないやつでしかないからなぁ
2022/06/23(木) 14:08:36.94ID:SBEKkY350
>>606
無知なのにテキトーに言い過ぎ

vbaは特殊で、保守がメインの現場ばかり。vba使えればそれでいい
立ち位置的にはCOBOLに近い
2022/06/23(木) 14:41:25.25ID:RH4NXyqT0
>>607
世の中を知らなすぎ
どんどんVBAは消えていってる
MSすらVBAではなくPython導入しようとしてたが、
openpyxlやxlwingsの出来が良かったのでそれらを薦めてるんだよ
突然IEのサポートが終わるとか言ってる奴くらいだぞ知らないの
2022/06/23(木) 14:45:19.51ID:SBEKkY350
>>608

だから保守メインって言ってるじゃん
新規開発なんて無く基本的に別言語とは関わりがない
2022/06/23(木) 14:51:02.16ID:9dA5CJ8Sd
そのツールでできるならどんなの選んでもいいだろ
>>608みたいなのはそんなこともわからず俺こんなの知ってるぜスゲーだろって言いたいだけのかまってちゃんだろ
VBAはそもそも基本的にWindowsPCなら入っているであろうExcelさえあれば
他に何も入れなくても使う事ができるという1点で他にはない優位性があるわけだし
職場によっては変なものを入れるのはNGみたいなところもあるんだから
そういう事も踏まえないでただ批判だけするのはおかしい話
611デフォルトの名無しさん (アウアウウー Sa47-vQ73)
垢版 |
2022/06/23(木) 15:10:52.41ID:Ukh7Grgra
ほらな
やっぱりVBAだろ
2022/06/23(木) 15:22:59.47ID:RH4NXyqT0
>>609
VBAからPythonへのリファクタリングが進んでるって話だよ
リファクタリングって新規開発ではなく保守なんだけど理解できないようだしなw
今後もVBA使っていくつもりなら、
VBAがやがてどうなるとか調べるのはかまってちゃん以外でも当然の行為だろ
ましてや仕事なら尚のこと
2022/06/23(木) 15:38:55.20ID:SBEKkY350
>>612
へぇ、それは知らなかったわ、物知りだな~
具体的にはどんな案件がvbaからpythonになってるの?
2022/06/23(木) 15:45:42.70ID:SBEKkY350
エクセル・accessの簡易的・汎用的な入力方法を全部捨てて、
pythonで作り直す案件とはどういうものなのだろうか?
概算するまでもなくものすごく高くなるんだけど、一体どういう案件だとコストダウンになるのだろう?
早く回答してほしいなぁ。まだかなぁ
2022/06/23(木) 16:48:28.59ID:RH4NXyqT0
>>614
openpyxlやxlwingsって具体的な名前出してるのに調べたり理解できない奴が煽ってるのか
無知な上に調査も思考もできない役立たずがVBAだけで食っていくとか何の冗談だよ
2022/06/23(木) 17:06:30.04ID:Qj8PYDZt0
VBAだけじゃなくて、Excelの一通りの知識も必要では?
事務員なら
2022/06/23(木) 17:13:43.84ID:SBEKkY350
>>615
おう見落としてたわサンキューな
勉強してくるわ
2022/06/23(木) 19:20:48.18ID:xtvi5Qi8a
案件って言ってるのに
> openpyxlやxlwings
とか、アホ丸出しやんw
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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