Excel VBA 質問スレ Part83 (853レス)
上下前次1-新
1: 06/08(日)11:06 ID:j4jIPbHU(1)調 AAS
ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
Excel VBA 質問スレ Part82
2chスレ:tech
2: 06/11(水)00:17 ID:4L16Stoh(1)調 AAS
TypeScriptもくこけ?
3: 06/11(水)05:17 ID:WFBUKVw8(1)調 AAS
ここで質問するのは馬鹿ばっか
4: 06/11(水)07:05 ID:cv7wLoTM(1)調 AAS
質問スレでマウント取ろうとするのもどうかと思うがな
5: 06/11(水)09:37 ID:EKcbgbv2(1/2)調 AAS
Excel/VBAは永遠に不滅ですか?
6: クモ男 06/11(水)10:57 ID:mB/iKWDZ(1)調 AAS
Excel/VBAは永遠に不潔です
7: 06/11(水)11:14 ID:EKcbgbv2(2/2)調 AAS
永久だった
8: 06/11(水)12:35 ID:Hh4o42qN(1)調 AAS
Excel VBA 質問スレ Part80(ワッチョイあり)
2chスレ:tech
こちらにもあるんだが
どちらでもいいけど
9: 06/11(水)13:04 ID:0Fmc/z6V(1)調 AAS
ワ有無が異なるのは重複スレとカウントしないルール
10(1): 06/12(木)05:32 ID:/fSMn9fa(1)調 AAS
今月急にVBA始めたけど楽しすぎるな\(^o^)/
全部自動化したい
11: 06/12(木)07:06 ID:ZahP/xP+(1)調 AAS
標準機能でできることも全部VBAでやっちゃうな
12: 06/12(木)07:29 ID:fQAbngTQ(1)調 AAS
>>10
全部自動化したらお前がいなくても良くなる
13: 06/12(木)08:20 ID:dUKWPG0C(1)調 AAS
そこまで自動化できたらすばらしいことじゃないか
手が空くんだから他の稼げる業務に専念できる
14: 06/12(木)10:11 ID:2t+UimiX(1)調 AAS
程々にしてRDBとSQLに進んだ方がいいぞ
自動化以前に、そもそもそれらを理解していれば作る必要のないものが多い
15: 06/12(木)10:35 ID:DVSDXPAp(1)調 AAS
データとロジックがファイル単体で完結するのがVBAのおいしいとこなのに
16: 06/12(木)10:39 ID:23egFUX2(1/2)調 AAS
会社で勉強ついでに、自宅でも活用できる
これ何気にメリット
17: 06/12(木)11:12 ID:ZT9IPUZv(1)調 AAS
VBAでSQL使う 自宅でも活用できて便利
18: 06/12(木)11:15 ID:Ngptic+O(1)調 AAS
そもそも作る必要のあるものを減らすという意味では、PowerBIのようなBIツールを覚えるのもお勧めだな
レポート作成業務が中心なら圧倒的に楽になる
無料で自宅でも使える
Excelのグラフ作成を不自由なく行える程度の人であれば余裕ですぐ習得できる割にスキルとしての評価が高いのでコスパもいい
19(1): 06/12(木)18:46 ID:PJDk0Ewg(1/4)調 AAS
VBAを勉強しているのですが独学なのでサイトのコードの見よう見まねレベルで、根本的な事や初歩的な事を理解できていません
例えば他のモジュールにあるパブリックサブプロシージャを呼び出してそのモジュールのプライベート変数にオブジェクトをセットしていますが、これが他のモジュールではどの様な扱いになるのかわかりません
ローカルウィンドウには多分空白で表示されている様に思いますが、それがどの様な扱いなのかわかりません
ExcelからWordを操作する事にも挑戦して確実にエラーを防ぐために起動済みのWordがあれば終了し、エラーが発生すればWordを終了してからマクロを抜ける様にしていますが、それでもwordapp.quitの部分でなぜかエラーが発生したりして良くわかりません
20(1): 06/12(木)18:55 ID:iKAujhog(1)調 AAS
そもそもOSの知識すら無さそう
21: 06/12(木)19:14 ID:PJDk0Ewg(2/4)調 AAS
>>20
おっしゃる通り、そもそもインスタンスって何?
22: 06/12(木)19:25 ID:PJDk0Ewg(3/4)調 AAS
他のモジュールのプライベート変数でインスタンスするのと、クラスモジュールでインスタンスするのとでは、letとgetの書き込み専用、読み取り専用以外では何が違うのって感じです
23: 06/12(木)20:15 ID:mZKVLP5A(1)調 AAS
インスタンスはするしないってものじゃない
24: 06/12(木)20:52 ID:W/tmpzuQ(1)調 AAS
>>19
モジュールがパブリックでもプライベートでも、変数がプライベートなら他のモジュールからは一切見えないってだけ
変数の内容を確認したり代入したりが一切できない
25: 06/12(木)21:41 ID:PJDk0Ewg(4/4)調 AAS
私はAIはBing AIしか知らないのですが、コーディングに強いAIには何があるのでしょうか?
26: 06/12(木)23:27 ID:23egFUX2(2/2)調 AAS
今はまだジグソーパズルのピースがバラバラで、脳内で理論立てて知識が構築されてないだけ
もっと勉強すれば各ピースが組み合わさって、そうなのか~~ってわかる部分が出てくる
そこに至るかは人それぞれ、くじけるな
27: 06/13(金)10:23 ID:TKdsYkUR(1)調 AAS
インスタンス文明
28: 06/13(金)10:33 ID:ncTrk5wH(1)調 AAS
お湯をかけて3分で完成
29: 06/13(金)10:45 ID:f5khIryW(1)調 AAS
instant と instance は語源は同じだろうね
30: 06/13(金)15:09 ID:qZlkWCkC(1)調 AAS
intel入ってる
31(1): 06/13(金)18:36 ID:X/X4uVsg(1/5)調 AAS
シートやファイルに変更があっても、なるべく動的に対応する様にコードで書いているけど、どうしてもハードコーディングしているセルの値が移動されるかもしれないとか、ヘッダーの値が変わるかもしれないから動かないというのはどうしても仕方ないよね?
32: 06/13(金)18:50 ID:lmzqN4R6(1/2)調 AAS
左上セルとオフセットにするとか、セル名使うとか
33(1): 06/13(金)18:52 ID:ccsGYBbu(1)調 AAS
名前付けようがロックしようが何しようが壊す馬鹿は壊す
そこに拘って必要以上の手間をかけるより壊れるのはVBAの宿命と割り切り、
一度水を入れたバケツは必ず捨てて必ず毎回新しいバケツを使うように徹底するなど、壊れても問題にならない運用にした方がよい
34(1): 06/13(金)18:55 ID:fnyKN3w+(1/2)調 AAS
>>31
中間シート作って必要な情報を一旦ワンバンさせるのもよい
デバッグや変更時のメンテが楽になる
35(1): 06/13(金)19:05 ID:X/X4uVsg(2/5)調 AAS
>>33
>>34
どういう事でしょうか?
今はシートに必要な情報を記入しています
変更があった時にも変更が適応される様にしています
36: 06/13(金)19:24 ID:JuCJJIC/(1/2)調 AAS
設定値シートを作って行数やらのパラメータを人間様に分かるように記録している
37(1): 06/13(金)19:27 ID:fuBlvFvA(1)調 AAS
名前の定義を使え
38(1): 06/13(金)19:36 ID:XPKfEpiJ(1/3)調 AAS
何でもテーブル化してる
39: 06/13(金)19:36 ID:JuCJJIC/(2/2)調 AAS
>>37
人間様に見えないのは駄目です
40(1): 06/13(金)20:09 ID:X/X4uVsg(3/5)調 AAS
>>38
私もなんでもテーブル化したいです😭
でもまだまだ世間様のExcelのテーブルの認知度が低すぎます!
AWSに力を入れているのに!
41(1): 06/13(金)20:20 ID:XPKfEpiJ(2/3)調 AAS
テーブル化するとカラム名でデータ引っ張れるからいいよね
42: 06/13(金)20:22 ID:fnyKN3w+(2/2)調 AAS
>>35
入力用のシートは人間にとって使いやすいようなつくりになっていたり、頻繁にレイアウト変更が発生するもの
そこで、データの位置を固定したり、プログラムが読みやすい形に変形した作業用のシートを別途用意する
そうすれば、レイアウト変更を作業用のシートで吸収でき、プログラムをシンプルなつくりにできる
43(2): 06/13(金)20:26 ID:X/X4uVsg(4/5)調 AAS
>>41
でもその列名を変えられてしまうと、、、
という事に頭を悩ませています
44: 06/13(金)20:56 ID:XPKfEpiJ(3/3)調 AAS
>>43
それもうパスワード付きでシート保護掛けて、本人いなくなったら誰もさわれないデススパイラル
45(2): 06/13(金)21:37 ID:VYU7jOYa(1/3)調 AAS
>>40
テーブル化知らないと2027でaccess打ち止まったときに詰むぞ
46: 06/13(金)21:37 ID:VYU7jOYa(2/3)調 AAS
詰まないか、データモデルわかってりゃいいや
47(1): 06/13(金)21:38 ID:lmzqN4R6(2/2)調 AAS
>>43
シートセル保護一択なのに何故やらない
48(2): 06/13(金)21:39 ID:VYU7jOYa(3/3)調 AAS
>>47
挿入、削除
はい論破
49: 06/13(金)22:35 ID:X/X4uVsg(5/5)調 AAS
>>45
それは世の中企業に言ってください😡
50(1): 06/14(土)00:22 ID:qXIDe9bT(1/3)調 AAS
>>48
それをされたくないじゃん
はい論破
51: 06/14(土)07:18 ID:tiNU/ccJ(1/3)調 AAS
5歳児相手にしてるんじゃ無いんだから、やっていいこと悪いことを明確にしときゃいいだけだろ。
「はい、〇〇さんが列削除して壊しました。反省してください。」とか、部署別の朝礼とかで
都度指摘してことばの懲罰し続けなきゃ、誰も言うこと聞かない集団なのか?
これは仕様ですってのを明示しといて、それを損なったらそいつの責任にすりゃいいんだ。
道具だって機械だって、そうしちゃいけない限界あるだろうに。
面白がって刃物振り回してはいけません、とか、いちいち教えなきゃいけない連中なのか? 愚痴にも程がある
52: 06/14(土)07:59 ID:tiNU/ccJ(2/3)調 AAS
いっそのこと、入力もデータ操作もぜんぶユーザーフォームでしか利用できないようにしてしまえ
そう考えたらレガシーなAccessの方が、よっぽど使い勝手がいい
AccessのTableからデータをExcelにエクスポートして、それならどう使おうがあんたの勝手と言い放てる
53: 06/14(土)09:07 ID:85yAb+tc(1)調 AAS
やらかす人に限って注意しにくい立場の人なのよな
54(2): 06/14(土)10:01 ID:Ko3JjZ1h(1)調 AAS
>>50
されたくないのにできちゃうのがExcelじゃん
はい論破
55: 06/14(土)10:19 ID:fdo2scYw(1)調 AAS
「はい論破」とか頭の悪そうなワードを連発する人たち
56: 06/14(土)10:49 ID:tiNU/ccJ(3/3)調 AAS
注意しにくい、とかエクスキューズしてねぇでげんこつ喰らわしてやりゃあいいじゃねえか
そんな役立たずの無駄飯喰らいが上司上役に居るんなら尚好都合で、その座から引き摺り下ろすぐらいの
覚悟で意見し続けてりゃあ、いつかじぶんがその座に居座れる
そいつがおちんぎん振舞ってくれる立場なら、ごますりの太鼓持ちに成り果てて「ご希望のデータを
整えますから言い付けてください」と独楽鼠のように奉仕し続けてれば「愛い奴よのぅ」と収入増に繋がる
コッチだって腹企みがあるから必死こいて合理化改善化してるんだ
いつまでも下っ端のペーペーで居続ける義理なんか無ぇだろ
57: 06/14(土)11:02 ID:rpm//XVW(1/4)調 AAS
ケンカはやめて(泣)
58: 06/14(土)11:12 ID:rpm//XVW(2/4)調 AAS
ここのセルの値が使用されていますとか、この値はここに書いてくださいとか、これの名前はこれで固定されていますとか、シートに説明を書くしかなさそうですね
59: 06/14(土)13:06 ID:JqgzDiGQ(1)調 AAS
薄く色をつけるとか枠線で囲むとか
入力場所が直感的にわかるようにする工夫は意外と重要
60: 06/14(土)13:36 ID:6iS4kUFR(1)調 AAS
論破ルーム
61(1): 06/14(土)13:56 ID:qXIDe9bT(2/3)調 AAS
>>54
バカは保護設定さえできないだけ
はい論破
62: 06/14(土)14:03 ID:qXIDe9bT(3/3)調 AAS
>>54
保護設定できない時点で論破も何もw
>>48 へ戻してループ閉じとくわw
63(1): 06/14(土)17:09 ID:zXaXaxta(1)調 AAS
「かたはらいたい」
64: 06/14(土)19:18 ID:tmxOaM79(1)調 AAS
>>63
お腹の片側だけが痛いのですか?
65(1): 06/14(土)19:27 ID:rpm//XVW(3/4)調 AAS
コードを実行する時に、初期化や前処理として、すでに開いているオブジェクトを絶対に、完全に閉じる、終了するためにOn Error Nextでオブジェクトのセットと終了を強行して、On Error GoTo 0で戻してSet 変数 = Nothing するのはアリですか?
66(1): 06/14(土)21:03 ID:jPkLTW5E(1)調 AAS
>>61
行挿入からもシートを保護する方法教えて
67: 06/14(土)21:25 ID:rpm//XVW(4/4)調 AAS
Excelの関数にできる事はExcelの関数にした方がいいと思う。Excelは最強のノーコードツールなのだから。
でもシートだと壊されるかもしれないからなぁ。
68(1): 06/14(土)23:44 ID:lJ3IrQ0g(1)調 AAS
>>66
バカは無様だねぇ
69(1): 06/15(日)01:37 ID:4stAAJtv(1/2)調 AAS
ID:rpm//XVW
馬鹿な人
こんな戯言を信じてはいけない
70: 06/15(日)01:43 ID:34+bN/XM(1/2)調 AAS
>>65
プロセスごと殺せ
For Each Process In GetObject("winmgmts:").ExecQuery("SELECT * FROM Win32_Process WHERE Name='Excel.exe'")
Process.Terminate
Next
71(1): 06/15(日)05:18 ID:va9oEKX4(1/3)調 AAS
>>69
だってさぁ
LookUpみたいなコード書くだけでも非常に時間かかるけど、セルに数式書くだけなら余裕ですよ
72: 06/15(日)08:01 ID:kzSisivw(1)調 AAS
>>71
書けば書くほど馬鹿を曝け出す馬鹿
73(1): 06/15(日)09:38 ID:RAlK0R2R(1/3)調 AAS
>>68
なんだ知らないのか
74: 06/15(日)10:17 ID:uFUoy2Ay(1)調 AAS
>>73
バカは無様だねぇ
75(2): 06/15(日)11:11 ID:RAlK0R2R(2/3)調 AAS
Excelってシートの編集可能だと行挿入や列挿入を回避する手段が(VBAを除いて)ないからな
セルを保護していようが無駄
1セルだろうと編集可能な時点でシートの破壊が可能になる
Excelの仕様の不備だろこんなの
76: 06/15(日)11:40 ID:iEbH+tZ4(1)調 AAS
>>75
バカはバカから逃れられない好例
77(1): 06/15(日)11:45 ID:ujM9EzWd(1)調 AAS
>>75
Excelは表計算ソフトであり、VBAは操作を自動化するための簡易的なツールに過ぎません
78: 06/15(日)11:56 ID:RAlK0R2R(3/3)調 AAS
>>77
VBAはチューリング完全なんだから簡易的もクソもないよ
79: 06/15(日)13:01 ID:va9oEKX4(2/3)調 AAS
マクロで読み書きするシートはシートの保護や完全な非表示をする方が良さそうですね
80(1): 06/15(日)13:05 ID:va9oEKX4(3/3)調 AAS
よくVBAの配列は動的にサイズを広げられない、拡張できないから不便だという話を聞きますが、これは実はコレクションを使ってねという事なのでしょうか?
81(1): 06/15(日)13:14 ID:34+bN/XM(2/2)調 AAS
テーブルを複数作って並べるとあら不思議
行や列の追加と削除ができないよ
82(1): 06/15(日)13:49 ID:OTpMml/u(1)調 AAS
VBAはプログラム初心者でも難なく書けるから楽しい
納品するやつだけど好きに書いちゃっていいよね??
83: 06/15(日)16:10 ID:4stAAJtv(2/2)調 AAS
ID:va9oEKX4
本日の馬鹿
統合失調症かも
84: 06/15(日)18:00 ID:NYF1cX4w(1)調 AAS
>>80
Copilotの回答
そうですね、VBAの標準的な配列(Array)はサイズを変更する際に ReDim を使う必要があり、特に要素数が頻繁に変わる場合には不便に感じることがあります。そのため、コレクション(Collection) や 配列型のオブジェクト(ArrayList, Dictionary) を代替手段として使うことが一般的です。
例えば、Collection は動的に要素を追加・削除できるので、サイズの変更を意識せずにデータを管理できます。
Dim col As Collection
Set col = New Collection
col.Add "Apple"
col.Add "Banana"
col.Add "Cherry"
MsgBox col(2) ' 出力: Banana
また、Dictionary を使えばキーと値の組み合わせでデータを管理できるので、検索や整理が楽になります。
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
dict.Add "A", "Apple"
dict.Add "B", "Banana"
dict.Add "C", "Cherry"
MsgBox dict("B") ' 出力: Banan
このように、用途に応じて Collection や Dictionary を活用することで、動的なデータ管理がしやすくなります。
85: 06/15(日)23:57 ID:K8AqenHf(1)調 AAS
>>82
だめでしょ好きに書いたら
86(1): 06/16(月)07:08 ID:YHajXHhq(1/7)調 AAS
クラスモジュールのLetとGetは必ず対でないといけないのでしょうか?
87: 06/16(月)08:26 ID:ibaltNjp(1)調 AAS
>>81
ありがとうこれ凄い
この方法とシート保護とを組み合わせれば破壊されにくい設定シート作れるね
88: 06/16(月)08:56 ID:MJjeAku4(1/2)調 AAS
>>86
そんなことはなく、Getだけ書けば読み取り専用のプロパティになるんじゃないかな
89: 06/16(月)08:57 ID:MJjeAku4(2/2)調 AAS
Letだけも可能かと
90: 06/16(月)11:04 ID:1rbEE5kZ(1)調 AAS
freeするときhoge=Noneが正解なの?
91: 06/16(月)11:40 ID:CXTiNK7e(1)調 AAS
Noneは間違いでは?
92: 06/16(月)12:25 ID:j7Ja2cxZ(1)調 AAS
Hage=Nothing
93(1): 06/16(月)18:39 ID:YHajXHhq(2/7)調 AAS
セルの値が書き換えられました
行が削除されました
列が削除されました
ファイルの名前が変えられました
フォルダの名前が変えられました
シートの構造が変えられました
だから動きません
これ私の責任ですか?
94: 06/16(月)19:07 ID:YHajXHhq(3/7)調 AAS
はっきり言って壊れるのがExcelですよね?
95(1): 06/16(月)19:13 ID:K2AaEYtv(1)調 AAS
皆に嫌われているから嫌がらせされているんだろ
96: 06/16(月)19:42 ID:Mgfu6kwT(1)調 AAS
変更されたら困る部分はみんな文字列じゃなくて画像にしてしまえ
97: 06/16(月)20:21 ID:YHajXHhq(4/7)調 AAS
つくづく仕様がしっかりと定まっていないとそもそも論として無理、不可能だと思い知らされました。
仕様に決まっていない事は拡大解釈してしまうから。
98: 06/16(月)21:46 ID:dwstnLOd(1)調 AAS
昔:馬鹿鹿いない
今:もう人いない
99(1): 06/16(月)22:20 ID:xQwWAx0q(1/2)調 AAS
>>93
マニュアルは作ってないの?
ドキュメントとか残さない人?
100(2): 06/16(月)22:31 ID:YHajXHhq(5/7)調 AAS
>>99
マニュアルとドキュメントを作れば守ってくれる人ばかりなのですか?
業務が変更されたら?
上下前次1-新書関写板覧索設栞歴
あと 753 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.029s