Excel VBA 質問スレ Part80at TECH
Excel VBA 質問スレ Part80 - 暇つぶし2ch2:デフォルトの名無しさん
23/05/31 08:24:01.18 4RV1IxmB.net
こちらはワッチョイ無しです

3:デフォルトの名無しさん
23/05/31 14:44:45.12 ul21zY0k.net
このスレを立てた爺の正体

掲示板でのケンカが孤独感を薄めてくれる
零細企業勤めで結婚もしておらず、交流する友人もいないが、「ネットが趣味なのが救いだ」と話す。
「掲示板サイトに書き込んだり、VBAは全くわかりませんが、日本語ワープロに詳しいと自慢したり、チャットGPTを使ったり……いい話し相手になってくれるんですよ。たまに掲示板でケンカもしちゃうんですが、それが孤独感を薄めてくれているのかもしれませんね」
ネット書き込みの裏には孤独を抱えた高齢者の姿がある。

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

4:デフォルトの名無しさん
23/06/04 01:18:33.04 /jFAg1L2.net
ワープロでどや顔できたのは30年前まで

5:デフォルトの名無しさん
23/06/04 01:25:55.51 upXhur4Y.net
若い人だとワープロってなんですかって言われかねないな

6:デフォルトの名無しさん
23/06/04 18:32:18.66 6Q0UL5Mm.net
若い人と話す機会ないだろ

7:デフォルトの名無しさん
23/06/04 21:11:16.56 Kcs+KkJp.net
俺はRupoの3行革命のやつ買って周りにずいぶん自慢してたな

8:デフォルトの名無しさん
23/06/05 18:30:24.54 mmnfpQBU.net
t検定で「範囲」にCOUNTIFやAVERAGEIFみたいな感じで対象とするセルをIF指定することはできませんか?
検定したい群を最初から整列して2群に分けておく必要があるでしょうか?

9:デフォルトの名無しさん
23/06/05 19:31:13.72 dLQzaieu.net
ここは雑談スレだから質問はこちらにしよう
Excel VBA 質問スレ Part79(ワッチョイあり)
スレリンク(tech板)

10:デフォルトの名無しさん
23/06/05 20:12:53.06 azZ2xgpJ.net
自分もワープロから入った。93年頃かな。
まだパソコンはあまり普及していない頃の話ね。

11:デフォルトの名無しさん
23/06/06 12:40:43.48 3/RS+WsX.net
30年つうと、ちょうど高校にパソコン室が作られた頃だったな
PC-98にDOS5.0で一太郎+Lotus1-2-3とかだったが
別の高校ではWindowsでWord+Excel(バージョンは忘れた)
当時はマウスが何に使うものなのか分からなくて、分かった後も「めっちゃ使いづらそう」としか思ってなかったわ
就職した会社がちょうどワープロからパソコンへ転換し始めててめっちゃこき使われたけど

12:デフォルトの名無しさん
23/06/06 13:57:20.66 qqUytQUY.net
結構ワープロから入った人多いのね?

13:デフォルトの名無しさん
23/06/06 15:44:06.01 hTNKhZ5+.net
富士通OASYS親指シフトで卒論を・・・
って、もうこのネタ、いいよな?
そろそろ質問スレに戻りたい

14:デフォルトの名無しさん
23/06/07 19:59:24.94 JXvXtIEV.net
いいんじゃないの?
ワッチョイスレがあるからここでは多少の雑談があっても。
俺はワープロは使わなかったなー
PC-8001系から入った口だわ。
もっとジジイになるとTK80から入った人もいそう。

15:デフォルトの名無しさん
23/06/08 07:00:41.67 os99+6zu.net
>>13
お前みたいなのがスレ荒らしたからこんなごみ溜めみたいなスレになったんだろ
一生ここにこもってろ

16:デフォルトの名無しさん
23/06/08 19:36:53.52 qq7eXr/o.net
ジシババ様はタイプライターでしょ。
ばーちゃんからお下がりのタイプライター貰った。
だけど使い方分かんないからオブジェクトと化してる。

17:デフォルトの名無しさん
23/06/11 00:12:27.62 LjHwUv3C.net
俺はPC6001だったな。おもちゃ屋でバイオリズムのデモをしてた。
うんちくだが今のキーボード配列はタイプライターと同じで、タイプライターは英語に最適化されているからローマ字打ちは実はとても非効率。
つまり日本語が打ちやすい配列がある。
そのひとつが親指シフト

18:デフォルトの名無しさん
23/06/11 00:22:16.38 LjHwUv3C.net
>>11
HIMEM.SYSとか使ってフリーエリアの確保に一喜一憂してたな。
今は湯水のごとくだ。
IOデータの拡張ボード(Cバス)が2Mで2万くらいした。

19:デフォルトの名無しさん
23/06/11 11:05:04.26 P1jt4gwx.net
つか当時の情報の少なさよ。
だから大半のユーザーは我流…

20:11
23/06/12 11:26:25.88 MT8dbwvK.net
>>18
パソコン授業のたびPCのCONFIG.SYSとAUTOEXEC.BAT書き換えて、授業終わったら元に戻してたっけなぁ
んでCバスはFM音源ぶっ刺したおかげで小遣いが尽きて、CバスメモリもHDDも買えなくなったが
>>19
当時はトライ&エラーが当たり前だったな
おかげで授業の時書き換えるのがバレてめちゃくちゃ怒られたが

21:デフォルトの名無しさん
23/06/12 13:43:57.65 daWT0s35.net
当時からNIFTYや東京BBSで情報交換してただろ

22:デフォルトの名無しさん
23/06/13 07:20:53.83 o3KtTcW5.net
1970年代後半の小学生の時、
それまで手書きガリ版印刷だった職員室に
入ってきた日本語タイプライター?は、キーボード入力でなくて、
活字を拾っていくようなものだったような?
教員らは嬉々としてだけど。
その後すぐ日本語ワープロ専用機に駆逐されたと記憶。

23:デフォルトの名無しさん
23/06/13 23:46:58.50 YoH/9fmE.net
>>19
汚いコードでも許されていた時代。
マクロ記録できただけでマクロのスキルがあります扱い。

24:デフォルトの名無しさん
23/06/14 12:37:31.48 8MgeEtzD.net
>>22
和文タイプライターってそういうものよ
文字盤上のカーソル(小窓)を打ちたい文字に合わせてスイッチとかレバーとかを押すとタイプされる仕組み

25:デフォルトの名無しさん
23/06/14 19:28:24.41 ta7FtGhx.net
>>23
時代錯誤

26:デフォルトの名無しさん
23/06/17 13:05:26.17 X7r0xOyr.net
昔はそうだっただけの話

27:デフォルトの名無しさん
23/06/17 18:46:10.71 +swGk4Sa.net
>>26
違う
時代をクリエイトしてる嘘つきを指して時代錯誤と言ってる
VBA実装当時はどマイナーソフトのどマイナーマクロ
スキルがあるどころか1-2-3使わ(え)ない変人扱い

28:デフォルトの名無しさん
23/06/17 18:56:39.57 J1nTDVCy.net
今でも
Excel マクロ4.0って
盲腸みたいにくっついてるよね

29:デフォルトの名無しさん
23/06/18 11:01:59.61 8nJec8eo.net
当時は情報がないし、あっても素人に毛がはえた程度の人間が教えていたみたいね。

30:デフォルトの名無しさん
23/06/18 12:47:59.30 lLsmBDxW.net
悪口書きたく無いけどw 近所のパソコン教室オーナー Excel本も何冊も出してる
切羽詰まって仕事依頼 こうしてはどうでしょう、ここはこんな感じでどうでしょう、みたいな提案も一切無くw
「欲しい結果を画像としてください それなら作れます」ww 已む無く一例を出して依頼
驚いたことに、元データをあれこれ変えると欲しい結果に成らないwww 一例だけに対応した特殊な作りw 二度と顔も見たく無い 金返せw

31:デフォルトの名無しさん
23/06/18 13:05:39.32 8nJec8eo.net
パソコン教室の大半はそれほど専門知識がないと聞いた。
元来は初心者対象の教室だからだとか。

32:デフォルトの名無しさん
23/06/23 07:44:08.29 REMDSrlo.net
Functionプロシージャは値を返せるものだと思いますが、SubプロシージャでもCALLで呼び出してByRefを指定すれば値返せるんですよね?
両者の違いは一体なんなんでしょう??

33:デフォルトの名無しさん
23/06/23 08:01:42.96 NC8DAFQ1.net
戻り値を持つかどうかだよ。
引数を呼び出す関数内部で変更するのは
どちらでも出来る。

34:デフォルトの名無しさん
23/06/23 09:28:59.63 /GlO4XTI.net
他の言語では区別されずに関数だけの物が多い
いにしえのBASICはサブルーチンしかなくて変数はすべてグローバル
括弧の仕様もだが歴史の重みを噛みしめろ

35:デフォルトの名無しさん
23/06/23 10:06:04.82 REMDSrlo.net
よく分からないです…もう少し詳しく説明頂けると助かります。
申し訳ないです。

36:デフォルトの名無しさん
23/06/23 10:11:17.14 Mw8GfxK3.net
関数は計算式に組み込める
戻り値は一つだけ
マクロ実行は関数使えない

37:デフォルトの名無しさん
23/06/23 11:06:39.27 7qSQWAkd.net
昔々、VBAの先祖であるBASICには、サブルーチン(Subプロシージャ)しかなく、関数という概念がありませんでした
更に、変数はすべてプロシージャの外で宣言し利用されていました
しかし、これでは大変見づらいし使いづらいしで大変だったため、あるとき「関数」と「スコープ」という概念を取り入れました
これにより、実行すると内部で計算を行いただ一つの値を返すFunctionプロシージャが誕生しました
一方で、Subプロシージャにもスコープの概念が取り入れられ、引き続き使われました

要は、使い方次第でどちらをどのように使ってもOK
ただ>>36の人も書いたとおり、Functionプロシージャはマクロとして直接実行することはできない
他方、Subプロシージャはワークシート上から直接実行することはできない

38:デフォルトの名無しさん
23/06/23 12:03:21.11 REMDSrlo.net
納得しました…解説くださった皆さん、ありがとうございました!!

39:デフォルトの名無しさん
23/06/24 00:10:13.02 fL6pj+X5.net
頑張ってなー。陰ながら応援してるぜ

40:デフォルトの名無しさん
23/06/24 00:30:34.72 S6IDi6Ok.net
>>37
え?元祖であるBASICって何のこと?
元祖であるMicrosoft BASICにすらDEF FNがあるけど

41:デフォルトの名無しさん
23/06/24 10:32:06.06 9NWiWQQz.net
N-Basicとかの話じゃないのか?

42:デフォルトの名無しさん
23/06/24 11:09:40.81 fqjmYFK7.net
雑談すれ

43:デフォルトの名無しさん
23/06/24 12:20:19.97 YS0uV+dZ.net
9450か?

44:デフォルトの名無しさん
23/06/24 22:10:54.53 875mwHlZ.net
>>40
Cのdefineマクロみたいな奴よね
出番作るの難しそうな奴

ExcelのFunctionはシート関数として使えるぞ

45:デフォルトの名無しさん
23/06/24 23:11:51.23 BMMg/Y2o.net
プログラムエリアが数十キロくらいしかなかったから関数もスコープも必要なかった
むしろ綺麗なコードを書くのは贅沢で、PRINTを?とかの省略形にしたり
改行せずバイト数を稼ぐようなコードが賞賛されていた。

46:デフォルトの名無しさん
23/06/25 00:24:41.50 WLh9134p.net
>>44
だから、
>>37の内容は嘘ばっかということ

47:デフォルトの名無しさん
23/06/25 03:32:16.07 WLh9134p.net
>>37はChatGPTをありがたがる馬鹿の書き込みだろ

