[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/26 16:42 / Filesize : 257 KB / Number-of Response : 1014
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part79



1 名前:デフォルトの名無しさん mailto:sage [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

960 名前:デフォルトの名無しさん [2023/05/28(日) 21:50:34.02 ID:0FRQEohw.net]
すみません
ここまでのコードはうまくいくのですがこの先の以下のコードを実行すると400や1004のエラーメッセージが表示されます
しかしながら望み通りの場所に名前をつけて保存してくれます
なんのエラーが出ているのでしょうか?



Sheets("リスト").Copy

ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\TEST1.xlsx"

ActiveWorkbook.Close

End Sub

リスト シートをコピーして新しいブックとして開き、名前をつけて同じ場所に保存という事がしたいです。

961 名前:デフォルトの名無しさん [2023/05/28(日) 22:12:18.01 ID:0FRQEohw.net]
おそらくやっと原因が判明しました
OneDriveのせいでした

962 名前:デフォルトの名無しさん mailto:sage [2023/05/28(日) 22:50:47.30 ID:v/IHwhGn.net]
2~30年後ぐらいにAIの分野の遅れが致命的になり慌ててAI庁とか作りそう

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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



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

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


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

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

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

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


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

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

1012 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 122日 16時間 7分 19秒

1013 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<257KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef