Excel VBA 質問スレ Part83

■ このスレッドは過去ログ倉庫に格納されています
2025/06/08(日) 11:06:42.20ID:j4jIPbHU
ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK

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

※前スレ
Excel VBA 質問スレ Part82
https://mevius.5ch.net/test/read.cgi/tech/1737657075/1
2025/06/16(月) 08:26:07.42ID:ibaltNjp
>>81
ありがとうこれ凄い
この方法とシート保護とを組み合わせれば破壊されにくい設定シート作れるね
88デフォルトの名無しさん
垢版 |
2025/06/16(月) 08:56:55.43ID:MJjeAku4
>>86
そんなことはなく、Getだけ書けば読み取り専用のプロパティになるんじゃないかな
89デフォルトの名無しさん
垢版 |
2025/06/16(月) 08:57:34.46ID:MJjeAku4
Letだけも可能かと
90デフォルトの名無しさん
垢版 |
2025/06/16(月) 11:04:03.58ID:1rbEE5kZ
freeするときhoge=Noneが正解なの?
2025/06/16(月) 11:40:56.34ID:CXTiNK7e
Noneは間違いでは?
92デフォルトの名無しさん
垢版 |
2025/06/16(月) 12:25:30.81ID:j7Ja2cxZ
Hage=Nothing
93デフォルトの名無しさん
垢版 |
2025/06/16(月) 18:39:33.37ID:YHajXHhq
セルの値が書き換えられました
行が削除されました
列が削除されました
ファイルの名前が変えられました
フォルダの名前が変えられました
シートの構造が変えられました
だから動きません
これ私の責任ですか?
94デフォルトの名無しさん
垢版 |
2025/06/16(月) 19:07:37.59ID:YHajXHhq
はっきり言って壊れるのがExcelですよね?
2025/06/16(月) 19:13:43.41ID:K2AaEYtv
皆に嫌われているから嫌がらせされているんだろ
2025/06/16(月) 19:42:28.10ID:Mgfu6kwT
変更されたら困る部分はみんな文字列じゃなくて画像にしてしまえ
97デフォルトの名無しさん
垢版 |
2025/06/16(月) 20:21:03.43ID:YHajXHhq
つくづく仕様がしっかりと定まっていないとそもそも論として無理、不可能だと思い知らされました。
仕様に決まっていない事は拡大解釈してしまうから。
98デフォルトの名無しさん
垢版 |
2025/06/16(月) 21:46:55.86ID:dwstnLOd
昔:馬鹿鹿いない
今:もう人いない
2025/06/16(月) 22:20:03.10ID:xQwWAx0q
>>93
マニュアルは作ってないの?
ドキュメントとか残さない人?
100デフォルトの名無しさん
垢版 |
2025/06/16(月) 22:31:49.93ID:YHajXHhq
>>99
マニュアルとドキュメントを作れば守ってくれる人ばかりなのですか?
業務が変更されたら?
101デフォルトの名無しさん
垢版 |
2025/06/16(月) 22:46:01.52ID:YHajXHhq
>>95
まぁとっとと辞めろって事なんでしょうね
2025/06/16(月) 22:53:59.40ID:xQwWAx0q
>>100
守ってくれないなら余計なとこは触れないように作ったらいいんじゃないの?

例えばユーザー操作はフォームの入力のみですべて完結させるとかの仕様はできないの?