48:デフォルトの名無しさん
23/06/25 05:40:54.47 jMidsU60.net
そういや前に、昔のプログラミング言語の話題になったとき、BASICのDEF FNのことを、「あんなの関数じゃねェ、あれはマクロだ」っつってた人いたな
俺は昔のことなんか知らんしどうでもよかったが、1行しか書けなかったらしいし、そういう認識の人もいるんじゃねーの

49:デフォルトの名無しさん
23/06/25 09:59:34.30 PK7i50JJ.net
>>45
仕方なかっただけで賞賛はしていなかったぞ

50:デフォルトの名無しさん
23/06/25 21:56:09.88 swmKjmwS.net
関数=せきすうと読んでいた人が実際にいた

51:デフォルトの名無しさん
23/06/25 23:22:23.62 3UTQvlaV.net
関塾=せきじゅくと読んでいた人が実際にいた

52:デフォルトの名無しさん
23/06/26 01:19:00.86 1dfN+wbt.net
マウスを画面に押し当ててたおじさんが実際にいた

53:デフォルトの名無しさん
23/06/26 05:36:49.48 9cAak+8+.net
ふいんき ←なぜか変換できない

54:デフォルトの名無しさん
23/06/26 07:23:51.45 w2FuY+ax.net
引数=いんすうと読んでいた人が実際にいた

55:デフォルトの名無しさん
23/06/26 11:27:40.01 l78J+BlQ.net
>>53
漢字見たら、決してその読みにならない。

56:デフォルトの名無しさん
23/06/26 15:37:26.07 8l3EVPZS.net
ピーチ空港というやらかし

57:デフォルトの名無しさん
23/06/27 23:47:10.31 P0Gtm5Sz.net
エクセルを起動したら、FC版ゴルフでOBした時の音が鳴って、そのまま終了するというのはどうでしょう?

58:デフォルトの名無しさん
23/06/28 00:51:36.30 1m2qsejD.net
>>57
申し訳ありませんが、私はそのような機能については知りません。Excelの設定を確認して、音が鳴るようになっているかどうかを確認することをお勧めします。また、OBという言葉はゴルフ用語であり、Excelとは関係ありません。OBとは、Out of Boundsの略で、コースの外にボールが出た場合に使われます。

59:デフォルトの名無しさん
23/06/28 01:19:09.23 FkFoqSM5.net
>>57
モルダー、あなた疲れているのよ

60:デフォルトの名無しさん
23/06/28 10:37:29.73 T4Y6QIJ2.net
もう疲れちゃって、全然OBできなくってェ...

61:デフォルトの名無しさん
23/06/28 12:08:50.26 /OoOapo+.net
質問なのか提案なのかわからん

62:デフォルトの名無しさん
23/06/28 21:29:30.51 FkFoqSM5.net
そのまま終了したら何もできないし

63:デフォルトの名無しさん
23/07/01 13:09:20.80 1rn1baaI.net
引数=いんすうと間違えるのは分かる。
関数=せきかずはさすがに知障だろ

64:デフォルトの名無しさん
23/07/01 13:22:55.33 r23DAN/K.net
函数→はこすう、は聞いたことある

65:デフォルトの名無しさん
23/07/01 18:28:39.47 1rn1baaI.net
で、ワークシートせきかずの質問いいかな?

66:デフォルトの名無しさん
23/07/02 06:16:25.26 IiiPpo9r.net
VBAでグラフを自由自在に扱いたいんだけど
そのためにはまずはExcelのグラフの機能を知ろうと思い
本屋でExcelグラフに特化した入門本を見つけたがこれがひどい。
説明のしかたが画面のキャプチャを出して手順をステップバイステップで羅列してだけでまるでおじいちゃんに説明してるみたい。
そうではなくエンジニア(プログラマ)の視点でExcelのグラフをテクニカルに説明してるような本はありませんか?
われわれはエンジニアであるから頭はよい。しかしExcelグラフは使ったことない人は多いと思う。

67:デフォルトの名無しさん
23/07/02 11:18:29.08 dt8wW5zl.net
>>66
うーん
何故VBAにこだわる必要があるの?
グラフの種類の変更、PowerBIとかで出来る事でしょ
VBAで書きました、
なんて自己満に過ぎないし企業からしたら邪魔な存在
求人キーワード検索でVBAが極端に少ない理由はソコ

68:デフォルトの名無しさん
23/07/02 11:41:34.74 BV1CApnr.net
エンジニアはExcel使わない
MATLABとかpythonでmatplotlibだろ常考
っていうかワチョイExcelで追い出されたからってこっち来んな

69:デフォルトの名無しさん
23/07/02 11:53:52.58 IiiPpo9r.net
>>67
このハゲ!

70:デフォルトの名無しさん
23/07/02 11:57:12.35 IiiPpo9r.net
わたしはVBA板でVBAのことを聞いておる。
whereとwhatは適切だ。
なぜこっちの会社でExcelを使ってグラフを表示させないといけない仕事がたくさんあるというwhyを教えないといけない?

71:デフォルトの名無しさん
23/07/02 12:07:33.25 mXNixq1q.net
VBA板ではないけど確かに>>70のほうが正論

72:デフォルトの名無しさん
23/07/02 13:46:14.64 Lu5xH6H0.net
>>66
経験上の話だけど
(少なくとも)どんなことができるかを予め学習しようとしたときに限っては、望むような資料は手には入らないことの方が多い
他方、やりたいことを絞って探すと、様々なアプローチがあってどれが適切なのか(少なくともそのときは)判断できないことが多い
どちらかというと、「なにができるか」ではなく「どうすればより使い倒せるか」を追求していたときの方が、振り返ってみると色々と身になっていた気がする
じゃあどうすればいい、って訊かれるとうまく言葉にできないが
まぁ実地でトライアンドエラーを積み重ねるのが一番いい、みたいな

73:デフォルトの名無しさん
23/07/02 13:52:08.05 Lu5xH6H0.net
>>66
書き忘れた
VBAに関しては、オブジェクトブラウザ(たぶんF2キー)開いてオブジェクトやメソッドをクリックしてヘルプ開けば(F1キー)細かいヘルプ出してくれるし
MicrosoftのウェブサイトにもVBAリファレンスのページあるので、そんなに苦労しないと思う

74:デフォルトの名無しさん
23/07/02 14:17:01.62 oy8ZXs8v.net
先ず、どんな図(グラフ)をイメージするか 揃ったデータをどう表現すればより理解しやすくなるか
総務省統計局のアドバイスを見てみよう   ※ いくつもコピペしたけど、←これがやっぱいちばん参考に成りそう
 URLリンク(www.stat.go.jp) 最下段の表を参考に◎と成ってるグラフが適切のようだと知れる
驚いたことに、某大学が提供しているグラフの種類・作成の注意点 は、こんなの大学でやることか?と呆れさせられる
 URLリンク(www3.cuc.ac.jp)
 URLリンク(www3.cuc.ac.jp)
 URLリンク(photo-m.tp.chiba-u.jp)
某企業に至っては、文字だらけ サンプル事例の類すら見当たらない
 URLリンク(www.dsk-cloud.com)
最下段で Google の クラウド型BIプラットフォーム「Looker」というのを紹介している点だけはすばらしい
 URLリンク(support.google.com)
 URLリンク(youtu.be) 二分弱の紹介動画(英語)
プレゼン屋さん向けの (くそダサイ こんなこといちいちご説明しなきゃダメなほど知性が低下してンのか?


75:)  https://ppt.design4u.jp/basics-of-charts-and-graphs/



76:デフォルトの名無しさん
23/07/02 18:33:08.84 oSf5Gi72.net
グラフとかやらんなー
円グラフ見るなら表見たほうが早いし凝ったグラフはむしろ邪魔でしかない。
やるとしてもプリセットの機能だけで必要十分だと思う。

77:デフォルトの名無しさん
23/07/02 22:32:55.12 J4eB92UB.net
つっても中身よりも見た目のほうが大事な時もあるからねえ

78:デフォルトの名無しさん
23/07/03 04:23:17.16 i2rHS60c.net
どんな値を何グラフにするか
集合とか確率、偏差、ばらつき、みたいな数学的考えができていれば簡単じゃね

79:デフォルトの名無しさん
23/07/03 09:36:09.61 XuaWdgM7.net
>>74
こんなの大学で教える内容じゃないだろ
小学生でも知ってる

80:デフォルトの名無しさん
23/07/03 11:12:53.71 IMB7iUwn.net
基本的にはデータそのものを扱わない側向けのプレゼンだから、より誇張してそのデータの存在意義を知らしめるためのもの
「おらおら、データをまとめるとこう成ってるぞ 今後こうなる予想ができるぞ」
「今やってることはこれだけ効果 ある/無い ぞ」 と、自分の作業が有意義だと吹聴して回るための道具
使いこなせば無双できるし、粗末なものをお披露目しちゃったら「やっぱアイツにやらせとくのはやめとけ」諸刃の剣

81:デフォルトの名無しさん
23/07/03 11:26:36.36 ma27EoH7.net
データから少子化、高齢化だとわかる
少子化対策として子供に税金使おうって話な

82:デフォルトの名無しさん
23/07/03 21:56:46.17 BhR2MxlQ.net
だからぁ
グラフ化にしても、集計にしても、分析にしても
一瞬で出来るのに
何で今時Excel VBAなの?
リクナビNEXT求人キーワード検索で
Excel VBA ヒットするの
全国でたったの200件だぞ
これが何意味してるか分かる?
時代の最先端走って仕事出来る連中は
もっと前見てるって事

83:デフォルトの名無しさん
23/07/04 01:06:18.83 vAHFNuLT.net
>>81
逆にVBAしかできない人っているんだろうか?
vbaできるくらいならhtmlくらい出来そう

84:デフォルトの名無しさん
23/07/04 01:28:05.14 JbgiBG9I.net
>>81
一瞬でできるのは一部の人だけだな
最先端にいる人は最先端を走ればいいし、200件しかない求人の仕事をやる人もいる
旧世代から最先端まで幅広く存在する中で何を選ぶのかで道が分かれる
なんちゃらAIが最先端で仕事無くなるとか思ってるのかな

85:デフォルトの名無しさん
23/07/04 01:48:13.82 F8W0yqj+.net
vbaでグラフ?
ボタン1つでグラフ化してくれるんだから無駄じゃないそれ考える時間

86:デフォルトの名無しさん
23/07/04 10:31:35.44 MrVa6DTU.net
>>83
うーん
上手く伝わらないなぁ
AIとか関係ない話
誰でも出来るグラフ化や集計、分析までVBAに拘る価値あるのか?って事
時代遅れの自己満足でしょ
>>84
その通りです。

87:デフォルトの名無しさん
23/07/04 12:31:55.15 uiMM/XnQ.net
ワッチョイがないスレはレベルが低くて微笑ましいな
VBAでやろうとする事が古いと言えば良いと思ってるおじさんがドヤ顔
まぁここでは好きにしていいよ
ワッチョイありに来たら狩るけど

88:デフォルトの名無しさん
23/07/04 12:49:53.31 XZ+9Zh/H.net
>>86
低レベルへようこそ
レベル高い奴はレベルが低いと思ってるスレなんて見ない
ましてや書き込みなんてしない

89:デフォルトの名無しさん
23/07/04 12:51:07.83 MOIJY7LO.net
とりあえず根本否定するやつはほっとけ。ネットでも現実社会でも。

90:72
23/07/04 12:59:44.29 as+5DOSb.net
回答にならない回答にしかならなかった俺が言うのもなんだけど
質問者が>>70のとおり言ってるのに、同じこと(VBAへのこだわり云々)を繰り返し繰り返し書く必要ないと思うんだけどな
あと、COBOLみたいなのがあるように、古かろうがそれを求められるところは世の中に少なからずあって、だからこそこうして質問スレが建ってるもんだと思うんだが

91:デフォルトの名無しさん
23/07/04 18:59:21.26 0rMfpkIe.net
VBA博士が集うスレはココですか?

