2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

Excel VBA 質問スレ Part79

1 :デフォルトの名無しさん:2023/01/28(土) 11:46:47.21 ID:mBQ16TA8.net
↑同じ内容を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

952 :デフォルトの名無しさん:2023/05/28(日) 23:40:07.55 ID:O8C+AHmT.net
デジタル庁があるやん

953 :デフォルトの名無しさん:2023/05/29(月) 02:32:31.75 ID:A0J6rQWV.net
金目当ての仕事しかしないで中身スカスカだろうけど

954 :デフォルトの名無しさん:2023/05/29(月) 06:53:52.00 ID:6VgnbzRd.net
>>946
今の日本は現場が下に見られるから
技術のある人は権力や役職者にいいように利用されて終わることが多い

955 :デフォルトの名無しさん:2023/05/29(月) 10:00:53.79 ID:XEr4TBXw.net
みんな、エッチ団結しようよ!

956 :デフォルトの名無しさん:2023/05/29(月) 15:43:26.34 ID:sEjgVYtC.net
>>954
多いだけで全員ではない

957 :デフォルトの名無しさん:2023/05/29(月) 16:43:45.59 ID:617wK6FV.net
やっぱりめちゃくちゃ丁寧にコメント残して変数の宣言をめんどくてもしっかりしとくと後で手直しが楽だな…
社内サーバーが変更になって他部署のマクロがあちこちエラーでバタつきまくってるけど俺の作ったvbaちゃん達は少しメンテしただけでオールオッケー
ヘルプが来たけど他人の作ったマクロ全然わかんね

958 :デフォルトの名無しさん:2023/05/29(月) 17:02:10.90 ID:4Pg0mNi+.net
ウデを持ってるなら、そんな環境からとっととおサラバするのがいい
サヨナラされてようやく気付く企業も多く成るべき
それでもそこにしがみ付きたいなら、技術だけじゃなくて知恵も蓄えないと
どうやってその邪魔な上役・役職者を失脚させて、徐々にでもじぶんの地位を上げるか とか
学歴・派閥・職歴えtc、ひとは誰しも欠点を持ち合わせてンだし、そこをトコトン突っ突かないと
ブツブツ文句垂れてるだけじゃなにごとも変わらない 諦めたらそこで終わりなのも事実だし

959 :デフォルトの名無しさん:2023/05/29(月) 21:13:35.07 ID:PjfX8r01.net
一つだけお聞きしたいのですが、VBAを作成したとしても利用者がシート名を変更したり、シートを削除したり、シートを追加したり、並び替えたりしたら自動化や効率化のやりようがないですよね?
オブジェクトが存在しないとか並び替えられていたらインデックスで指定するのが無理とかそう言う事になりますよね?
VBAは決められた手順通りに定められたメゾットを実行する物であって、ブックがめちゃくちゃだと実行しようがないですよね?

960 :デフォルトの名無しさん:2023/05/29(月) 21:20:52.62 ID:4q9o84pD.net
シートをオブジェクト名で処理すればシート名変更・並び替え・シート追加はどうでも良くなる
シート削除対策は予備シートを他のブックにでも入れておいて本シートの存在判定後に予備シートからコピーすれば良い

961 :デフォルトの名無しさん:2023/05/29(月) 21:26:22.38 ID:PjfX8r01.net
>>960
なるほど

ちなみに一番新しいシートのオブジェクトを指定する方法はあるでしょうか?
ブックにあるオブジェクトを探して一番大きい数字のオブジェクトを指定できるなら助かるのですが
worksheet.countやworksheet.count - 1の様な事をオブジェクトで行いたいです

962 :デフォルトの名無しさん:2023/05/29(月) 21:38:44.22 ID:5rIVitSK.net
もちろんできる

963 :デフォルトの名無しさん:2023/05/29(月) 21:43:07.69 ID:4q9o84pD.net
普通は新しいシートを作る位置でその手のコントロールをすると思うけどね

964 :デフォルトの名無しさん:2023/05/29(月) 21:45:22.79 ID:PjfX8r01.net
>>963
並び替えられると動作しなくなるのでどうにか不変もので出来ないのかなと思いました
連番?で数字が増える事だけが頼りです

965 :デフォルトの名無しさん:2023/05/29(月) 21:53:57.15 ID:4q9o84pD.net
>>964
新しいシートを作るのがコード自身ならコントロールできるでしょ

あと、並び替え程度で動かなくなるとか
シートを作られただけで動かなるコードなんてのは脆弱すぎるので
先ずはその点の改良をしたほうがいい

966 :デフォルトの名無しさん:2023/05/29(月) 22:02:48.61 ID:nq5ttQ99.net
そんなんで駄目になるなら初めからガチガチにロックしてこっちが想定した操作以外できなくしてしまったほうが早い気がする

967 :デフォルトの名無しさん:2023/05/30(火) 02:48:24.27 ID:ztJvp+qD.net
VBAでどんなコードを書いてもユーザーが勝手に変更したら動かなくなるよ

968 :デフォルトの名無しさん:2023/05/30(火) 06:48:55.03 ID:D1ASN+X8.net
>>965
やりたい事は一番新しいシート(最新のシート)とその前に作成されたシート(古いバージョンの様な)を比較して一致しないセル(変更のあったセル)に色を塗ると言う事がしたいです
一番新しいシートはマクロを実行する度に複製されます
私は一番新しいシートに記入してマクロを実行すると直前のシートと比較して色を塗る所まで出来ました
しかし利用者の方が一番新しいシートに記入される方ばかりではないと言う事にも気がつきました。
なのでどこのシートでマクロを実行しようとも一番新しいシートとその直前のシートで比較するマクロを組みたいです。

969 :デフォルトの名無しさん:2023/05/30(火) 06:57:07.62 ID:T5vzeTOi.net
どこかにシートの作成履歴を保存しておくしかないのでは?

970 :デフォルトの名無しさん:2023/05/30(火) 07:58:55.38 ID:IcFRt183.net
ブックを開きその時点での一番新しいシートに記入する
マクロのボタンを押す
シートを複製する
一つ前のバージョンのシートと比較して変更のあったセルに色を塗る

と言う事がしたいです
つまりマクロを実行するシートというのは常に新しく複製されたシートです
理想は常に新しく複製されたシートのオブジェクト名を取得してその前のバージョンのシートと必ず比較できるマクロが組みたいです

971 :デフォルトの名無しさん:2023/05/30(火) 08:01:10.86 ID:IcFRt183.net
ttps://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11256025046

ここに書かれているCode nameが最大のシートを探すと言うのが答えになりそうなのですが私には分かりませんでした

972 :デフォルトの名無しさん:2023/05/30(火) 08:29:21.45 ID:qMHj8iFj.net
そのブックの構成がよくわからないな
その古いシートへユーザーが書き込むってのはミスなの?そのシートに書き込む必要がある状態なの?

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

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

973 :デフォルトの名無しさん:2023/05/30(火) 08:29:25.24 ID:IcFRt183.net
なんとなくわかって来ました
初期値のworksheet(シート名?オブジェクト?) < ブックの中のシートのコードネーム
がthenならそのCode nameを変数に入れたらいい
そしてそのCode nameのシート名を取得して変数に入れればいい
と言う事ですね

974 :デフォルトの名無しさん:2023/05/30(火) 08:49:28.89 ID:IcFRt183.net
>>972
本当にありがとうございます
私はvbaの初心者で必ず最新のシートが選択される様にする
と言うだけでこの通り全く分からない状態です

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

私もインデックスを固定して操作する方が確実だとは思うのですがシートの並び替えだけを禁止すると言う理解でよろしいでしょうか?

975 :デフォルトの名無しさん:2023/05/30(火) 09:26:21.94 ID:qMHj8iFj.net
>>974
いや、ちょっと勘違いしているね
平易に言うと、自分で作った通し番号を各シートの固定場所に記載するってこと。
シートの並び順はもはや関係なくなる

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

これでいつでも最新シートを更新出来るようになる

976 :デフォルトの名無しさん:2023/05/30(火) 10:50:25.84 ID:IcFRt183.net
>>975
なるほど!
わかりやすい😭

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

書ける範囲で業種とか業務とかの概略を書いた方が結果的に近道な気がする 気がするだけだけど
その用途ならこうした方がいいぞ というアドバイスも出てきそうだし

978 :デフォルトの名無しさん:2023/05/30(火) 18:47:46.87 ID:rtVxM/0K.net
適当な人間が使ってるものを深く考えずに何とかしようとしてるだけだから仕方なくね
ぶっちゃけこんな感じなるなら別のブックにマクロいれて
ファイル名、変更前シート、変更後シート
あたりを入力して変更後シートの変更箇所に色塗りするってマクロ作った方がいいんじゃねと思うわ
そもそも勝手にシート増やされたとしてそのシートが番号振ってあるシートだったら破綻するだろ?

979 :デフォルトの名無しさん:2023/05/30(火) 19:50:15.30 ID:D1ASN+X8.net
>>978

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

どうにもシートの保護などは禁止らしく、他のブックで比較するのも禁止らしいです
では最終手段として一番新しいシートを一番右に、その前のバージョンのシートをその左に手動で並べて右と左で比較するコードをと提案しましたが必要を理解してもらえませんでした

980 :デフォルトの名無しさん:2023/05/30(火) 19:57:03.41 ID:D1ASN+X8.net
個人的にはマクロが登録されているボタンを押して作成している限りにおいては正しい動作が行われるで満足なのでセルに数字を入力してシートを指定する案で終わります

981 :デフォルトの名無しさん:2023/05/30(火) 20:02:47.81 ID:8KdzSu0t.net
誰もマクロを触れない部署で全く新しいアプローチでツールを作ってくれと言われて
今月の残業時間40Hだが全部vbaに費やしてる
まだ試作だけど部長に糞誉められた
いやでも会心の出来かも
デバックエラーが絶対起きないようにあらゆる想定をしてユーザーフォームのボタンに込めた