業務が頻繁に変更になるんなら作るの辞めたほうがいいよ。使う方も作る方も無駄になると思う
103デフォルトの名無しさん
垢版 |
2025/06/16(月) 23:37:56.61ID:YHajXHhq
VBAはクラスの継承ができないとよく言われますが、本来のオブジェクト指向の思想で言えばそれが正しいと思うのですが違うのでしょうか?
2025/06/17(火) 00:06:21.76ID:ArcAimKK
本来というか継承を軽視するのはわりと最近のトレンドだね
VBAが言語として真面目に批判されてたのは遥か昔のことで、当時はオブジェクト指向といえば継承というくらい継承は重要なものと見做されていた
今ではVBAは宮大工みたいなもんで、もはや他の言語と比較して云々という話の俎上に上がらなくなった
105デフォルトの名無しさん
垢版 |
2025/06/17(火) 04:26:32.03ID:toVltgRB
昔:馬鹿鹿いない
今:もう人いない
将来:ハゲしか鹿いない
106デフォルトの名無しさん
垢版 |
2025/06/17(火) 06:53:48.91ID:DQ5L2yaL
>>104
オブジェクト指向も、関数型プログラミングも、本来は出来る事は一つだけ、変数の上書き禁止、データを汚さないとか同じ事を思想にしていたと思う
しかしその本来の思想通りにならず、オブジェクト指向は結局、手続き型プログラミングをされてしまった。それが継承。そういう理解です。
目指す事はいつの時代もただ一つ。単純化。
2025/06/17(火) 07:24:14.19ID:g3HudBAJ
関数型Excelが不得意とする部分を手続き型VBAが補完する
Excel VBAが不潔な理由はこういったところではないか
108デフォルトの名無しさん
垢版 |
2025/06/17(火) 08:08:27.98ID:DQ5L2yaL
自衛隊の一般公開されている演習で塹壕があって、その塹壕が直線だから馬鹿にされていたんだけど、
デモストレーションに決まってるやろ馬鹿かこいつら。
演習兼広報活動なんだから見栄え重視に決まってるやろ。
109デフォルトの名無しさん
垢版 |
2025/06/17(火) 08:15:31.82ID:HVBsu92+
今度は馬鹿の上にキチガイか
2025/06/17(火) 09:06:10.69ID:S/louHD5
パーでんねん
2025/06/17(火) 10:57:16.78ID:IWds67IQ
>>105
昭和は輝いていた
112デフォルトの名無しさん
垢版 |
2025/06/17(火) 11:47:10.63ID:NWQCp5mv
>>108
雑学になったわ
テスラバルブみたいになってたら凄いのかもな
113デフォルトの名無しさん
垢版 |
2025/06/17(火) 17:48:43.56ID:DQ5L2yaL
>>112
ありがとうございます
114デフォルトの名無しさん
垢版 |
2025/06/17(火) 18:10:07.80ID:DQ5L2yaL
仕様がガチっと決まっていないといくらでも機能や要件が解釈できるから、無限に拡大解釈して辛くなるのも、相手が想定していた物と違う物とできても私は悪くないですよね?
2025/06/17(火) 18:14:46.22ID:h4LLN2+5
>>100
業務変更されてもマニュアル直さないの?
116デフォルトの名無しさん
垢版 |
2025/06/17(火) 18:48:57.77ID:NWQCp5mv
>>114
相手が想定しているものを作るために仕様書書くのですよ
あやふやな部分はキチンと質問して詰めるんですよ
当たり前な部分が双方で認識違うのはしょうがないが、相手が疎いならそれをあらかじめ察知して共通事項としてまとめるのもトラブル防ぐ一つ

トラブったら双方が幸せにならないことを、双方が認識しておくなどシステム作りは平坦な道ではない
2025/06/17(火) 19:30:12.89ID:ItQB0Ii0
>>111
また髪の話してる
118デフォルトの名無しさん
垢版 |
2025/06/17(火) 19:38:28.92ID:DQ5L2yaL
テーブルは非常に便利だと私は思いますが、もしテーブルの使用ができない状況では他にどの様な方法で列を文字列で指定するのがいいでしょうか?
VBAで列を指定する方法にElumを使用する方法を知りましたが、これは結局cells(i,Elum.変数)ですよね?
またset 列名 = Range("A:A")という方法も思いつきました。
これは悪手かもしれませんが、A1.Offset(i,0)という方法も思いつきました。
119デフォルトの名無しさん
垢版 |
2025/06/17(火) 19:56:23.43ID:DQ5L2yaL
テーブルに設定値、項目の種類、名前などの列を作って、読み書きをマクロのコードやApplication.inputboxで行う方法をとても気に入ったかも。
シートは完全非表示でシートの保護をする感じで。
120デフォルトの名無しさん
垢版 |
2025/06/17(火) 21:22:29.10ID:ca1XKzQM
会社PCからのChatGPTが規制されてから泣く泣く、断腸の思いで、悲痛をにじませてCopilotを使い出した
ChatGPTの方がはるかにVBAの精度が高い感覚があって不安で仕方ない
121デフォルトの名無しさん
垢版 |
2025/06/17(火) 22:07:40.11ID:DQ5L2yaL
>>120
Copilotも中身はchatGTPです
122デフォルトの名無しさん
垢版 |
2025/06/17(火) 22:09:40.33ID:NWQCp5mv
geminiはアカンの?
精度とか知らんけど
2025/06/17(火) 22:59:55.51ID:GVNfPl9u
vbaでGitHub Copilot使ってる人いる?
124デフォルトの名無しさん
垢版 |
2025/06/17(火) 23:22:39.33ID:ca1XKzQM
>>121
コピペして全く同じ望む処理を書いたら回答も処理の仕方も違ったよ
2025/06/17(火) 23:26:24.84ID:NLRe+aqS
ChatGPT規制されたんなら
他のAIも使うなって感じでもないのん
126デフォルトの名無しさん
垢版 |
2025/06/18(水) 00:07:19.87ID:AQxy9IeI
>>125
流石にwindowsPC使ってるから謹製として出てるCopilotは活用すべきだよねって流れ
部署の選抜で希望者がCopilot使ってるけどExcelCopilot別にいらんかった
ChatGPTへの信頼感が俺の中で染み着いてる
127デフォルトの名無しさん
垢版 |
2025/06/18(水) 00:36:28.20ID:BW5TgS6t
>>126
Copilotはchat GDPです
2025/06/18(水) 08:15:48.58ID:I+q5MYka
GPTだのGTPだのGDPだの、馴染んでいないなら背伸びすんな
129デフォルトの名無しさん
垢版 |
2025/06/18(水) 08:53:49.41ID:Dxn1KqS1
国内総生産だっけ
2025/06/18(水) 08:59:28.64ID:PQ7B1wFi
yes
131デフォルトの名無しさん
垢版 |
2025/06/18(水) 21:05:53.06ID:BW5TgS6t
どれだけ頑張っても動かない、動かないって馬鹿にされるからうんざりしてきた
132デフォルトの名無しさん
垢版 |
2025/06/18(水) 21:08:00.76ID:BW5TgS6t
Webスクレイピングの方法を教えてください
心底参っています
idとかclassとかで指定しているはずなのに動きません
133デフォルトの名無しさん
垢版 |
2025/06/18(水) 21:44:22.43ID:CFwqR1eq
馬鹿には無理
134デフォルトの名無しさん
垢版 |
2025/06/18(水) 21:48:20.21ID:AQxy9IeI
ふふふ
Copilotを馬鹿にしたけどなかなかやるやないか
家ではChatGPT、Copilotは課金出来ない
会社ではCopilot、ChatGPTは使えない