92:デフォルトの名無しさん
23/07/04 19:49:21.24 3nvsh004.net
>>90
VBAに博士号はいないんじゃよ
別の博士号持ってるが白衣も着てないし
〇〇博士と呼ばれても違和感しか感じないな~

93:デフォルトの名無しさん
23/07/04 20:00:17.76 2HaeiLcy.net
仕事じゃないんなら好きに作ればいいんじゃないの?

94:デフォルトの名無しさん
23/07/05 16:38:40.78 5Lz4OcyC.net
いつまでもExcel/VBA使ってる香具師は池沼

95:デフォルトの名無しさん
23/07/05 17:36:12.52 LZsiN97x.net
いつまでもExcel/VBA使ってる人はハゲ

96:デフォルトの名無しさん
23/07/05 19:35:47.97 tHSZwNMX.net
いまだに香具師つかってるやつに言われたくはないわな

97:デフォルトの名無しさん
23/07/05 20:40:05.37 ktsPVmbY.net
使ってないのにスレにいる奴は基本的に荒らしたいだけ

98:デフォルトの名無しさん
23/07/05 20:43:41.64 y5RVhNqZ.net
今の時代にExcel VBA?
この業界の流れに乗れなかった人かな
残念

99:デフォルトの名無しさん
23/07/05 20:46:48.79 ktsPVmbY.net
ここはExcel VBAのスレだぞ
残念だろうが使わざるを得ない奴らが集まるところ
文句があるなら自分がよそへ行けばいい話

100:デフォルトの名無しさん
23/07/05 21:17:01.68 A5RmmNC/.net
>>94
Excelを使う限りはVBAとは無縁ではいられんだろうが
働いたこともない引き篭もりなのか?

101:デフォルトの名無しさん
23/07/05 21:59:32.04 6QI0YcHB.net
ここはまぁ引きこもりがネットで拾った受け売りを垂れるのも自由でいいと思う
ワッチョイありにきたら駆除される猿のように狩るけど

102:デフォルトの名無しさん
23/07/06 06:42:57.47 6KtbaetB.net
ワ有りスレが荒れてても自治せずワ無しスレの荒らしw
早く狩ってくれよw
それともVBA要らないおじさんの方だったか?

103:デフォルトの名無しさん
23/07/07 08:50:12.61 23jlNEFb.net
Excel VBA博士って
視野が狭いというか時代遅れというか
見てて痛々しい
時代は凄い勢いで進化してますよ

104:デフォルトの名無しさん
23/07/07 10:08:05.12 LUxIgYw0.net
>>102
あなたはなぜこのスレにいるのですか?

105:デフォルトの名無しさん
23/07/07 10:08:37.45 LUxIgYw0.net
>>97
あなたはなぜこのスレにいるのですか?

106:デフォルトの名無しさん
23/07/07 10:09:32.77 LUxIgYw0.net
>>94
あなたはなぜハゲているのですか?

107:デフォルトの名無しさん
23/07/07 20:52:12.62 I2GCDCjm.net
まあ進歩についていけないからこんなとこに来てんだろ

108:デフォルトの名無しさん
23/07/08 04:17:50.63 M9IpGud1.net
>>106
おまえは進歩についていけないからこんなところに来ているのか?

109:デフォルトの名無しさん
23/07/08 07:48:22.44 372gxjCM.net
>>107
仕事で時代遅れ()のVBA使ってるから興味はあるからな

110:デフォルトの名無しさん
23/07/08 08:20:21.74 VWtO8tep.net
なら同じような境遇の人がいることくらい想像できそうなもんだけどできないのね

111:72
23/07/08 08:29:42.91 0wIr94MT.net
進歩についていけなくなったからこんなところまできて時代遅れだなんだと繰り返し繰り返し書き込んで溜飲を下げる人と同じ境遇の人までは流石にいないと思うが

112:デフォルトの名無しさん
23/07/08 11:37:09.14 tNUCvJPF.net
無能がマウント取りに来て
逆に叩きのめされる典型的な例

113:デフォルトの名無しさん
23/07/15 20:53:02.93 S7Yl3j12.net
TALKにも誰も来ない・・・
みんなどこへ行ってしまったのか・・・

114:デフォルトの名無しさん
23/07/16 08:25:58.74 3CcDBjIY.net
今までの環境から見られないとか書き込めないなのかも

LinuxMint Jdimで閲覧も書き込みもできる

まぁ、VBAスレだし、みんなWindowsだよねw

115:デフォルトの名無しさん
23/07/16 13:39:11.40 aonKa36p.net
もう人いないねこのスレ

116:デフォルトの名無しさん
23/07/19 02:13:16.75 GPBEAKQR.net
変なのがいなくて平和だ

117:デフォルトの名無しさん
23/07/20 00:47:37.82 OYEyAFmI.net
VBAはできますがExcelはできません

118:sage
23/07/21 17:07:21.59 2kfVHWhVN
エクセル2003を使っています。
SUM関数を入力したセルには0が表示されています。
マクロで、「0が表示されているSUM関数のセル」だけを
選択する事ってできますか。
選択したセルの列を、非表示にしたいからです。

ジャンプ機能で数式をチェックすれば、すべての
SUM関数を選択できるとわかりました。しかし、
「合計が表示されているSUM関数のセル」を選択せず、
そのまま残して表示させたいです。

マクロでSUM関数の数字を区別する事はできますか。
ややこしい話で大変申し訳ありません。

119:デフォルトの名無しさん
23/07/21 17:12:11.47 2kfVHWhVN
ageてしまいました。
申し訳ありません。

120:デフォルトの名無しさん
23/07/20 20:35:27.42 XQoslBaM.net
>>116
そんなもんだよ
実際、VBAの試験よりEXCELの試験の方が難しいって
よく聞くしな

121:デフォルトの名無しさん
23/07/22 06:04:18.53 v8m+bwk6.net
なるほど。
最初からVBAで入ったから関数とかろくに知らないよ。

122:デフォルトの名無しさん
23/07/23 03:41:20.01 wOJRoAOFk
117です。
こちらは雑談スレのようですね。ワッチョイありの
スレで質問します。大変失礼しました。

123:デフォルトの名無しさん
23/07/24 00:21:40.64 c2Vg06vW.net
VBA使えるならワークシート関数も自分で作ればいい

124:デフォルトの名無しさん
23/07/24 07:50:20.29 x6gFIp5G.net
それが喩え車輪の再発明になろうとも

125:デフォルトの名無しさん
23/07/24 23:20:40.20 MFtFNdvf.net
さすがにSumとIfとCountは知ってるぞ。
まあそれもVBAでやるから必要ないけど。

126:デフォルトの名無しさん
23/07/25 22:07:31.93 rVFnMzvR.net
SUM関数も自作する猛者がいるスレはここですか

127:デフォルトの名無しさん
23/07/25 22:45:58.50 +OQeZG24.net
オーバーロード面倒くさそう

128:デフォルトの名無しさん
23/07/26 07:28:47.49 Nfxn4S3E.net
もはやVBA使うことが目的と化してよね

129:デフォルトの名無しさん
23/07/26 22:41:06.54 L2LDry/W.net
テキストボックスに3×2の表を連動させたいんですが一番簡単なコードを教えて下さい。

130:デフォルトの名無しさん
23/07/26 23:03:11.26 kSLtO4cy.net
その程度自力でできないでどうすんの

131:デフォルトの名無しさん
23/08/08 09:28:01.46 Z8bzY514.net
URLリンク(i.imgur.com)
絞り込んだ状態で、マウスで行を範囲選択し、
その範囲選択した行番号をfor eachやdo loopなんかで取得したいです。
offsetか何かかなーと思い、いろいろやったんですが、うまくいかず。

132:デフォルトの名無しさん
23/08/08 10:07:00.40 UzrvyFsr.net
多分要件がおかしい案件
なんでその操作をフォローする必要があるのか

133:デフォルトの名無しさん
23/08/08 13:12:20.45 rMDrjSGs.net
こうやれば良さげ
URLリンク(www.sejuku.net)

134:デフォルトの名無しさん
23/08/19 19:38:28.21 1hu/LZ3Y.net
間違えたっていいじゃないか 人間だもの

135:デフォルトの名無しさん
23/08/19 20:32:08.15 2CWolIrw.net
間違えたっていいじゃないか 事務職だもの

136:デフォルトの名無しさん
23/08/19 20:50:07.20 8yXJc72L.net
ガイアの夜明けではここいいシーンだったんだけどなあ

137:デフォルトの名無しさん
23/08/19 20:51:05.45 8yXJc72L.net
誤爆!

138:デフォルトの名無しさん
23/08/20 01:01:25.83 H1JRD+6e.net
9月も猛暑らしい。10月に入ったらいきなり寒くなるパターンと予想

139:デフォルトの名無しさん
23/08/20 08:58:27.27 A+C6jn06.net
日本にはもう夏と冬しかない

140:デフォルトの名無しさん
23/08/20 11:09:05.83 GjiTjTDJ.net
sejuku 貼るのやめてもらえませんか

141:デフォルトの名無しさん
23/08/20 17:49:56.40 H1JRD+6e.net
pcの熱暴走がこわいんよ

142:デフォルトの名無しさん
23/08/21 10:14:17.54 e2taloqq.net
エアコン付ければいいのに