982 :デフォルトの名無しさん:2023/05/30(火) 20:08:16.56 ID:rtVxM/0K.net
そうかよかったな
チラシの裏にでも書いておけ

983 :デフォルトの名無しさん:2023/05/30(火) 20:19:41.96 ID:D1ASN+X8.net
ちなみに当の本人は「サンプルシートに記入した人がいる、キチガイやろ?」と言っていました
私はそれはシートの保護をせず、入力ができるからでは?入力ができる以上、そう言う操作を行う人が居るのは当然なのでは?入力するべきではないシートだとわかりにくいからでは?と思いました。
そして人の悪口を言うのを辞めようと思いました。

984 :デフォルトの名無しさん:2023/05/30(火) 20:30:00.27 ID:LGax4AHG.net
>>982
こういう年収低い奴はやたら攻撃的だな
格差社会の弊害がここに

985 :デフォルトの名無しさん:2023/05/30(火) 20:33:12.41 ID:8KdzSu0t.net
常に煽り口調なレス怖いですね
低年収なら仕方ない…のか?
それこそチラシの裏に社会への不満書くのがいいかと

986 :デフォルトの名無しさん:2023/05/30(火) 21:00:59.18 ID:rtVxM/0K.net
書いてる内容で年収わかるなんてすごいですね
そもそもここは質問スレなんだから質問とその回答以外を書く方がおかしくね
>>981はもしかしたら質問かもしれないから念のため>>982の回答をしてみたんだが

987 :デフォルトの名無しさん:2023/05/30(火) 21:19:25.23 ID:LGax4AHG.net
すごいだろ
でも書いてる内容見りゃお前が間違いなく底辺なのがわかっちゃうんよ
それを回答と言ってる時点で知能指数もしれてるわな

988 :デフォルトの名無しさん:2023/05/30(火) 21:45:11.73 ID:hm9t4j8O.net
まあ目くそ鼻くそだけどな

989 :デフォルトの名無しさん:2023/05/30(火) 21:57:16.96 ID:rtVxM/0K.net
同年代の年収の平均値・中央値よりもぜんぜん上だけどまあ言わせておくよw
>>988
ほんとその通りな
ワッチョイありの頃はそれなりに回ってたけどワッチョイなしで立てたクソ野郎のせいで
VBA質問スレは無関係のことしか書かないカスみたいなやつのたまり場になっちまったわ

990 :デフォルトの名無しさん:2023/05/30(火) 22:00:08.95 ID:iuWp6cF1.net
>>989
ワ有りと無しは同時に存在することが許されるし
ワ有りスレもあるのにここに居続けてるのは自身の選択だろとしか

991 :デフォルトの名無しさん:2023/05/30(火) 22:14:49.50 ID:D1ASN+X8.net
とりあえず納得するものが作れたと思います
少なくとも自分がどんな操作も受け付けるマクロやブックを作っておきながらそれを使用する人に対してキチガイという人には負けたくありません

992 :デフォルトの名無しさん:2023/05/30(火) 23:08:53.36 ID:LGax4AHG.net
wをつけだしたらおわりだわ

993 :デフォルトの名無しさん:2023/05/30(火) 23:17:06.57 ID:LGax4AHG.net
平均値中央値よりもぜんぜん上
こんなこっぱずかしいレスをネットで久しく見た

994 :デフォルトの名無しさん:2023/05/31(水) 00:42:56.05 ID:Akn6fcLj.net
必要な操作をできる人、理解している人が行う
とか
シートを保護する
とか
そう言う事は禁止らしいんですよ
どうしても理解度がバラバラの作業者にやらせたいらしいです

995 :デフォルトの名無しさん:2023/05/31(水) 00:44:54.70 ID:Akn6fcLj.net
きっと記入例シートに みほん とデカデカと透かし図を貼り付ける事も シートを保護する事も禁止なんだと思います

996 :デフォルトの名無しさん:2023/05/31(水) 01:13:44.98 ID:zw3Mw+mP.net
じゃあ次スレはワッチョイ有りにすればええやん
今がチャンスだぞ

997 :デフォルトの名無しさん:2023/05/31(水) 01:17:01.07 ID:5IfBNuLp.net
いやワッチョイスレあるから

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

ダメなら立てなきゃいいんじゃないの?

998 :デフォルトの名無しさん:2023/05/31(水) 01:27:46.77 ID:Akn6fcLj.net
この間の銃殺事件があってもまだ誹謗中傷を続けるの?

999 :デフォルトの名無しさん:2023/05/31(水) 03:53:32.03 ID:ul21zY0k.net
このスレを立てた爺の正体


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

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

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

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


―[中高年[貧困と孤独]の実態]―

1000 :デフォルトの名無しさん:2023/05/31(水) 03:54:06.20 ID:ul21zY0k.net
----

1001 :2ch.net投稿限界:Over 1000 Thread
2ch.netからのレス数が1000に到達しました。

総レス数 1001
257 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★