統一したいところだけど両方使うわ
Excelそのままアップロードして色々聞く方が更に効率いいわ
2025/06/18(水) 22:03:48.23ID:pjzDoD0c
WEBSERVICE ENCODEURL FILTERXML
いまやWebスクレイピングもVBA要らず
136デフォルトの名無しさん
垢版 |
2025/06/18(水) 22:56:38.00ID:BW5TgS6t
>>135
社内のイントラネットに入力するっていうあるあるがしたいです
本当はPower Automateです
2025/06/18(水) 23:16:59.86ID:Kf62JwRL
>>135
動的サイトもスクレイピング可能?
138デフォルトの名無しさん
垢版 |
2025/06/18(水) 23:32:21.40ID:BW5TgS6t
>>137
動的サイトってなんですか?
まさに私が今悩んでいる事な気がします
139デフォルトの名無しさん
垢版 |
2025/06/19(木) 00:26:00.22ID:ZDBDhjrQ
馬鹿ほど厚かましくしつこい
2025/06/19(木) 00:40:34.97ID:ROoqywLw
>>137
(必要ならENCODEURLを使って)クエリ文字列を作り
URLの末尾にくっつけてWEBSERVICEすればいいのでは?
2025/06/19(木) 00:43:27.51ID:qitj2LBq
横だけどそもそもイントラのフォームに入力とかが本当に必要なの?
うちは225だけどイントラから特定条件でデータを落とすようなよくあるユースケースなら素直にGET,POSTすれば済むのもたくさんあるぞ
142デフォルトの名無しさん
垢版 |
2025/06/19(木) 00:53:45.50ID:QChnVNm1
>>141
ローコードツール?で作られた?サイトに必要事項とファイルのドラッグアンドドロップが必要なんですか
2025/06/19(木) 00:59:33.98ID:qitj2LBq
>>142
その手のやつって普通API公開されてない?
そしてローコードなら作った人もユーザー側の人間だから頼めばトークン発行してくれたりしないか?