143:デフォルトの名無しさん
23/08/30 20:15:17.59 g6jNJJob.net
そのエアコンが逝った いや、エアコン本体は逝ってはいないが、ルーバーがバグった
だらしなく下を向いたまま風向調整に応じずにガガッ、ガガガッ と最後の力を振り絞って
上向きに成ろうと頑張りはするが、力尽きてガクンとうなだれる 長い間お疲れ様
  (いやいやいやいや、まだ夏は終わりそうに無いんだが
真下だけは涼しい サーキュレーターでかき回してとりあえずは凌げている

144:デフォルトの名無しさん
23/08/30 20:57:48.04 /Ltekp6D.net
>>138
春も来るよ

145:デフォルトの名無しさん
23/09/01 06:52:31.47 ne/hzOol.net
5ちゃんねる専用ブラウザ Siki などが 機能が多すぎて使いにくかったので、
EXCEL VBA(スクレイピング)で自作してみた。
ワンクリックで このスレを発見できる。
あとは リンクをクリックするだけで開く。
URLリンク(i.imgur.com)
便利すぎる、自画自賛。 しかし 誰にも提供しない。
では質問します。『俺のこと、すごいと思いますか?』

146:デフォルトの名無しさん
23/09/01 08:55:44.80 PNrXKmh/.net
>>144
スゲー

147:デフォルトの名無しさん
23/09/01 09:45:35.57 RymGvRUL.net
>>144
エエんやないの
オレはRPAの勉強がてらyahoo掲示板をXLやACCESSに取り込んでた

148:デフォルトの名無しさん
23/09/01 10:12:30.21 8Q6o7DlX.net
>>142
壊れたエアコン無理に使い続けると
中で氷が出来てゴロゴロ回ってエアコン停まらなくても
氷が融けてぼたぼた落ちて来たことがある

149:デフォルトの名無しさん
23/09/01 10:16:44.07 UH2G1Fjz.net
触んじゃね

150:デフォルトの名無しさん
23/09/01 13:21:26.05 u1EfhygX.net
もう誰も居ないの
ユーザーフォーム上のフレーム内にフレームを動的に追加しようとしたらオートメーションエラー発生するんだけど誰か対処法知ってますか?

151:デフォルトの名無しさん
23/09/01 14:53:10.50 c6Z/nkux.net
「フレーム」はラベルやコンボボックスなどのコントロールをフレーム内に配置するコンテナ
という概念から、フレーム内にフレームは配置できないのでは?
フレーム1内のコントロールの戻り値に依って、ユーザーフォームの他の位置にフレーム2を
動的に配置したいとかなら可能だろうけど
若しくは、動的に生成されたコントロールを、不要になった都度開放していないとかか?

152:デフォルトの名無しさん
23/09/01 15:03:21.78 c6Z/nkux.net
MSコミュニティに似たような質問があるのを見付けた
URLリンク(answers.microsoft.com)
10年も前の事例だけど、辛辣な回答ひとつしか


153:付いていない 当時はクラッシュしてた、ってんだから、エラーに成るだけ手心は加えられてるのか



154:141
23/09/01 15:35:25.53 ne/hzOol.net
>>149
そのエラーは デバッグするのが 厄介だ。
去年、職業訓練校でVBAを習ったとき、
SQLが ちょっと違うだけで そのエラー発生した。

155:デフォルトの名無しさん
23/09/01 16:26:50.24 u1EfhygX.net
>>150
静的にはできるのにね?
フォーム内に用意した1個のフレーム内に動的に配置しようとするだけでエラー吐くので、後段で以下でご指摘いただいた点はとりあえず無関係のようです
今回は外側をマルチページで代用したけど、モヤっとする…

156:デフォルトの名無しさん
23/09/01 16:55:57.14 c6Z/nkux.net
ン? 静的にはできるんだ 
じゃあ、フレーム内にコントロールを配置する時に、ちょっと順番を間違えるとフレームとの
リンクが切れて、見た目はフレーム内だけど別物として配置されてしまうように成るとかと
似た状況なんじゃ?
動的に配置するモジュール内で、その過程をなぞらないと入れ子フレームとして設置できない
とかが思い付いたが、果たして
或いは、静的に配置しておいてvisibleをon/offで切り替えるとか
何にしろ利用者の現場でトラブらないような、安定した方法が望まれる(シンプルイズベスチャ)

157:デフォルトの名無しさん
23/09/01 17:05:15.42 QGSBVRun.net
>>152
職業訓練校www

158:デフォルトの名無しさん
23/09/01 18:26:16.13 jzQZ9hsj.net
たまに訓練校でVBAコースとか見掛けるけど、どの辺りまで教わるのですか? 経験したエロい人教えて

159:デフォルトの名無しさん
23/09/01 18:41:22.55 qEQ7NwLw.net
指まで

160:141
23/09/01 20:45:25.45 ne/hzOol.net
>>156
【架空の店や 個人病院など】の『商品CODE一覧表』とか 『顧客の住所録』とかを、ACCESSで 複数の『データベースの箱』を用意する。
EXCELで入力フォーム作って、SQLでACCESSデータベースの追加・変更。
授業では、スクレイピングや IE制御は習ってない。← これは独学(ネットで)
職業訓練校に通えば 就職できる訳ではない。 
俺は『失業給付金の延長』が最大の目的だった。

161:デフォルトの名無しさん
23/09/02 09:29:37.93 t45vXwol.net
エロチックな人体験談ありがとうございました。
なるほど給付金延長目当てはあるあるな話ですね。
自分は♀との出逢い目当てで通いますよ。

162:デフォルトの名無しさん
23/09/09 09:48:51.46 x8sBUwGJ.net
With Sheet1
Dim ary
ary = .range(セル範囲)
End With

これ多用してきたんだけど、セル範囲がセル一個だけだとaryに配列じゃなくて普通のVariant型が入ることに今気づいた
この後の処理は配列であることを前提にやってるから、そこでエラーが起きる
結構いろんな所で使ってたからこれはやべー・・・・

163:デフォルトの名無しさん
23/09/09 09:58:43.37 x8sBUwGJ.net
最終行取得してセル範囲を定義したりすると、
1セルになる可能性があるからダメなんだよな

この方法使う時はセル範囲は固定した上で、
代入された配列の要素が異常値なら排除する仕組みの方がいいのか

164:デフォルトの名無しさん
23/09/09 11:21:24.50 +0dsEkXE.net
選択された範囲がセルひとつだけだった場合は
エラーメッセージ出して範囲を拡げるよう促す 処理を停める そうする方が手間は少ない

165:デフォルトの名無しさん
23/09/09 11:38:21.48 skhr6YT2.net
ary = .range(セル範囲)
If (VarType(ary) And vbArray) = 0 then ReDim ary(1 To 1, 1 To 1): ary(1, 1) = .range(セル範囲)
こんな感じで必ず配列になるように対処したことはある。
逆に値を戻すときは、一つのセルに配列を入れようとしてもOK。

166:デフォルトの名無しさん
23/09/09 15:33:08.91 F9Z+i/7c.net
>>162
たとえていうなら、この表に追加的に買ってきてほしいものを書いてくれたら買ってきますよ、というようなものなので、買ってきてほしいものがバナナだけの時もあるわけで、バナナだけじゃ困るというエラーメッセージを出すのはちょっと・・・
>>163
それ考えたんですけど、ちょい面倒くさいなぁと思ってやめました
でもそのコードは簡潔でいいですね。拝借させてもらいますね

ありがとうございました

167:デフォルトの名無しさん
23/09/09 17:39:26.81 be6v4mh1.net
同じ問題に直面したけどググってみつけた自作関数GetArrFromRangeで対応してるわ
URLリンク(yaromai.jp)
流れとしては>>163に近いかな?

168:デフォルトの名無しさん
23/10/05 02:08:04.21 +NVPN5Yc.net
あるセルをマウスで選択すると、
選択したそのセルと隣のセルも消す、
というマクロを作って現在動かしていますが、
どうしても類似のシートをもう一つ作って連動
させたいのですが、例えば、
シートAのセルのE1をマウスで選択した時、
シートBのセルのE1も同時に選択状態にする、
というマクロは可能でしょうか?
宜しくお願い致します。

169:デフォルトの名無しさん
23/10/05 03:02:59.67 +NVPN5Yc.net
追記
別に「同時」でなくともいいです。
要は、シートBのセルのE1をマクロで
操作できればなんだっていいです。

170:デフォルトの名無しさん
23/10/05 04:09:43.70 tRnDXjTr.net
同時は無理かも知れんが
同時じゃなくて良ければ可能
次の方どうぞ

171:デフォルトの名無しさん
23/10/05 08:25:15.77 +NVPN5Yc.net
>>168
どうやればできるか教えてください

172:デフォルトの名無しさん
23/10/05 10:30:07.40 AvBTKCCq.net
Range("シートB!E1").Select

173:デフォルトの名無しさん
23/10/05 12:27:59.35 9btcP5Iv.net
>>166
「選択したそのセルと隣のセルも消す、というマクロ」
をここに書いてもらえればアドバイスできる。

174:デフォルトの名無しさん
23/10/05 20:37:12.52 +NVPN5Yc.net
>>166です。
自己解決しました。
結局ここで質問している方法は分かりませんでしたが、
別の方法でなんとかできるようになったのでそちらを
採用します。皆さん有難うございました。

175:デフォルトの名無しさん
23/10/05 20:37:35.99 +NVPN5Yc.net
>>166です。
自己解決しました。
結局ここで質問している方法は分かりませんでしたが、
別の方法でなんとかできるようになったのでそちらを
採用します。皆さん有難うございました。

176:デフォルトの名無しさん
23/10/09 18:37:12.70 bDtEeCCl.net
test

177:デフォルトの名無しさん
23/10/09 18:37:28.81 bDtEeCCl.net
test

178:デフォルトの名無しさん
23/10/09 18:43:55.87 bDtEeCCl.net
MT4のDDEサーバー機能使ってエクセルにリアルタイムレート表示させてるんだが
ここで質問よい?

179:デフォルトの名無しさん
23/10/21 00:44:14.90 QYcnZo6w.net
VBAとVBSで同じ内容をPOSTして、
返ってきたreponsebodyも同じなのに、
操作出来るHtmlElementが違うってどういう事やねん!!

180:デフォルトの名無しさん
23/10/24 23:47:02.19 Qu5vmivm.net
forで配列testにシート名を格納し、Sheets(test).Selectでシートを複数選択したいですがエラー9になります
Sheets(test(0)).Selectとするとエラーは出ないです
Debug.Print test(0)
Debug.Print test(1)
と指定するとシート名が確認できますが
Debug.Print Join(test)
と指定すると空の値でした。test0とtest1の値が連携されて表示される想定でしたがなぜ空なんでしょうか

181:デフォルトの名無しさん
23/10/25 01:50:17.21 iLS1no5v.net
配列testの初期化かforでシート名を取得している部分がおかしいんじゃない?そこのコードを書いてもらわないと。

182:デフォルトの名無しさん
23/10/25 19:24:35.26 8bx5SHat.net
>>178
そもそも
>test0とtest1の値が連携されて表示される想定
が間違ってるんだが
それができたとしても、Sheets().Selectで複数シートのセレクトはできないと思うが

183:デフォルトの名無しさん
23/10/25 19:32:55.99 8bx5SHat.net
>>178
試したけど、
Sheets()に文字列配列渡せば複数セレクトできるな
渡すのは連結された文字列とかじゃなくて、文字列の配列津
testを文字列配列で宣言すればいけるんっぽ

184:デフォルトの名無しさん
23/10/25 20:15:45.40 //t71i0T.net
>>179-181
ご指摘いただいて確認し直したところRedimの指定が間違ってました
ありがとうございました

185:デフォルトの名無しさん
23/10/31 23:39:07.52 0l/KyLnQ.net
バージョンはExceloffice2019です。
「Sheet1」で購入した野菜の一覧を作成します。

 A1:A100に野菜の種類.例:トマト、キュウリ、キャベツ…
 B1:B100に野菜の産地.例:千葉、埼玉‥‥
 C1:C100に野菜の購入年月日.例:2023/10/31
 D1:D100に野菜の価格.例:1,000


「Sheet2」に
 A1:A5に野菜の種類 
 B1:B5に野菜の産地
 を記載したときに
 C1:C5に、「Sheet1」のAとBの条件に合う一番下の行の購入年月日を返す。
 かつ
 D1:D5に、「Sheet1」のAとBの条件に合う一番下の行の価格を返す。

 これをVBAで表現できますでしょうか。
 何卒、よろしくお願いいたします。

186:デフォルトの名無しさん
23/11/01 02:50:19.57 nS+y2GzJ.net
できます

187:デフォルトの名無しさん
23/11/01 02:56:30.71 LeiRH4ql.net
表現
'できらぁ

188:デフォルトの名無しさん
23/11/01 03:05:32.93 5z6NYMjm.net
ぶいば

189:デフォルトの名無しさん
23/11/01 03:12:36.26 H7+Ix2LY.net
仕様に応じて価格は変わります
価格に応じて仕様も変わります
色々突っ込みどころが多すぎる

190:デフォルトの名無しさん
23/11/01 03:27:01.62 Q2iQ3kej.net
バージョンすらまともに書けない馬鹿に何を期待するのか

191:デフォルトの名無しさん
23/11/08 17:47:52.62 TYSKNLfT.net
初歩的な質問ですみません
例えばですがセルA2の型が標準だったとして、標準だった場合は色を付けたいです
どうやってセルが標準かどうか判断すれば良いか教えて頂けませんでしょうか

192:デフォルトの名無しさん
23/11/08 18:14:40.14 TYSKNLfT.net
186です
自己解決しました

193:デフォルトの名無しさん
23/11/08 19:53:31.21 7oppFyNo.net
>>190
どうやったの?

194:デフォルトの名無しさん
23/11/10 00:50:32.41 VwCFMbHh.net
俺も気になる。
NumberFormatLocalじゃない奇想天外な解決策だったらウケる。

195:デフォルトの名無しさん
23/11/21 22:58:20.04 AR1yXI4p.net
  If (a = 1) Then
 '{
   b = 1 ';
 '}
  Else
 '{
   b = 2 ';
 '}
  End If

どう?

196:デフォルトの名無しさん
23/11/21 23:58:40.18 xeomrwBy.net
それVBAか?

197:デフォルトの名無しさん
23/11/22 00:34:59.56 byPvCzkk.net
バレバレだと思ったらバレてなくてワロタ

198:デフォルトの名無しさん
23/11/26 13:42:56.19 8a4yzyW0.net
>>193
どうでもいい

199:デフォルトの名無しさん
23/11/26 20:04:28.62 bZOTy+QC.net
VBEで-キーを押すとExcelが落ちる
何で?

200:デフォルトの名無しさん
23/11/27 19:55:15.09 IFAh3DJf.net
床に置いたら落ちないんじゃね

201:デフォルトの名無しさん
23/11/27 20:06:45.93 y0lY01bz.net
俺もそう思う

202:デフォルトの名無しさん
23/11/27 20:19:28.03 wYp6UIkr.net
なにごとも
低い位置においておけば落ちることはない

203:デフォルトの名無しさん
23/11/29 05:31:22.23 0nQJ/yPv.net
Uiautomationでアプリに表示されてる文字を3万行くらい読み取ったら落ちた
エクセルじゃなくてアプリの方が
どういう理屈?

204:デフォルトの名無しさん
23/11/29 09:05:11.59 F9HVG0++.net
イベントビューアーで何が起きたかぐらいは確かめなさい
再現性


205:あるならタスクマネージャーのパフォーマンスでメモリなのかCPUなのか とかも アプリの表示文字3万行だけで、アバウト過ぎる



206:デフォルトの名無しさん
23/11/29 10:10:43.50 sD7VzCeS.net
昔はintの最大が32767 だからそれ越える数を扱うと落ちるソフトがよくあったな

207:デフォルトの名無しさん
23/11/30 09:29:06.87 vgaDfHiB.net
変数の値がマイナスとか変な数字になるだけじゃないの?
その程度のことで落ちるの?

208:デフォルトの名無しさん
23/11/30 10:14:04.34 uCTIv0ls.net
マイナスの場所がアクセスできなかったり
永遠にloopの終了条件に達しないとか
結果が大きくなりすぎてメモリ不足とかなる

209:デフォルトの名無しさん
23/11/30 12:17:27.34 3oFcABR+.net
古いexcelも最下行が少なかった

210:デフォルトの名無しさん
23/12/01 02:42:24.09 xLT/7JKF.net
このスレも落ちる

211:デフォルトの名無しさん
23/12/01 16:31:31.03 7wVpTT+J.net
落ちないで

212:デフォルトの名無しさん
23/12/01 17:06:11.81 fwRU51B8.net
ハゲないで

213:デフォルトの名無しさん
23/12/02 09:27:15.99 gVhM2KTB.net
戦えよ

214:デフォルトの名無しさん
23/12/02 09:57:19.84 vycJbAdX.net
Excel VBAって長時間経過すると一定間隔で一時的にCPU割り当てが止まったりする仕様ですか?
プログレスバーもどきやマクロ経過時間を10秒毎に表示させているんですが、毎回2万件を超えたあたりから一時的に処理が停止しているみたいなんですが。

215:デフォルトの名無しさん
23/12/02 09:58:41.46 vycJbAdX.net
訂正。10秒毎にではなく10件処理する毎にです。

216:デフォルトの名無しさん
23/12/02 10:01:01.61 OwcK4uEB.net
セルコピーの繰返しで条件付書式設定が多大になってるとか

217:デフォルトの名無しさん
23/12/02 10:11:47.98 0tC7Yjqi.net
excelで一万件以上のデータを扱わないで下さい

218:デフォルトの名無しさん
23/12/02 10:11:58.70 vycJbAdX.net
変数の価をセルへ記入する処理は繰り返し行っていますが条件付書式は設定していないしセルからセルへのコピー処理はしていません。
処理開始から20000件あたりまではスルスルと進んで行って20000件を超えたあたりから休み休みになるのが謎です。
ソース的には同じことを繰り返しているだけなんですけどね。
セルへ記入されていく行数は増えていくのでそのあたりが原因なんでしょうか。

219:デフォルトの名無しさん
23/12/02 10:29:12.94 gVhM2KTB.net
pcの性能じゃね
毎回起きるなら条件を変えてテストし発生条件をはっきりさせる

220:デフォルトの名無しさん
23/12/02 10:55:39.59 5w2fWXOw.net
計算式が2万行あるとか

221:デフォルトの名無しさん
23/12/02 10:58:44.05 5w2fWXOw.net
実行前に以下弄って画面更新を抑制してる?
Application.ScreenUpdating
Application.Calculation

222:デフォルトの名無しさん
23/12/02 11:01:53.10 vycJbAdX.net
いえ、単なる文字列を上から下に向かってひたすら記入していくだけです。
記入する文字列を決めるためにVlookup関数の結果をフィルターして抽出された1行を文字列としてセルに記入してますが、Vlookup関数の数は固定で増えるわけでは無いのでCPU負荷も一定なんじゃないかと思います。

223:デフォルトの名無しさん
23/12/02 11:02:50.91 vycJbAdX.net
>>218
Vlookup関数の結果を利用するのでそれはできないです。

224:デフォルトの名無しさん
23/12/02 11:03:58.36 vycJbAdX.net
あ、すみません
Application.ScreenUpdating
は抑止したり解除したりを繰り返してました。

225:デフォルトの名無しさん
23/12/02 12:25:52.64 dC73Xol+.net
原因追及したいのなら
出力データを増やさずに同じ行に書き出すとか

226:デフォルトの名無しさん
23/12/02 13:23:33.03 gVhM2KTB.net
そのうち前の担当が作ったとか言い出すんじゃね

227:デフォルトの名無しさん
23/12/02 17:03:47.70 H7HADDQf.net
Windowsの仕様として、重たい処理をさせてるときは中の人が勝手に一休みするようにできている
アプデがいくつもある時など、進捗の%が進んだり止まったりなのを目にしたこともあるだろう
エロ動画を何本もDLしてる時に同サイズなのにすぐ落ちるのといつまでも落ちないのがあるように
基本的にExcelは同じディレクトリにテンポラリーファイルを自動的に作る(Excelに限らないが
そのファイルと相互に連携して「戻る」だの「処理を取り消す」だの「保存しない」だのを可能にしている
システムファイルなので敢えて表示する指定をしないと通常は目に見えない
処理は目の前のファイルだけで無くそのシステムファイルにも反映されている
いっぺんに大量の仕事をさせると「さすがに休ませろよ」と両方のファイルがブー垂れる←チンタラし出す
for-nextとかLoopの中にDoEventを盛り込むと、多少は改善されるかも知れないしされないかも知れない
URLリンク(www.tipsfound.com)
URLリンク(qiita.com)
正直なハナシ、おれには何が何だかさっぱり理解できないが呪文みたいなものなんだろう(違う

228:デフォルトの名無しさん
23/12/02 17:12:50.25 hwp9WWnB.net
デフォルト10分に一回の自動回復用データの保存か

229:デフォルトの名無しさん
23/12/02 19:21:37.99 FUL/sgR0.net
>>224
馬鹿の妄想

230:デフォルトの名無しさん
23/12/02 19:43:05.04 UnnytQXE.net
>>224
バカの長文ってホント的を得てるな
応答なしってのは文字通りマウス操作やキー操作に応答がない状態で、
なぜそれが起きるかは操作に応答する余裕もないくらい全集中して処理してるから
リンク先に書いてあるのは定期的にマウスだのキーボードだの気にしろよって指示
ID:vycJbAdXが書いてることとは根本的に違う事象

231:デフォルトの名無しさん
23/12/02 21:20:16.63 gVhM2KTB.net
内容を理解しないで ○○すると速くなるとか、エラーを出なくするとかを検索で見つけたのを
鵜呑みにして呪文のように至る所に無意味なコードを貼るタイプかな

232:デフォルトの名無しさん
23/12/02 22:41:07.55 H7HADDQf.net
「詳細設定」-「ハードウェア グラフィック アクセラレータを無効にする」にチェックしOK
使っていないアドインがあったらチェックを外す
可能性が高いのが、GPUがレッドゾーン タスクマネージャーのパフォーマンスでCPU・メモリ・ディスク
辺りはまったりと余裕ぶっこいてるのに、GPUがパンパン状態 これは増設できないマシンなら
どうしようもない 一行目の処理の前後でこれを比較してみて変わったら原因はそこ
 フリーズする訳でも無くちゃんと完走するなら「こういうもんだ」で済ますのも大人の対応
高性能ギンギン!のマシンとCeleronマシンでも現象一緒とかなら尚更コチラ側では対処のしようも無い

233:デフォルトの名無しさん
23/12/03 01:31:41.80 MKV2NgOh.net
>Windowsの仕様として、重たい処理をさせてるときは中の人が勝手に一休みするようにできている
そもそもこれが嘘
そんな仕様ねーよ

234:デフォルトの名無しさん
23/12/03 06:53:42.28 xZHPSaOR.net
>>203
そもそもintって何?
データ型は正確に書かないと

235:デフォルトの名無しさん
23/12/03 06:55:03.43 xZHPSaOR.net
>>230
アイドリング中はデータの先読みをしているから、彼は勘違いして反対のことを言ってしまっているんだろうな。

236:デフォルトの名無しさん
23/12/03 09:55:11.40 5HcnYZkn.net
重たい処理で休むってCPU温度が上がったせいで速度落とすあれのことかと

237:デフォルトの名無しさん
23/12/03 11:08:35.63 QTewqrs7.net
>>224
これはひどい

238:デフォルトの名無しさん
23/12/03 11:10:09.56 QTewqrs7.net
>>228
script kiddie

239:デフォルトの名無しさん
23/12/04 15:12:23.07 Nbpgvbo/.net
for each で処理するときにI列は処理を飛ばしたかったので
for each rng in range
if rng.column = 9 then
goto skip
処理内容
という風にしたところすべての処理がスキップされてしまったので
以下のようにしたらうまくいきました。解決したんでよかったんですが
どういった理由で結果が違うのでしょうか?
if rng.column <> 9 then
処理内容

240:デフォルトの名無しさん
23/12/04 15:18:26.28 +hRuE00u.net
skip,endif,next の位置関係を省略すんな

241:デフォルトの名無しさん
23/12/04 16:25:34.26 xc8M7hCZ.net
まーたどっかから質問パクって来た?
URLリンク(oshiete.goo.ne.jp)
若干改変してるか RangeとCellsについて、小一時間問い詰められてみるのもいいかも
URLリンク(sugoikaizen.com)
ここでこうだよって書かれても身に付かないだろうし(おれもだし

242:デフォルトの名無しさん
23/12/04 16:43:57.28 Nbpgvbo/.net
質問パクったわけではないですが確かに似てますね
省略しないと以下になります
処理の内容は同じです
■うまくいく方
For Each rng In Range(Cells(3, 7), Cells(m, n))
If rng.Column <> 9 Then
If rng.Value = "-" Then
dataEx.Cells(j, i) = ThisWorkbook.Sheets(dataEx.Cells(1, i).Value).Cells(rng.Row, 3).Value
dataEx.Cells(j, i + 1) = ThisWorkbook.Sheets(dataEx.Cells(1, i).Value).Cells(2, rng.Column).Value
j = j + 1
End If
End If
-----------------------------------------------------------------
■すべてスキップされてしまう方
For Each rng In Range(Cells(3, 7), Cells(m, n))
If rng.Column = 9 Then
GoTo skipCol
If rng.Value = "-" Then
dataEx.Cells(j, i) = ThisWorkbook.Sheets(dataEx.Cells(1, i).Value).Cells(rng.Row, 3).Value
dataEx.Cells(j, i + 1) = ThisWorkbook.Sheets(dataEx.Cells(1, i).Value).Cells(2, rng.Column).Value
j = j + 1
End If
skipCol:
End If

243:デフォルトの名無しさん
23/12/04 16:46:57.68 Nbpgvbo/.net
すみません最後両方とも「Next」付け忘れました

244:デフォルトの名無しさん
23/12/04 17:25:36.52 IJgpRS5M.net
>>239
馬鹿はGotoを使う法則
こんなこと瞬時にわからん頭ならやめとけ

245:デフォルトの名無しさん
23/12/04 20:44:12.36 iY+/6ufA.net
>>239
落ち着いてよく考えてみ

246:デフォルトの名無しさん
23/12/04 21:18:11.46 1Ww5lLLM.net
ネタだろうな

247:デフォルトの名無しさん
23/12/05 01:23:49.48 9BlMohwu.net
よく知らないけど、この= は代入演算子か
j = j + 1
この= は比較演算子か
If rng.Column = 9 Then
こんな= を、2つの意味で使う言語ってあるの?
Ruby では、= は代入演算子で、== は比較演算子だけど

248:デフォルトの名無しさん
23/12/05 01:30:03.25 +1t+2z4I.net
Rubyの話にしたい例のキチガイ

249:デフォルトの名無しさん
23/12/05 06:54:56.45 i0GvpvVS.net
>>244
馬鹿にはわからんよ
ドンマイ

250:デフォルトの名無しさん
23/12/05 10:53:58.86 3p/65ALc.net
客観的にこの人はVBAができる人だと思ってもらうのに、VBAエキスパートのスタンダードを取るのは効果あり?
受験料高い上に対して難しくもない資格なんだけど、知らん人から見れば勘違いしてくれるかねぇ

251:デフォルトの名無しさん
23/12/05 11:03:15.47 3GhQ7B+D.net
あんなハリボテみたいな資格で勘違いしてくれるような会社に入りたいのか?

252:デフォルトの名無しさん
23/12/05 11:03:58.32 0D+v86FO.net
名刺に書くには恥ずかしくない?

253:デフォルトの名無しさん
23/12/05 11:21:20.84 3p/65ALc.net
>>248
ある大手の非IT子会社の求人にVBAやデータベース、PowerAutomateができれば尚可
みたいなことが書いてあるんよ
まぁVBA自体は広く知られてるから他企業でも資格持ってれば多少有利になるかどうなのかと思ってね。
>>249
名刺に書くなら恥ずかしいわな

254:デフォルトの名無しさん
23/12/05 20:07:16.92 R0TA+AvY.net
>>239
自分でステップ実行してどのように処理されているか確認してみては。本当に分からないならif文の仕組みを勉強するところから始める必要があるかと。

255:デフォルトの名無しさん
23/12/06 23:52:59.21 Y0R/nynM.net
>>239って
ここに張り付けたからインデント消えているのか?
実際のコードもインデントなしで書いてそうだな

256:デフォルトの名無しさん
23/12/07 01:27:12.14 J0zHJsHa.net
>>252
ちゃんとインデントついてるぞ

257:デフォルトの名無しさん
23/12/10 09:52:24.49 b059r/QR.net
フィルターの設定について質問させてください。各年の1月のデータを取得したいのですがうまくいきません。
手動だと、[日付フィルタ]から[期間内の全日付で1月を選んでできます。同じようにしたいのですがどうすればよいでしょうか?

ws.Rows("1:1").AutoFilter

' C列日付のフィルター条件を設定
Dim oldestYear As Integer
oldestYear = 2021 ' 最も古い年を指定

' 1月のデータを含むフィルター条件を設定
Dim filterCriteria As String
filterCriteria = ">=01/01/" & oldestYear & " AND <02/01/" & (oldestYear + 1)

' C列で条件に基づいてフィルタリング
ws.Columns("C:C").AutoFilter Field:=3, Criteria1:=filterCriteria

258:デフォルトの名無しさん
23/12/10 11:43:28.11 /HCFQ2uK.net
手動でうまくいくなら
マクロの記録→手動操作→記録終了
とすればマクロできてないか

259:デフォルトの名無しさん
23/12/10 22:40:23.08 sT365tcs.net
Stringなの?日付は

260:デフォルトの名無しさん
23/12/11 20:35:30.67 bj1MKtN8.net
Integerじゃね?(適当

261:デフォルトの名無しさん
23/12/11 20:37:58.60 dC/0oU5n.net
以外にもDecimal

262:デフォルトの名無しさん
23/12/11 23:17:25.43 D21ZDkpy.net
意外?

263:デフォルトの名無しさん
23/12/12 07:24:28.25 oC/8xaVQ.net
>>254
そのフィルター条件の書き方はどこかで紹介されてたもの?
Criteria1に複数条件を入れず、分ける必要があるみたい
ws.Columns("C:C").AutoFilter Field:=3, Criteria1:=">=01/01/" & oldestYear, Operator:=xlAnd, Criteria2:="<02/01/" & (oldestYear + 1)

264:デフォルトの名無しさん
23/12/12 11:29:55.50 TixshqYj.net
ユーザーフォームをワークブックから指定するにはどのようにすればいいですか?
セルだとこんな書き方をしてます
Workbooks(”book1”).Worksheets("Sheet1").Cells(1,1)
そこで
Workbooks(”book1”).UserForm1.Label1
のように書いたらエラーです
検索しても、ブックを指定せず単にUserForm1とだけ書いている事例しか見当たりませんでした

265:デフォルトの名無しさん
23/12/12 18:44:33.33 isBhbmiY.net
「やまぶきいろ」って
ヤマブ黄色かと思ってたら
山吹色だったんですね。

まあそれだと「ヤマブ」というのが意味不明なんだけど。

266:デフォルトの名無しさん
23/12/12 18:47:07.92 EvQ2Bvwd.net
お馬鹿自慢要らない

267:デフォルトの名無しさん
23/12/12 21:52:49.64 FzkyMEiq.net
まあ将来はマクロVBAは廃止されると予想されるからデカイ顔できるのも今のうちだぞ

268:デフォルトの名無しさん
23/12/13 09:34:17.90 0IbkX0L9.net
VBベースじゃないほうがこれからは良いだろうしなあ

269:デフォルトの名無しさん
23/12/13 10:08:54.21 fb2rzu10.net
仮にマクロ無くなってもでかい顔するやつはする

270:デフォルトの名無しさん
23/12/13 10:20:57.24 ZzGWLSGP.net
>>261
開いてるファイルからVBAを使って他のファイルのユーザーフォームを操作したい
みたいな要望に読めるけど、こういうことかな?
URLリンク(www.chishikinosoukonoseiri.com)
この人も苦労したみたいだけど、結果が正しいのか正統派の記述方式なのかもよくわからん

Designer なんて今まで食べたこと無いし
しかもバージョンが若干古い? IE絡みのオブジェクトっぽいし、IE亡き今、通用するのか
どうかも不明 ま、サイトは今年の春に更新されてるから使えなくなったなら泣き言も
書かれていそうだがそれは無いからだいじょぶか?
行き詰ってるなら試してみる価値はありそう

271:デフォルトの名無しさん
23/12/13 10:52:16.86 +QBADPFJ.net
VBA廃止でpowerqueryの時代が来る?

272:デフォルトの名無しさん
23/12/13 11:21:09.91 bFxo3E2h.net
>>267 レスありがとうございます
質問の意図はもっと単純で、複数ブックが開いているとき、Book1のマクロでcells(1.1).value=1みたいなコードを実行したとして、
実はBook2がアクティブだとBook1じゃなくてBook2の方が書き換わっちゃう
けど、操作したいセルをワークブック、ワークシートの順で書いとけば特定できる
ならば、複数ブックが開いていて、各ブックに同名のUserForm1があるとどうなるの?
どのブックかの明示は必要?書き方は? ということでした
(これを書いた方が良かったですね)
んで、カキコした後、試しにBook1、Book2にそれぞれ同名のUserForm1を作ってブックが2つ開かれてる状態にしても特に何も起きない
Book2をセル選択状態にして、Book1でUserForm1.ShowとやるとBook1側のユーザーフォームが開く
じゃあ、どのブックかの明示は不要?ほかの問題は起きないの?というのが現在の疑問です
マイクロソフトのリファレンスくらいは見ているのですけど理解できていません・・  以前、オブジェクト階層樹形図のようなものがあった気がするけど、それも見つけられず・・
URLリンク(learn.microsoft.com)

273:デフォルトの名無しさん
23/12/13 11:21:15.74 hoISaMFl.net
>>268
このハゲ!

274:デフォルトの名無しさん
23/12/13 11:26:50.73 bFxo3E2h.net
>>269
一般のネットブラウザだと字がちいさいと思います、すみません
スレチですが時々発生するのも疑問です

275:デフォルトの名無しさん
23/12/13 13:47:39.13 b26gKOXL.net
>>269
ブックじゃなくてプロジェクトのメンバー
例えばプロジェクト名がVBAProject1で、UserForm1っていうフォームモジュールがあるとして
dim a as VBAProject1.UserForm1
set a = new VBAProject1.UserForm1
で指定できる
プロジェクト名はメニューのツール→(プロジェクト名)のプロパティとかから設定可能

276:デフォルトの名無しさん
23/12/13 13:51:08.21 b26gKOXL.net
こういうのはオブジェクトブラウザから見ると簡単に確認できるよ
今回なら適当なモジュール内で
dim a as UserForm1
と書いてUserForm1を右クリック→オブジェクトブラウザを選択すると
「Private Class UserForm1
VBAProject1 のメンバー」
と下部の説明欄に表示される

277:デフォルトの名無しさん
23/12/13 14:05:40.64 ZzGWLSGP.net
>>269
じゃあ、みんな大好きオフィスTANAKAさんのこれで
URLリンク(officetanaka.net)
変数に入れとけば他のファイルには影響出ないんじゃないかな、と
>Book2をセル選択状態にして、Book1でUserForm1.ShowとやるとBook1側のユーザー
フォームが開く
これは、Book1で・・の時点で選択状態が移行しちゃってるんじゃないのか?
あと、このページの中ほどで説明してるけど
URLリンク(www.kurumico.com)
 >・実は、事前にメモリにロードされていないまま Showメソッドで UserForm を
 >表示する場合、自動的にメモリにロードされているんです。
ここがミソか
いくつもファイルを開いて作業することが多いケースなら、Show では無く Load を使えと
最後にちゃんとUnLoadするのも忘れずに

278:デフォルトの名無しさん
23/12/13 15:19:48.92 bFxo3E2h.net
皆さんありがとうございます
>>274
>選択状態が移行しちゃってるんじゃないの
 それはないと判断してます、というのは
Book1に下記コードをかいておき、Book2のセルB2とかを選択した状態で、VBエディタの三角ボタンで実行すると、同名のユーザーフォームのうちBook1側が表示されるが、セル(1,1)はBook2側が操作されるからです
Sub 試験用()
UserForm1.Show
Cells(1,1).Value=1
End Sub
>>272
VBAProjectの下にあることは分かりました
オブジェクトブラウザも見ましたし、VBAProject1. と打ち込んで、入力サジェストにUserFormが出てくることも確認しました
で、2つのブックのプロジェクトも同名のVBAProject1にして、先ほどのコードのshowの行を下記に変えて実行しても結果は同じでした
VBAProject1.UserForm1.Show
つまり、指定が無いとシートやセルはその時アクティブなものを操作するけど、ユーザーフォームは(サブプロシージャとかも?)プロジェクト内から選択されるので、別ブックが開いていて、偶然同名のものがあっても問題ない、ということですかね

279:デフォルトの名無しさん
23/12/13 15:24:52.44 bFxo3E2h.net
>>274
xボタンで閉じても「メモリ上から削除」されるんですよね、もう一度落ち着いて読み返して見ますけど

280:デフォルトの名無しさん
23/12/13 22:46:03.48 b26gKOXL.net
>>275
>>プロジェクト内から選択されるので、別ブックが開いていて、偶然同名のものがあっても問題ない
その通りです。
参照設定やApplication.Runなどで明示的に他プロジェクトのメンバーを呼び出さない限り、
そのプロジェクト内では自らのプロジェクトのメンバーしか呼ばれません。
ちなみに UserForm1 が変数名ではなくクラス名の場合、自動的にインスタンス化されたフォームを参照します。
プロジェクトのメンバーはあくまでクラス(≒型レベル)であり、インスタンス(≒値レベル)ではないという事は注意してください。
また、「指定が無いとシートやセルはその時アクティブなものを操作する」は厳密には、省略されたと判断されたら親オブジェクトを補完しようとすると考えた方がいいです。
例えばそのスコープ内でCellsという名前を定義した場合、 Cells(1,1).Value と書いても省略されたと判断されずにその定義したオブジェクトが参照されます。
定義されていない場合は省略されたと判断され Application.ActiveSheet. が頭に追加されます。

281:デフォルトの名無しさん
23/12/14 09:05:18.07 3Jt9wkWi.net
>>277
詳しくありがとうございます
疑問だった同名ユーザーフォームの件はまずは解決です

後半の「スコープ内でCellsという名前を定義・・」の部分を練習問題と思って、
Book2選択状態でもBook1でCells(1,1).Value=1を実行してBook1側セルが操作されるコードを考えてみます
ご説明頂きながらこちらの理解が足らない状態です,もし、そーじゃねーよ、ということなら恐縮ですがご指摘頂ければ幸いです

282:デフォルトの名無しさん
23/12/21 07:46:49.25 VfXlm8CZ.net
会社の先輩が
「サーバーがコケた」と言って魔した。
これはどういう意味なんですか?擬人法だとは思うけど。

283:デフォルトの名無しさん
23/12/21 07:46:58.32 VfXlm8CZ.net


284:デフォルトの名無しさん
23/12/21 08:07:57.44 5xKtyKw4.net
>>279
板違い

285:デフォルトの名無しさん
23/12/21 08:44:41.65 VfXlm8CZ.net
Excelの先輩が
「サーバーがコケた」と言ってました。
これはどういう意味なんですか?擬人法だとは思うけど。

286:デフォルトの名無しさん
23/12/21 08:45:07.84 VfXlm8CZ.net
>>281
このハゲ!

287:デフォルトの名無しさん
23/12/21 10:36:38.99 xlAPeSS0.net
>>279
ウォーターサーバーかな?

288:デフォルトの名無しさん
23/12/21 11:39:20.36 VfXlm8CZ.net
>>284
そうみたいです。
「コケちゃいました。だから金メダル取れませんでした。」という意味だって。

289:デフォルトの名無しさん
23/12/21 15:11:32.27 UFnvFSs2.net
現在計算が自動なのか手動なのかを判断する変数は見つけたのですが、これをリアルタイムで画面に出力する方法ってありますでしょうか?

イメージとしては条件付き書式で現在の計算が自動なら青、手動なら赤を表示するみたいなのを実装したいです

290:デフォルトの名無しさん
23/12/21 19:59:01.09 3GSHThlW.net
その変数の値をセルに表示するサブルーチンを作って1秒毎に実行する

291:デフォルトの名無しさん
23/12/21 20:55:44.88 Zzwx7STl.net
毎回必ず自動計算にしてしまうのはだめなの?

292:デフォルトの名無しさん
23/12/22 08:39:48.76 FajFP1p6.net
>>286
Excelでリアルタイムに更新する意味がない
自分で変更するなら変更時にセルにも値出すように組めばいい

293:デフォルトの名無しさん
23/12/22 17:31:18.37 ldIFfRbs.net
VBAは使わないが、
Webやローカルのデータを
外部参照するクエリーを
秒単位で更新させる機能はある。

あまり頻度を上げるとサーバに負荷をかけてしまうので、
確認しながら慎重に使っているが。

294:デフォルトの名無しさん
23/12/23 15:28:27.09 TfHA7K1j.net
>>286
よく使うシートでってなら、適当なオプションボタンなんかにその関数紐付けておけばいいんでは?
更にはそれで切替もできるような
全Workbookでってなら、フォームで作って呼出ボタンをクイックアクセスツールバーにでも置くくらい?

295:デフォルトの名無しさん
23/12/24 01:28:27.22 l/0x93fn.net
A1:C1*D2:D5の計算結果を二次元配列にするみたいなときってループなしでできたりするんでしょうか?
ワークシート関数ならスピルで一発だと思うんですが、VBAだとどうなんでしょう?

296:デフォルトの名無しさん
23/12/24 06:18:33.95 I70/tr7G.net
ワークシート関数でできるならそれでやれば良いんじゃね

297:デフォルトの名無しさん
23/12/29 20:50:51.68 1fvRXsft.net
>>247
ちゃんと体系的に学んで知っていることは重要
ちょっとしたことを知らないせいで、変なやり方をする技術者は多い

298:デフォルトの名無しさん
23/12/29 20:53:15.92 1fvRXsft.net
>>286
Excelを使わずに自分でデスクトップアプリを作った方がいいよ

299:デフォルトの名無しさん
23/12/30 01:00:29.23 lZZlE2RF.net
>>294
これな。ネットの野良マクロをコピー職人が多い事多い事

300:デフォルトの名無しさん
23/12/31 00:00:13.72 gZgGGHZV.net
綺麗すぎるコードはかえって怪しいかもな

301:デフォルトの名無しさん
23/12/31 01:35:35.84 vraHwHL1.net
学校のテストじゃないんだから、評価されるのは仕事で結果を出したやつだけ
自作かコピペか、自分で考えたか人に聞きまくったかAIにやらせたか、手段が問われることなんてないから

302:デフォルトの名無しさん
23/12/31 17:53:00.32 3wmF+Ciz.net
Dim Match As Object
Dim Matches As Collection
Dim Re As Object
Set Re = CreateObject("VBScript.RegExp")
Re.Pattern = "\d+"
Re.Global = True
Set Matches = Re.Execute("123qwe456rty789oikj")
For Each Match In Matches
Debug.Print Match.Value
Next Match

上記を実行するとMathesの型が違うとエラーが出ます。
Matchesが返すのはコレクションだと聞いていたのですが、Objectなのですか?
as Collectionで宣言するのは何故間違いなのでしょうか?

303:デフォルトの名無しさん
23/12/31 18:00:03.29 fNILhI+9.net
CollectionてVBA内部世界のオブジェクト管理に限るんじゃないの?
CreateObjectで作ったVBA外部のオブジェクトを扱えるとは思えないけど

304:デフォルトの名無しさん
23/12/31 18:55:45.23 1wnOvxvM.net
>>299
クラスモジュールに書いてる?

305:デフォルトの名無しさん
24/01/01 00:07:34.93 MaH6J7uc.net
開けましておめ

306:デフォルトの名無しさん
24/01/01 01:30:53.10 /rCM9JK/.net
>>298
仕事だからこそ、どう作られているかが重要。

307:デフォルトの名無しさん
24/01/02 08:54:33.87 nzmFeBBB.net
>>286
やりたい目的言えば別の代替案出てきそう臭がする。

308:デフォルトの名無しさん
24/01/02 14:58:32.95 NJgc4isg.net
Private Sub ListBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyControl Then
MsgBox "ok"
End If
End Sub

UserForm1にリストボックスを設置してKeyDownイベントを置いただけです
Ctrl
Alt
Shift
を押してもキーダウン
イベント自体発生しないのですが何かヒントありますか?
もう少し詳細に書きます
If の行にブレイクポイントを作っても上の3つのキーを押したときは、無反応です
他のキーを押した場合はVBEが反応してブレイクポイントで処理が止まったことを示す強調色が表示されます。この結果から、上の3つのキーを押した場合のみKeyDownイベント自体が発生していないと判断しました
実は、自宅のデスクトップパソコン(Excel2019)でこのコードを実行すると、上の3つのキーでもちゃんと反応してくれます
会社のノートパソコン(おそらくExcel2016)だと上の3つのキーを押したときだけ無反応です。他のキー、例えば数字やアルファベットキーを押した場合はイベント発生します。
コードはコピペしてるので完全に同じです
よろしくお願いします

309:デフォルトの名無しさん
24/01/02 17:08:18.59 CQp0gfLy.net
>>305
ノートPCのメーカーと型番を書いた方がいいかも。
もしかしたら他のキーと同時に押した時にしかキーコードを送らないとかやってるかもしれない

310:デフォルトの名無しさん
24/01/02 17:48:42.59 HPsEIlot.net
>>305
フォームのKeyPreviewプロパティがTrueじゃないんだろ

311:デフォルトの名無しさん
24/01/02 20:19:27.92 G9bvfkvl.net
>>305
そういうOSに関することをやると挙動が変わるからやめた方がいい。
Excel VBAは古いものと新しいものが同居しているから、あまり書かれないことを書くとはまる。

312:デフォルトの名無しさん
24/01/02 21:37:51.33 HPsEIlot.net
>>308が無能なだけでVBAのせいじゃなくね?

313:デフォルトの名無しさん
24/01/02 21:47:33.55 yI/hz6th.net
>>309
>>308が無毛なだけでハゲのせいで頭がおかしなことを言っている

314:デフォルトの名無しさん
24/01/02 23:13:53.34 MZzCTdib.net
>>305 その3つは複数のキーを同時に押すことで特殊な動作をさせるために使っている



316:デフォルトの名無しさん
24/01/02 23:57:34.67 NJgc4isg.net
ありがとうございます
>>306
>>311
最終目標がctrl+down/upによりリストボックス内の項目を入れ替える事です
ctrl+down/upが機能しないため、原因を探っている所なんです
もちろん自宅のパソコンでは思った通りの動きが実現できています
型番は会社に行かないとわからないので今はわかりません

>>307
KeyPreviewプロパティが見当たらないので調べたところ、
VBではKeyPreviewプロパティがあるが、VBAでは存在しないとのことです
正しいでしょうか

317:デフォルトの名無しさん
24/01/03 00:16:06.66 PY0bko23.net
他のキーと同時に押さないとキーコードを送らない可能性は自分も考えていたのですが、もう少し掘り下げて調べてみます

318:デフォルトの名無しさん
24/01/03 00:56:53.29 +zfFyPC5.net
馬鹿ってWindows標準でないキーアサインするよな

319:デフォルトの名無しさん
24/01/03 08:50:41.30 Aw29e2Gk.net
Emacs

320:デフォルトの名無しさん
24/01/03 11:46:15.43 PY0bko23.net
>>305ですが、いくつか実験したところ解決しました
環境によって受け取れるキーコードが違うようです
イベントハンドラの第一引数KeyCodeにコントロールキーが入るケースと入らないケースがあるようで、会社の環境だと入らないようです
KeyCodeにコントロールキーが入る環境だと、コントロールキーを単独で打っても認識できるようなのですが、入らない環境だと他のキーとセットで打った場合のみ第二引数のShiftにコントロールキーがはいるようです

321:デフォルトの名無しさん
24/01/04 09:51:48.22 8ldacu+2.net
ノートPCに外付けのキーボード接続すれば、自宅PCと同じ動作するかもね
確かにノートPCのキー・アサインはメーカーに依っても製造時期に依っても様々

322:デフォルトの名無しさん
24/01/04 15:37:18.98 e9Yi6W7+.net
素直にWindowsアプリを作ればいいのにな

323:デフォルトの名無しさん
24/01/04 16:26:45.35 t9OXoE69.net
>>318
わたしが素直でないと申すか?
糞!

324:デフォルトの名無しさん
24/01/04 17:31:34.88 e9Yi6W7+.net
ハードウェアの割り込み、OSのメッセージをExcel経由で得るというのは素直じゃない。

325:デフォルトの名無しさん
24/01/04 17:35:33.92 t9OXoE69.net
>>320
糞!糞!糞!

326:デフォルトの名無しさん
24/01/04 19:08:52.50 e9Yi6W7+.net
Pythonについてはどう思ってんのかな?

327:デフォルトの名無しさん
24/01/04 19:31:16.02 t9OXoE69.net
>>322
もう糞(ふん)をして寝るわ

328:デフォルトの名無しさん
24/01/04 19:44:33.23 zwj60hXG.net
5×5のセル内をソートして、左上が最大値でそこから昇順に右下が最小値にして数値を入れ替えるマクロって作れますか?

329:デフォルトの名無しさん
24/01/04 20:28:44.78 e9Yi6W7+.net
>>324
そんな課題を出す学校があるのか
なぜできないと思うのかな?

330:デフォルトの名無しさん
24/01/04 20:48:12.58 epENqCjo.net
Excelのバージョンわからないけど、そういうのは今はマクロでなくてシート関数で出来るレベル。

331:デフォルトの名無しさん
24/01/04 21:30:12.87 TL+QpeJQ.net
最大値から昇順は全データが同一の時のみ可能なので、初期状態で必ず昇順になっている
マクロも関数もまったく必要ない

332:デフォルトの名無しさん
24/01/04 21:44:11.20 reskTtOH.net
>>324
馬鹿は帰れ

333:デフォルトの名無しさん
24/01/04 21:58:19.60 vv8992PB.net
>>324
昇順だと最大値より大きな値はないんじゃね

334:デフォルトの名無しさん
24/01/04 22:52:57.73 8ldacu+2.net
A1:E5まですでに埋まっていると
それを一旦作業列にでもコピーして昇順に並べ替えると
並び終わった順に5つずつA1:E1、B1:E2、・・という行ごとに埋めてくカタチなのか
A1、B1、A2、C1、B2、A3、・・と、ハスに埋めてくカタチなのか
A1:A5、B1:B5、C1:C5、・・と、列ごとに埋めてくカタチなのか
いや、いずれにしろA1:E5を入れ替えるなら関数は無理だろ マクロやVBAでしかできない

335:デフォルトの名無しさん
24/01/04 23:18:36.18 44UH0tDv.net
>>278
たいぶ亀だけど、最初に言った通り参照設定やApplication.Runを使用します。
まずBook2で選択状態のセルを取得するメソッド(関数)やプロパティを標準モジュールで作成して、
Book1のモジュール内で宣言したCellsに上記の方法で呼び出したその戻り値を割り当てます。
ただし、そもそも他のブックを見ているときに選択状態というのを認識してくれるのか検証してないです。

336:デフォルトの名無しさん
24/01/05 11:28:46.79 OkMjEs1t.net
>>330
ありがとございます!
一度べつのセルに並べてから昇順にして元のセルに入れなおせばいいんですね!

337:デフォルトの名無しさん
24/01/07 14:25:39.45 Zu5udfiU.net
シートコピーとシート名変更について質問なのですが

アクティブシートの7個左にあるシートをコピーして
アクティブシートの右側にシート名を明日の日付(例:24年1月8日)にして貼り付け
という動きをさせたいんですがどうすればいいでしょうか?

338:デフォルトの名無しさん
24/01/07 14:34:54.50 BWXKnEg4.net
「マクロの記録」でやりたい操作をコードにしてみ

339:デフォルトの名無しさん
24/01/07 15:33:58.57 9MKsxzn1.net
>>334
おお…なるほど
君がやりたい操作はこういう事でしょ?と
操作してみて表示させればいいのか
ありがとうございますその発想はありませんでした

340:デフォルトの名無しさん
24/01/09 20:19:55.53 /NZC7p4w.net
ファイル移動をするのにNameで変数を使ってやりたいけどうまくできません

341:デフォルトの名無しさん
24/01/09 20:23:46.49 /NZC7p4w.net
>>336 の続き
Sub rename()
Name "C:\A\1.txt" As "C:\B\1.txt"
End Sub
だと移動できるけど
Sub rename()
Name Cells(1, 1) As Cells(2, 1)
End Sub
だとうまくいきません(A1 ←"C:\A\1.txt"、A2 ←"C:\B\1.txt")
書き方の問題ですか?それともNameで変数は使えませんか?

342:デフォルトの名無しさん
24/01/09 22:02:52.13 yOyd7K8a.net
>>337
うちの環境では動いたのでなんか見落としているのではないかな

343:デフォルトの名無しさん
24/01/09 22:31:05.76 g/zTW0/0.net
セル内の文字の頭にシングルクォーテーションがついてるとか。

344:デフォルトの名無しさん
24/01/10 00:45:29.03 QjRR+OtK.net
うまくいかないと主張するだけで絶対にエラーを書かないタイプ

345:デフォルトの名無しさん
24/01/10 11:25:08.02 sAzyr022.net
罫線についての質問です。
連続した任意の選択されたセル範囲
(例えばA1,A2,A3,B3,C3,D3のようなL字型)
に外枠の罫線を描きたいのですが、
どのようにすればよいでしょうか

346:デフォルトの名無しさん
24/01/10 11:32:15.87 Wf3Eae89.net
> 彼らはよく、社会に貢献したいと口にする。
> なんでも社会悪のネトウヨを自殺に追い込むことが、社会に貢献することなんだそうで。
> イジメや嫌がらせで社会に貢献できる教師や警官になるために、あえて帰化したんであって、祖国同胞を裏切ったわけではなく、心は●●人なんだそうだ。
> 
> 昔は帰化すると裏切り者と呼ばれたりしたが、祖国に国籍を残したまま帰化する方法が確立された現在では、社会に貢献するためにむしろ帰化することが推奨されている。
> 拳銃所持で前科のある生粋の反日家ですら、今では普通に帰化している。
> 
> ●●学会などはネトウヨ認定した日本人を盗撮して、痴漢の写真だと言ってばらまいている。
> それらの写真は、集団ストーカーに使用される。
> 彼らは集団ストーカーを、[地域で子供を守る安心安全パトロール]と称している。

347:デフォルトの名無しさん
24/01/10 13:52:33.52 QjRR+OtK.net
>>341
それはVBAに関係があるのか?

348:デフォルトの名無しさん
24/01/10 14:42:52.94 54SkLlBn.net
必要なセルをCtrlキーを押しながら選択し、L字型を形成
右クリック - セルの書式設定 - 罫線タブ - スタイルで線種を選んでから[外枠]ボタンを押す
想定していない余計な位置にも罫線が引かれるので、同様に不要なセルを選択し罫線タブから[なし]を使って消す
  2024年の方針 : おっちょこちょいに要注意(要らぬ低評価に繋がり兼ねない)

349:デフォルトの名無しさん
24/01/10 15:34:00.16 6PPGwb7s.net
>>343
VBAで実現する方法を聞いてるんだろ

350:338
24/01/10 16:34:51.12 sAzyr022.net
>>341です。
>>344さんありがとうございます。
>>345さんご指摘の通りVBAでの実装方法を探しています。
いまのところ
Application.Union("Add_
>>344さんありがとうございます。
>>345さんご指摘の通りVBAでの実装方法を探しています。
いまのところ
Application.Union("Additional_Address", Selection).Select
を繰り返して複数のセルを同時に選択するところまではできています。
一方で、例えばA1,A2,A3,B3,C3,D3の順にAdditional_Addressを指定すると
選択範囲がA1~A3の縦3連とB3~D3の横3連に分割されて選択されるため、
xlEdgeLeft等の処理が縦3連と横3連それぞれで実行されてしまう状況です。
こうなるのを
┌┐
││
│├─┐
└┴─┘
こうしたい
┌┐
││
│└─┐
└──┘
セルごとに隣接判定をして罫線を描く/描かないの処理を
するしかないのでしょうか

351:デフォルトの名無しさん
24/01/10 16:39:20.24 xiFTPfWu.net
>>346
そう、それしかない

352:338
24/01/10 18:00:56.27 sAzyr022.net
>>347さん
やはり愚直に処理するしかないのですね。
ありがとうございます。

353:デフォルトの名無しさん
24/01/10 18:06:26.38 54SkLlBn.net
A1:D3選択で範囲の外枠を描画 
B1:D2選択で範囲の左端・下端に枠線を引き 範囲の上端・右端の枠線を消す
の二段構えなら可能
描きたい枠線が上記だけじゃ無いだろうしL字だけとも限らないだろうけど創意工夫で

354:338
24/01/10 18:49:21.47 sAzyr022.net
>>349さん
ありがとうございます。
L字だけだったらこれもありですね。

今回は範囲が動的なので愚直にやろうと思います…

355:デフォルトの名無しさん
24/01/10 21:34:25.26 54SkLlBn.net
A1:A3外枠描いてからB3:D3の外枠左辺抜きのが楽だった
その他、右辺抜き、上辺・下辺それぞれ抜きのを、全枠と合わせて五つのマクロだけで
L字の左右反転でも上下反転でも、E字F字H字T字それぞれ上下左右反転だろうと対応できたわ

全周
 Sub all4()
Selection.BorderAround True
 End Sub
上辺抜き
 Sub nontop()
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous
Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous
Selection.Borders(xlEdgeRight).LineStyle = xlContinuous
 End Sub
下辺抜き
 Sub nonbottom()
Selection.Borders(xlEdgeTop).LineStyle = xlContinuous
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous
Selection.Borders(xlEdgeRight).LineStyle = xlContinuous
 End Sub
あと、左右は上下の真似してそれぞれxlNone するだけの、都合五つのマクロで自由自在
罫線の色とか種類を変えたいなら、それぞれに加工加えて

356:338
24/01/11 10:04:37.01 q0ONoHEN.net
>>351さん
ありがとうございます。
参考にします。

357:デフォルトの名無しさん
24/01/11 21:32:22.23 jLVdVVn1.net
>>351
そんなことするなら素直に
>セルごとに隣接判定をして罫線を描く/描かないの処理
を実装すればいいんじゃねえかと
Sub test()
Dim r As Range
Dim r2 As Range
Set r2 = Selection
For Each r In Selection
If Not isSelect(r, xlEdgeTop) Then r.Borders(xlEdgeTop).LineStyle = xlContinuous
If Not isSelect(r, xlEdgeBottom) Then r.Borders(xlEdgeBottom).LineStyle = xlContinuous
If Not isSelect(r, xlEdgeLeft) Then r.Borders(xlEdgeLeft).LineStyle = xlContinuous
If Not isSelect(r, xlEdgeRight) Then r.Borders(xlEdgeRight).LineStyle = xlContinuous
Next
End Sub
Function isSelect(testRange As Range, index As XlBordersIndex) As Boolean
On Error Resume Next
Dim r As Range
For Each r In Selection
Select Case index
Case xlEdgeTop
If r.Address = testRange.Offset(-1, 0).Address Then isSelect = True
Case xlEdgeBottom
If r.Address = testRange.Offset(1, 0).Address Then isSelect = True
Case xlEdgeLeft
If r.Address = testRange.Offset(0, -1).Address Then isSelect = True
Case xlEdgeRight
If r.Address = testRange.Offset(0, 1).Address Then isSelect = True
End Select
Next
End Function
こんな感じか。行数制限あるからやってるけど、1行If は推奨しないぞ

358:デフォルトの名無しさん
24/01/11 21:35:04.35 jLVdVVn1.net
ああ
Dim r2 As Range
Set r2 = Selection
の2行はいらん

359:デフォルトの名無しさん
24/01/12 11:23:51.46 Dgb3NVJl.net
>>353
さすがです

360:デフォルトの名無しさん
24/01/12 16:52:25.20 LICC/lNk.net
さすがだ。良い書き方してる

361:デフォルトの名無しさん
24/01/12 18:08:01.72 m3q3lwQ5.net
For i =1 to 500
Sheets("A").Cells(1,1)=i
Sheets(Array("A", "B", "C", "D", "E")).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\out.pdf"
next
というふうに、シートAのA1セルにiを入れたあと、複数シートを一つのpdfにすることを500回繰り返したいのですが、150回くらい行うと「この操作を完了するにはメモリが不足しています。扱うデータ量を減らすか、他のアプリケーションを終了してください。使用できる目盛りを増やすには、以下を検討してください。・64ビット版のMicrosoft Excelを使う。」というエラーが出ます
これを解消することはできないでしょうか?
ネットで検索してもSetしたものをNothingすればいいと書いてあるのですが、そもそもSetしてるものがないので‥


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch