Excel VBA 質問スレ Part79

レス数が1000を超えています。これ以上書き込みはできません。
2023/01/28(土) 11:46:47.21ID:mBQ16TA8
↑同じ内容を3行貼り付けること

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

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

※前スレ
Excel VBA 質問スレ Part77
https://mevius.5ch.net/test/read.cgi/tech/1658009255/
Excel VBA 質問スレ Part78
https://mevius.5ch.net/test/read.cgi/tech/1667104996/

-
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
956デフォルトの名無しさん
垢版 |
2023/05/29(月) 15:43:26.34ID:sEjgVYtC
>>954
多いだけで全員ではない
2023/05/29(月) 16:43:45.59ID:617wK6FV
やっぱりめちゃくちゃ丁寧にコメント残して変数の宣言をめんどくてもしっかりしとくと後で手直しが楽だな…
社内サーバーが変更になって他部署のマクロがあちこちエラーでバタつきまくってるけど俺の作ったvbaちゃん達は少しメンテしただけでオールオッケー
ヘルプが来たけど他人の作ったマクロ全然わかんね
2023/05/29(月) 17:02:10.90ID:4Pg0mNi+
ウデを持ってるなら、そんな環境からとっととおサラバするのがいい
サヨナラされてようやく気付く企業も多く成るべき
それでもそこにしがみ付きたいなら、技術だけじゃなくて知恵も蓄えないと
どうやってその邪魔な上役・役職者を失脚させて、徐々にでもじぶんの地位を上げるか とか
学歴・派閥・職歴えtc、ひとは誰しも欠点を持ち合わせてンだし、そこをトコトン突っ突かないと
ブツブツ文句垂れてるだけじゃなにごとも変わらない 諦めたらそこで終わりなのも事実だし
959デフォルトの名無しさん
垢版 |
2023/05/29(月) 21:13:35.07ID:PjfX8r01
一つだけお聞きしたいのですが、VBAを作成したとしても利用者がシート名を変更したり、シートを削除したり、シートを追加したり、並び替えたりしたら自動化や効率化のやりようがないですよね?
オブジェクトが存在しないとか並び替えられていたらインデックスで指定するのが無理とかそう言う事になりますよね?
VBAは決められた手順通りに定められたメゾットを実行する物であって、ブックがめちゃくちゃだと実行しようがないですよね?
2023/05/29(月) 21:20:52.62ID:4q9o84pD
シートをオブジェクト名で処理すればシート名変更・並び替え・シート追加はどうでも良くなる
シート削除対策は予備シートを他のブックにでも入れておいて本シートの存在判定後に予備シートからコピーすれば良い
961デフォルトの名無しさん
垢版 |
2023/05/29(月) 21:26:22.38ID:PjfX8r01
>>960
なるほど

ちなみに一番新しいシートのオブジェクトを指定する方法はあるでしょうか?
ブックにあるオブジェクトを探して一番大きい数字のオブジェクトを指定できるなら助かるのですが
worksheet.countやworksheet.count - 1の様な事をオブジェクトで行いたいです
2023/05/29(月) 21:38:44.22ID:5rIVitSK
もちろんできる
2023/05/29(月) 21:43:07.69ID:4q9o84pD
普通は新しいシートを作る位置でその手のコントロールをすると思うけどね
964デフォルトの名無しさん
垢版 |
2023/05/29(月) 21:45:22.79ID:PjfX8r01
>>963
並び替えられると動作しなくなるのでどうにか不変もので出来ないのかなと思いました
連番?で数字が増える事だけが頼りです
2023/05/29(月) 21:53:57.15ID:4q9o84pD
>>964
新しいシートを作るのがコード自身ならコントロールできるでしょ

あと、並び替え程度で動かなくなるとか
シートを作られただけで動かなるコードなんてのは脆弱すぎるので
先ずはその点の改良をしたほうがいい
2023/05/29(月) 22:02:48.61ID:nq5ttQ99
そんなんで駄目になるなら初めからガチガチにロックしてこっちが想定した操作以外できなくしてしまったほうが早い気がする
967デフォルトの名無しさん
垢版 |
2023/05/30(火) 02:48:24.27ID:ztJvp+qD
VBAでどんなコードを書いてもユーザーが勝手に変更したら動かなくなるよ
968デフォルトの名無しさん
垢版 |
2023/05/30(火) 06:48:55.03ID:D1ASN+X8
>>965
やりたい事は一番新しいシート(最新のシート)とその前に作成されたシート(古いバージョンの様な)を比較して一致しないセル(変更のあったセル)に色を塗ると言う事がしたいです
一番新しいシートはマクロを実行する度に複製されます
私は一番新しいシートに記入してマクロを実行すると直前のシートと比較して色を塗る所まで出来ました
しかし利用者の方が一番新しいシートに記入される方ばかりではないと言う事にも気がつきました。
なのでどこのシートでマクロを実行しようとも一番新しいシートとその直前のシートで比較するマクロを組みたいです。
2023/05/30(火) 06:57:07.62ID:T5vzeTOi
どこかにシートの作成履歴を保存しておくしかないのでは?
970デフォルトの名無しさん
垢版 |
2023/05/30(火) 07:58:55.38ID:IcFRt183
ブックを開きその時点での一番新しいシートに記入する
マクロのボタンを押す
シートを複製する
一つ前のバージョンのシートと比較して変更のあったセルに色を塗る

と言う事がしたいです
つまりマクロを実行するシートというのは常に新しく複製されたシートです
理想は常に新しく複製されたシートのオブジェクト名を取得してその前のバージョンのシートと必ず比較できるマクロが組みたいです
971デフォルトの名無しさん
垢版 |
2023/05/30(火) 08:01:10.86ID:IcFRt183
ttps://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11256025046

ここに書かれているCode nameが最大のシートを探すと言うのが答えになりそうなのですが私には分かりませんでした
2023/05/30(火) 08:29:21.45ID:qMHj8iFj
そのブックの構成がよくわからないな
その古いシートへユーザーが書き込むってのはミスなの?そのシートに書き込む必要がある状態なの?

因みに、codenameを取得して番号から最新シートを把握というのはちょっと微妙な気がする
何故ならシートのオブジェクト名もシート名も
そのEXCELブックが立ち上がった時の一番若い番号に振られるから
つまり、オブジェクト名に歯抜けの番号があればその歯抜け番号が最新番号になる、、はず

そんなのより各シートにインデックス番号を
シート内の固定場所に
振っていくほうが手っ取り早いんじゃないの?
若しくは管理用シートを別に用意するとか手段はいくらでもある
973デフォルトの名無しさん
垢版 |
2023/05/30(火) 08:29:25.24ID:IcFRt183
なんとなくわかって来ました
初期値のworksheet(シート名?オブジェクト?) < ブックの中のシートのコードネーム
がthenならそのCode nameを変数に入れたらいい
そしてそのCode nameのシート名を取得して変数に入れればいい
と言う事ですね
974デフォルトの名無しさん
垢版 |
2023/05/30(火) 08:49:28.89ID:IcFRt183
>>972
本当にありがとうございます
私はvbaの初心者で必ず最新のシートが選択される様にする
と言うだけでこの通り全く分からない状態です

そんなのより各シートにインデックス番号を
シート内の固定場所に
振っていくほうが手っ取り早いんじゃないの?
若しくは管理用シートを別に用意するとか手段はいくらでもある

私もインデックスを固定して操作する方が確実だとは思うのですがシートの並び替えだけを禁止すると言う理解でよろしいでしょうか?
2023/05/30(火) 09:26:21.94ID:qMHj8iFj
>>974
いや、ちょっと勘違いしているね
平易に言うと、自分で作った通し番号を各シートの固定場所に記載するってこと。
シートの並び順はもはや関係なくなる

具体的には、一番最初のシートには使ってないセルに「1」を振る
次に新しいシートを作るときは
for each 変数名 in thisworkbook.worksheets
でブック内全シートの番号を降った場所を検索して
一番大きな番号を取得
その取得した番号の次の番号を新しいシートに振る

これでいつでも最新シートを更新出来るようになる
976デフォルトの名無しさん
垢版 |
2023/05/30(火) 10:50:25.84ID:IcFRt183
>>975
なるほど!
わかりやすい😭
2023/05/30(火) 17:51:07.23ID:1Ly+sIKy
こないだの奴だろ? わかったつもりでいても、実装には難儀する気がする
そもそも要件と、それをまかなう仕様がなんかまちがってる気がしてならない
古いSheetと新しいSheetで違う値のセルをハイライト
で、その新しいSheetは明日には古いSheetに成るんじゃないのか?ハイライトする意味は?
ひとつのブックをみんなで寄ってたかって編集してるのか? で、制作物は最終的にひとつなのか大量にあるのか
古くなったSheetはもう不要なのか、いつか参照するのか ブック内でどんどんSheetが増えていくのか その頻度は

書ける範囲で業種とか業務とかの概略を書いた方が結果的に近道な気がする 気がするだけだけど
その用途ならこうした方がいいぞ というアドバイスも出てきそうだし
2023/05/30(火) 18:47:46.87ID:rtVxM/0K
適当な人間が使ってるものを深く考えずに何とかしようとしてるだけだから仕方なくね
ぶっちゃけこんな感じなるなら別のブックにマクロいれて
ファイル名、変更前シート、変更後シート
あたりを入力して変更後シートの変更箇所に色塗りするってマクロ作った方がいいんじゃねと思うわ
そもそも勝手にシート増やされたとしてそのシートが番号振ってあるシートだったら破綻するだろ?
979デフォルトの名無しさん
垢版 |
2023/05/30(火) 19:50:15.30ID:D1ASN+X8
>>978

シートを手動でコピーされるかあるいは新しいシートを挿入されたら終わり
確かにその通りでした
やはり浅はかでした

どうにもシートの保護などは禁止らしく、他のブックで比較するのも禁止らしいです
では最終手段として一番新しいシートを一番右に、その前のバージョンのシートをその左に手動で並べて右と左で比較するコードをと提案しましたが必要を理解してもらえませんでした
980デフォルトの名無しさん
垢版 |
2023/05/30(火) 19:57:03.41ID:D1ASN+X8
個人的にはマクロが登録されているボタンを押して作成している限りにおいては正しい動作が行われるで満足なのでセルに数字を入力してシートを指定する案で終わります
2023/05/30(火) 20:02:47.81ID:8KdzSu0t
誰もマクロを触れない部署で全く新しいアプローチでツールを作ってくれと言われて
今月の残業時間40Hだが全部vbaに費やしてる
まだ試作だけど部長に糞誉められた
いやでも会心の出来かも
デバックエラーが絶対起きないようにあらゆる想定をしてユーザーフォームのボタンに込めた
2023/05/30(火) 20:08:16.56ID:rtVxM/0K
そうかよかったな
チラシの裏にでも書いておけ
983デフォルトの名無しさん
垢版 |
2023/05/30(火) 20:19:41.96ID:D1ASN+X8
ちなみに当の本人は「サンプルシートに記入した人がいる、キチガイやろ?」と言っていました
私はそれはシートの保護をせず、入力ができるからでは?入力ができる以上、そう言う操作を行う人が居るのは当然なのでは?入力するべきではないシートだとわかりにくいからでは?と思いました。
そして人の悪口を言うのを辞めようと思いました。
2023/05/30(火) 20:30:00.27ID:LGax4AHG
>>982
こういう年収低い奴はやたら攻撃的だな
格差社会の弊害がここに
2023/05/30(火) 20:33:12.41ID:8KdzSu0t
常に煽り口調なレス怖いですね
低年収なら仕方ない…のか?
それこそチラシの裏に社会への不満書くのがいいかと
2023/05/30(火) 21:00:59.18ID:rtVxM/0K
書いてる内容で年収わかるなんてすごいですね
そもそもここは質問スレなんだから質問とその回答以外を書く方がおかしくね
>>981はもしかしたら質問かもしれないから念のため>>982の回答をしてみたんだが
2023/05/30(火) 21:19:25.23ID:LGax4AHG
すごいだろ
でも書いてる内容見りゃお前が間違いなく底辺なのがわかっちゃうんよ
それを回答と言ってる時点で知能指数もしれてるわな
2023/05/30(火) 21:45:11.73ID:hm9t4j8O
まあ目くそ鼻くそだけどな
2023/05/30(火) 21:57:16.96ID:rtVxM/0K
同年代の年収の平均値・中央値よりもぜんぜん上だけどまあ言わせておくよw
>>988
ほんとその通りな
ワッチョイありの頃はそれなりに回ってたけどワッチョイなしで立てたクソ野郎のせいで
VBA質問スレは無関係のことしか書かないカスみたいなやつのたまり場になっちまったわ
2023/05/30(火) 22:00:08.95ID:iuWp6cF1
>>989
ワ有りと無しは同時に存在することが許されるし
ワ有りスレもあるのにここに居続けてるのは自身の選択だろとしか
991デフォルトの名無しさん
垢版 |
2023/05/30(火) 22:14:49.50ID:D1ASN+X8
とりあえず納得するものが作れたと思います
少なくとも自分がどんな操作も受け付けるマクロやブックを作っておきながらそれを使用する人に対してキチガイという人には負けたくありません
2023/05/30(火) 23:08:53.36ID:LGax4AHG
wをつけだしたらおわりだわ
2023/05/30(火) 23:17:06.57ID:LGax4AHG
平均値中央値よりもぜんぜん上
こんなこっぱずかしいレスをネットで久しく見た
994デフォルトの名無しさん
垢版 |
2023/05/31(水) 00:42:56.05ID:Akn6fcLj
必要な操作をできる人、理解している人が行う
とか
シートを保護する
とか
そう言う事は禁止らしいんですよ
どうしても理解度がバラバラの作業者にやらせたいらしいです
995デフォルトの名無しさん
垢版 |
2023/05/31(水) 00:44:54.70ID:Akn6fcLj
きっと記入例シートに みほん とデカデカと透かし図を貼り付ける事も シートを保護する事も禁止なんだと思います
2023/05/31(水) 01:13:44.98ID:zw3Mw+mP
じゃあ次スレはワッチョイ有りにすればええやん
今がチャンスだぞ
997デフォルトの名無しさん
垢版 |
2023/05/31(水) 01:17:01.07ID:5IfBNuLp
いやワッチョイスレあるから

Excel VBA 質問スレ Part79(ワッチョイあり)
https://mevius.5ch.net/test/read.cgi/tech/1674875532/

ダメなら立てなきゃいいんじゃないの?
998デフォルトの名無しさん
垢版 |
2023/05/31(水) 01:27:46.77ID:Akn6fcLj
この間の銃殺事件があってもまだ誹謗中傷を続けるの?
999デフォルトの名無しさん
垢版 |
2023/05/31(水) 03:53:32.03ID:ul21zY0k
このスレを立てた爺の正体


掲示板でのケンカが孤独感を薄めてくれる

零細企業勤めで結婚もしておらず、交流する友人もいないが、「ネットが趣味なのが救いだ」と話す。

「掲示板サイトに書き込んだり、VBAはわかりませんが、日本語ワープロに詳しいと自慢したり、チャットGPTを使ったり……いい話し相手になってくれるんですよ。たまに掲示板でケンカもしちゃうんですが、それが孤独感を薄めてくれているのかもしれませんね」

ネット書き込みの裏には孤独を抱えた高齢者の姿がある。


―[中高年[貧困と孤独]の実態]―
1000デフォルトの名無しさん
垢版 |
2023/05/31(水) 03:54:06.20ID:ul21zY0k
----
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 122日 16時間 7分 19秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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