てかそもそもそのローコードで作ったページがやってること自体
突き詰めると既存の社内DBでクエリ動かしてるだけだったりしないかな?
2025/06/19(木) 01:16:08.33ID:ROoqywLw
HTMLソース見て<form〜>〜</form>の中を見ればどこに何をPOSTしてるかわかるでしょ
それと同じことをMSXML2.ServerXMLHTTPを使ってやればいい
その前にログインURLにPOSTしてセッションIDもらう必要があると思うけど
145デフォルトの名無しさん
垢版 |
2025/06/19(木) 07:09:53.12ID:QChnVNm1
今の今までpublic変数やprivate変数は怖いと思って使うのを避けてきたんだけど、いい加減最終行の番号くらいならいいかなと思って油断したら、共通関数の最終行番号までpublicに代入した値を参照してしまって無事死亡。
これがグローバル変数の怖さですか。
2025/06/19(木) 11:48:52.46ID:Y5iG6yck
テスト中の事故でしょ? コピー作ったうえで、コピーの方で試した結果でしょ?
いい経験したし、それを結果に反映させるように作り込みを考慮すればいい
まさか、まさかな
147デフォルトの名無しさん
垢版 |
2025/06/19(木) 13:03:13.43ID:DFOz6nBR
>>145
共通関数だってpublicだろうし、public変数を共通で使っても何も問題ない
使い方間違えば(=バグ)エラー起こすのは当たり前
もちろんpublicにする必要のないものは対処必要
2025/06/19(木) 13:12:45.28ID:K/Fu6xnk
N88の頃はiとかjのトラブルはよくあったよね
DOSだって再入不可のやついっぱいあったろ
今だとマルチスレッド非対応のライブラリは気をつけないとね
149デフォルトの名無しさん
垢版 |
2025/06/19(木) 18:29:25.72ID:CkE44pQz
>>147
パブリック変数をコンストのノリで使用する事と、関数(public関数)を使う事は違う
2025/06/19(木) 18:34:14.95ID:ROoqywLw
FSOをグローバルにしたくなる衝動が抑えられない
151デフォルトの名無しさん
垢版 |
2025/06/19(木) 19:33:40.40ID:QChnVNm1
>>150
グローバル変数にしたらダメなのですか?
今まさにグローバル変数にして、それぞれのモジュールごとに機能を分けようと考えていました。
だったらセットぐらい個別に書けばいいのですが
2025/06/19(木) 19:49:35.93ID:3HWkDcCe
>>150
やってみりゃわかるが、モジュールごとにいちいちオブジェクト作って終わったら開放とかやってても、大したオーバーヘッドにならんぞ
コードの見通しを良くした方がメリット大きい
153デフォルトの名無しさん
垢版 |
2025/06/19(木) 19:52:14.41ID:UuH6bh00
>>150
Singletonみたいにして使ってるけど
154デフォルトの名無しさん
垢版 |
2025/06/19(木) 20:13:36.51ID:QChnVNm1
Staticだったら信頼性が上がりますか?
155デフォルトの名無しさん
垢版 |
2025/06/19(木) 21:04:13.73ID:DFOz6nBR
>>149
どう違うの?
どこからコンスト出てきた?
156デフォルトの名無しさん
垢版 |
2025/06/19(木) 23:24:02.96ID:O+fabiFQ
>>149
お前がバカなのはわかった
157デフォルトの名無しさん
垢版 |
2025/06/20(金) 02:56:57.97ID:yoed5JvY
>>155
関数は値を汚さない(書き換えない)作りにするのが基本、引数に処理を加えて右から左へ受け流すのが基本。
public変数どこからでも値の代入を受けて、値を保持する
全く違う
158デフォルトの名無しさん
垢版 |
2025/06/20(金) 02:59:11.97ID:yoed5JvY
Application.DisplayAlerts = Falseしているのに、Saveで確認画面が出てくるのはなぜでしょうか?
Excelの設定に必ず確認画面を出す設定があるのでしょうか?
159デフォルトの名無しさん
垢版 |
2025/06/20(金) 07:29:41.92ID:LSwiyXBC
必要に応じて publicとprivateの使い分けが出来てないのは初心者
2025/06/20(金) 08:29:46.45ID:eaqG1YUh
上級者はVBAなんてさっさと捨てるからな
161デフォルトの名無しさん
垢版 |
2025/06/20(金) 09:09:08.54ID:HQ2+VBne
>>157
>パブリック変数をコンストのノリで使用する
>public変数どこからでも値の代入を受けて、値を保持する

お前がバカなのはわかった
2025/06/20(金) 09:30:18.29ID:gc/RcLN0
このスレを見てる時点で捨ててないかマウント取りに来てるだけか
どっちにしても人生負け組
163デフォルトの名無しさん
垢版 |
2025/06/20(金) 09:41:59.47ID:r8vuXojP
まあマウント取りたくて取れる相手を探しに来てるなら器がちっちゃいわな
2025/06/20(金) 10:04:21.23ID:izQX0zhk
なにぃ~ 5ちゃんに器の大きい人間なんかいたら希少だろー
165デフォルトの名無しさん
垢版 |
2025/06/20(金) 10:15:50.81ID:bGFhNefV
>>158
出るのと消えるのがある
こべつに他の設定でけせるのもある
何を消したいかを検索してみ
166デフォルトの名無しさん
垢版 |
2025/06/20(金) 14:31:29.46ID:Y6uQQV89
>>162
マウント取れなくて悔しい
がよくわかる定期w
2025/06/20(金) 16:26:33.16ID:q7FcQ3E6
え?>>166みたいに読み取る人ってかなりの少数でしょ
国語の成績悪かった子だと思うよ
168デフォルトの名無しさん
垢版 |
2025/06/20(金) 17:04:06.71ID:HQ2+VBne
>>167
えっ!?
ついでにブーメランまでぶっ刺さってんじゃん
バカはジタバタしてもバカから一生逃れられないからw
169デフォルトの名無しさん
垢版 |
2025/06/20(金) 19:16:20.77ID:yoed5JvY
VBAのツール作成を指示されました。
VBAで自動化したい事は明確です。
今回、VBAで自動化したい事のミソ、機関部分、エンジン自体は完成しています。
しかし、ソースファイルに新しい情報を記入するにもかかわらず、上書き保存はしないと言われます。
私はまるで意味がわからないのですが、これは私の頭が悪いのでしょうか?
2025/06/20(金) 19:19:34.53ID:sV38LovV
>>169
上書き保存しないなら、名前を付けて保存すれば良いではないか
171デフォルトの名無しさん
垢版 |
2025/06/20(金) 19:24:19.55ID:yoed5JvY
私はExcelのブックをReadonly:=Trueでしか開かないし、当然、「上書き保存」なんかするわけがないのに、です。
2025/06/20(金) 19:30:29.79ID:SS2ziZwY
中規模以上の企業だと障害者を何人か雇う必要があるのよ
新しい仕事を大変なわけよ
2025/06/20(金) 20:10:04.06ID:s6iEsyPY
>>169
入力したデータだけ別ファイルに切り出してリレーションするとか?
174デフォルトの名無しさん
垢版 |
2025/06/20(金) 20:10:34.24ID:Tkymh4/E
ID:yoed5JvY

本日の馬鹿
175デフォルトの名無しさん
垢版 |
2025/06/20(金) 20:26:20.59ID:yoed5JvY
>>170
では上書きしないのなら、新しい情報をソースファイルに記入するときはどうするのでしょうか?
176デフォルトの名無しさん
垢版 |
2025/06/20(金) 20:32:19.33ID:yoed5JvY
普通、If文を書くときは、
If 〜 = 〜 Then

〜 = Format(〜,"")

Else

〜 = 他の処理

End If

と書くと思いますが、

〜 = 処理

If 〜 = 〜 Then

〜 = Format(〜,""h

End If

と書くのは可読性が低いでしょうか?
2025/06/20(金) 20:45:33.55ID:s6iEsyPY
>>175
相手の意図も知らないのにこちらに聞かれてもわからないでしょ。

何で相手に確認しないの?
2025/06/20(金) 20:55:30.36ID:3oNRkMSd
>>176
可読性が低くなるうえ、else側の処理をIfの前に書くと必ず実行することになって無駄
2025/06/20(金) 21:00:27.73ID:s6iEsyPY
極力else使わない派です。。。
2025/06/20(金) 21:22:13.93ID:sV38LovV
>>175
上書きしないで別ファイル名で保存して、元のファイルを残しておく
今度からは新しい方を使ってね、新ファイル名「xxxx_ver2.xlsm」
181デフォルトの名無しさん
垢版 |
2025/06/20(金) 21:22:17.00ID:yoed5JvY
>>179
Elseを使わないノウハウとても気になります。
条件が必ず一つの方が可読性も高そうですね。
182デフォルトの名無しさん
垢版 |
2025/06/20(金) 21:24:35.36ID:Tkymh4/E
ID:yoed5JvY

本日の馬鹿
183デフォルトの名無しさん
垢版 |
2025/06/20(金) 21:32:19.27ID:HQ2+VBne
馬鹿すぎて収束しないので放置、NG推奨
184デフォルトの名無しさん
垢版 |
2025/06/20(金) 21:43:45.62ID:GTdUEOjB
>>180
https://pbs.twimg.com/media/EXw7chRUwAAxEy7?format=jpg&name=900x900
2025/06/20(金) 21:50:27.39ID:sV38LovV
新人研修終わったばかりの新人かな?
既存のファイル消しちゃいました〜 ってことになったら悲惨だぞw
2025/06/20(金) 21:50:46.76ID:EB90632S
ソースファイルに新しい情報を記入???
VBAでVBAソースの書き換えなんてできるんだっけ?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。