1 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 08:42:15.37 ID:KskL7bEXd.net] !extend:checked:vvvvv:1000:512 ↑同じ内容を2行貼り付けるナリ ExcelのVBAに関する質問スレナリ コード書き込みや作成依頼もOKナリ ※前スレ Excel VBA 質問スレ Part70 https://mevius.5ch.net/test/read.cgi/tech/1616072923/ Excel VBA 質問スレ Part71 https://mevius.5ch.net/test/read.cgi/tech/1621914481/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
146 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 09:57:47.44 ID:23GKPsPl0.net] >>142 どうでもいいならレスしなきゃいいのにw 恥の上塗り乙
147 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 09:59:27.66 ID:fPwp7BhC0.net] >>144 そんなこと言われても実際そういう部署があるんだから仕方ない。
148 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 10:00:29.47 ID:fPwp7BhC0.net] >>145 ええ?! どう見ても構って欲しそうに見えるけど
149 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 10:02:45.86 ID:HNxIQkEL0.net] >>140 > 抽出項目が〜以上、〜以下とかが混じっている ちょっと勘違いしてたらゴメンやけど sumproductはダメなん?
150 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 10:04:38.74 ID:J+qL3RkUa.net] >>135 ひゃっほう、お墨付きを貰ったじゃあないか! vlookupも使えない人に合わせた環境にしてしまえ!
151 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 10:06:32.55 ID:fYc4Mg6UM.net] なろうで追放復讐系が流行る理由が今わかった
152 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 10:09:47.29 ID:fPwp7BhC0.net] >>148 あ、ありがとう。ただ今回は集約値を求めたい訳じゃなかったから・・・ SUMPRODUCT使って行のセルアドレスが求められる方法があるなら是非教えて欲しいけど、なんかごめんね。
153 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 10:18:07.62 ID:huXhCOx4d.net] >>150 来季公開予定 落ちこぼれ錬金術師が勇者パーティーから追い出された結果〜パーティー全員の装備が石器になりスライムにも勝てずに泣きついてきた〜
154 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 10:18:08.83 ID:23GKPsPl0.net] >>147 俺のことなんて関係なくね? おまえがどうでもいいと思ってるんだからお前がレスしなきゃいいだけでしょw アホなの?
155 名前:デフォルトの名無しさん [2021/07/20(火) 10:19:32.46 ID:J+qL3RkUa.net] >>152 勇者部じゃん!
156 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 10:22:06.71 ID:J+qL3RkUa.net] おっと途中送信 繰り返しながら、間違っても自分を過剰に責めないようにね 話から察するにパワハラ気質な感じがするけど、何言われても思い詰めないように
157 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 10:23:55.56 ID:fPwp7BhC0.net] >>153 あ、構って欲しいことは否定しないんだ。 仕方ないなぁw
158 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 10:28:54.92 ID:huXhCOx4d.net] >>155 諸々ありがとう パワハラ気質というか上司は「曖昧、気分屋、意見が変わる」の暖簾に腕押し系ですね 同僚は「無能、声がでかい、わがまま」という爆弾です
159 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 10:49:15.06 ID:23GKPsPl0.net] >>156 どうでもいいやと言いながらレスし続ける構ってちゃんw 俺は構ってちゃんじゃなくて暇だからアホをからかってるだけね
160 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 11:05:44.32 ID:fPwp7BhC0.net] >>158 暇なのか、いいなぁ 俺なんか作業の合間にちょこっと見て書き込む程度なのに。 そうか、コロナ禍で・・・ 早く仕事が見つかるといいな。
161 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 11:12:17.84 ID:23GKPsPl0.net] >>159 あれ、どうでもいいんじゃないのか?w 構ってちゃん乙 ごめんね、ゆるい職場で在宅だからアホをからかうぐらいの余裕はあるんだわ そういう意味ではコロナ禍で余裕ができたってことだけどね
162 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 11:32:48.71 ID:fPwp7BhC0.net] >>160 いいなぁユルい職場。 こっちもテレワークだけど あれやこれやと全然違う言語で出来ている ソースの解析やお客さんとの打ち合わせやら 要件定義や仕様書の作成のついでに 見積もり計算したり全然楽じゃないわ まぁ貰うもん貰ってるからいいけど。
163 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 11:39:17.55 ID:23GKPsPl0.net] また自分語りw 構ってちゃん乙
164 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 12:35:19.71 ID:fPwp7BhC0.net] >>162 済まないな これから暫く会議に入るから構ってあげることが出来ないんだ。
165 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 13:14:58.69 ID:G/3BEDmGM.net] if分岐の落とし込み条件の 立て方も割とセンス問われるな
166 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 13:20:16.21 ID:23GKPsPl0.net] 誰も構ってほしいなんて言ってないし会議とか知らんがな てか、どうでもいいとか言う割には会議終わったらレスする気満々やんw
167 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 23:08:44.98 ID:AR5Y5d6n0.net] 数十時間仕事削減して他人の十倍の仕事をこなしてなおかつ残業代減らしたら、相応とは行かなくても少しは金くれてもいいのに 現実はもらえる金額が減るだけ 時給制ってなんなんだろうね
168 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 23:17:10.09 ID:Ru+CBH4c0.net] それは上司と交渉しなよ
169 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 23:42:52.69 ID:AR5Y5d6n0.net] 上司に相談とかじゃなくて そもそも時給制って欠陥制度じゃないの そのまま適用すると関数すら知らない無能のほうがもらえる額大きくなるじゃん
170 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 23:45:05.72 ID:Ru+CBH4c0.net] 出来高制・歩合制にすると、他人に仕事を振りまくるアホが評価されるって事にもなりかねない 多分、万人が納得行く給与形態ってないと思うぞ
171 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 23:46:48.13 ID:AR5Y5d6n0.net] 他人に仕事を押し付けた時点でそのアホの成果じゃなくなるのではって思うけど
172 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 23:48:51.79 ID:Ru+CBH4c0.net] 現実はそうじゃないんだ、これが
173 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 23:49:34.84 ID:AR5Y5d6n0.net] 残念な現実だが 逆に何らかの方法を使って その欠点さえ潰してしまえば 問題なくなるのでは
174 名前:デフォルトの名無しさん [2021/07/21(水) 00:14:04.67 ID:aeI9FN9A0.net] >>166 こういう馬鹿には維持運営コストなんて理解できない
175 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 00:45:57.02 ID:R2O/L51xM.net] 維持コストが必要な、長期や大規模な案件に関わったことがないだけでしょうね
176 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 03:38:08.86 ID:1PajC+dW0.net] VBA の年収が高いのは、爺が長時間掛けるから。 高品質じゃない YouTube で有名な、雑食系エンジニア・KENTA も言ってる。 Perl の年収が高いのは、爺ばっかりだから 逆に、Ruby が低年収なのは、若い新人が多いから 一方、米国では1,300万円とか、Rails が最高。 それは、Shopify, Airbnb, Github など、時価総額1〜10兆円みたいな巨大企業が多いから それを抜いたのが、AWS Solution Architect の1,400万円とか だから基本は、AWS, Rails の組み合わせ。 まあ、Heroku でも良いけど
177 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 07:07:30.37 ID:yiB8qF1G0.net] >>173 運営コストとどれだけタスクこなしても給料上がらないっていう時給制の欠陥にどんな関連があるのかな ふわふわしたレスだとちょっと突っ込まれたらすぐ破綻するよ
178 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 08:12:27.27 ID:ks8UjWc90.net] >>175 つまりRubyは日本ではプログラマーとして寿命が短い言語ってこと。 EXCEL VBAはEXCEL用の言語という特性上、こじんまり纏まってるものが多く、業務を把握し易いからSE兼プログラマーとして生き残ることが多いんだよ。 だからその分年収も多く貰えてるし、じじいになっても続けていられる。 一方Rubyは、以前10年選手が始めて1年の人に抜かれるとか言ってたよね?つまり10年後には自分の持ってる知識が古くなって使いものにならなくなるということ。そしてSEにもなれないから年収も低い。 そのKENTAという人も結局Youtuberとして稼いでいるみたいだし、ちゃんと食べているのかどうか分からないくらいガリガリに痩せているところを見ると、Rubyという言語を選択した悲惨さを見せつけられているようだよね。
179 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 08:31:01.69 ID:PRswykqGM.net] また自演か…
180 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 08:46:26.76 ID:PTHYzAgOa.net] 「馬鹿」と「Ruby」をNGにしておけばいいよ
181 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 10:38:13.01 ID:Xp6tDYdm0.net] 爺爺てあるけど、定年した60代70代のジジババがバリバリプログラミングしているイメージが沸かないのだが??
182 名前:デフォルトの名無しさん [2021/07/21(水) 12:34:03.21 ID:DbniEar00.net] 現時点での60代70代でバリバリプログラミングなら 彼らの若い頃は相当早い段階でPCに触れてるはずで 普通に考えるとそういうのは今の50代から始まるレベル
183 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 12:35:15.43 ID:7bjPAr220.net] 勤務時間きにして言われたことやるだけの人と、そういう部下を管理する立場にある人では収入が全然違うのだよ
184 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 12:40:16.73 ID:WQLnW4DkM.net] 管理や経営を任されてる人はむしろプログラミングできない ただし年収はずっと高い
185 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 13:35:03.57 ID:Vvnc0tffM.net] ブラウザ変えることすらやめて 雑な自演
186 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 19:05:29.80 ID:Xp6tDYdm0.net] >>181 VBAの田中氏とかあの辺は本当に早かったんでしょうね あの辺の年代でバリバリできる人は少ないイメージです。
187 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 21:51:33.71 ID:obu1vRlw0.net] はーい、正義を振りかざすみなさんおはようございまーす!
188 名前:デフォルトの名無しさん [2021/07/21(水) 22:40:53.10 ID:aeI9FN9A0.net] >>176 じゃあ、VBAのプログラムだけで稼いでみろ 特定の一部分の仕事ができたから自分が全部において優れているとでも思うのか? お前みたいな自己満足素人が作った代物なんてどうでもいいウンコにしか過ぎない
189 名前:175 mailto:sage [2021/07/21(水) 22:46:42.27 ID:1PajC+dW0.net] プログラミングできない爺の方が、 プログラミングできる若い人よりも、年収が高い そういう爺が、VBA をやっているから、VBAの年収が高くなるだけ 爺はプログラミングが分からないから、 プログラマーを雇わないで、VBAだけを続ける 爺は脳ミソが少なくなっているから、新しいものを受け付けず、VBAを続けるしかできない だから、実際にプログラマーを募集すると、 VBAは、Rubyよりも低価格になる VBAの方が生産性が低いし、システムを作れないから
190 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 23:36:35.72 ID:ks8UjWc90.net] >>188 >だから、実際にプログラマーを募集すると、 >VBAは、Rubyよりも低価格になる もちろんソースが有って言ってるんだよね?
191 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 00:05:36.40 ID:Zjb3Hzgj0.net] >>187 まあまあ、そんなに熱くならないで。 働いて効率上げても時給制だし賃金が上がらないというのは分からないでもないけど 実際、VBAで雇われると言うことはVBAでツールが作れたり効率化が出来ることが前提で雇われているんだから仕方ないよ。 もっとも、VBAが出来ないこと前提で雇われているとしたらそこまで求められている作業ではないと言うことだよ。 別に俺はVBAだけやってるわけじゃないけど VBAだけで稼げって言われたら多分可能だと思うよ というか結構VBAを生業にしている人多いんじゃないかな。 ま、最悪別の方法を考えてみなよ。 もしRubyみたいにやっすい給料でこき使われて嫌だと言うなら他の言語も勉強して他に進むか あるいは自分の下に何人か後輩くっつけてもらって面倒見るから給料上げて貰うよう交渉してみるとか。 色々な方向からアプローチした方がよりいい方向にもって行けると思うよ。
192 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 00:28:32.64 ID:GcDkMVX50.net] みんながvbaを覚える vba講師に対する講師手当rを払う コレがいいのえはかな
193 名前:175 mailto:sage [2021/07/22(木) 00:44:48.54 ID:kFdJ5CFB0.net] 雑食系エンジニア・KENTA、2021/6 Web系エンジニアは結局どの技術を専門にすると得なのか? /転職ドラフトのグラフから考えてみました www.youtube.com/watch?v=CnYSQFiDn_c 転職ドラフトでは、Ruby on Rails, Docker, AWS は600万円ぐらい 米国年収では、Railsが、1,300万円。 AWS Solution Architect が、1,400万円とか Node.js の900万円を、ぶっちぎっている。 ただし、Railsの求人数は、Node.jsの半分しかない これは、Shopify, Airbnb, Github など、 時価総額1〜10兆円みたいな巨大企業が、Railsだから年収が高いのかも
194 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 00:51:00.68 ID:Zjb3Hzgj0.net] >>192 やっすい やっすい やっすいわー Rubyは年収最低です!! https://i.imgur.com/wmgg1wt.jpg
195 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 01:22:02.79 ID:UXqg7Sav0.net] 普通の会社だとVBAくらいしか使えない
196 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 04:49:08.13 ID:hDLG98Tl0.net] じゃあそれ以外の言語を扱っている会社は異常な会社なんだな
197 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 05:47:11.72 ID:Ad01T7Fb0.net] >>190 実際時給制だから関数すら勉強しない効率最悪のクソゴミが 僕はありのままでいいんだと言う結論でノロノロ亀のように仕事してるんだと思うよ これが成果制になってみろ なんなら成果制と時給制のハイブリッドでもいいけど みんないやいやながらも勉強しだすと思うんだわ だってノロノロ動いてたらちっともお金貰えないだろ 一部の人間に寄生する状態も緩和され負担も分散されると思うんだ
198 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 08:16:33.96 ID:Zjb3Hzgj0.net] >>196 うーん、 よく分からないんだけどノルマとかはないの? 大概のところは案件があって、大体このくらいの規模だからスケジュール的に1日このくらいの作業、で、予備しろ見てこのくらい、とかあるもんだけど。 そういう形態ならオンスケなら正直残った時間は何やっててもいいと思うよ。まぁチームでやっているなら誰かの尻拭いをさせられることもあるかもだけど、 そこは仲間なんだからある程度寛大に考えた方がいいよ。あまりにも酷い人はその内いなくなるし。 今はある意味コロナ禍でテレワークのところが多いから、そういう時間が有ったらまさにボーナスタイムなんだよ。 本当は自分の時間を売ってお金を貰ってる訳だからこんなこと言っちゃいけないんだけど、 相手から何やってるか見えないからオンスケならもう他の言語勉強しようが、ツール部品化してスケルトン作っといて新しいツール作る際に使えるようにして更に自由な時間を作ろうが、試したいことが有ったら仕事そっちのけでそっちをやろうがやりたい放題。資格取得の勉強とかもいいかもね。 ま、他の人達が楽してるのに何で俺だけ、ってのは理解出来ないでもないけど、そこで「じゃ、どうするか」って考えた方が幸せになれると思うよ。 まぁそんな偉そうなこと言えるほど俺も仕事こなしている訳じゃないんだけどね。
199 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 08:33:48.65 ID:dO45NyhqM.net] 誰でも出来る簡単な仕事がたくさんあって、終わったら次の作業を割り当てられる 早く終わらせると仕事が増える ゆっくりやっても給料は同じ
200 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 08:44:07.85 ID:+pan6CfvM.net] 割り当てられた仕事ってまるで派遣やバイトの感覚だな
201 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 08:44:26.94 ID:Zjb3Hzgj0.net] >>198 ふーん。ノルマもスケジュールもないVBAのお仕事って珍しいかもね。少なくとも俺は見たことないな。 ならとりあえず今日はここまでって自分でノルマ決めて、後は自分の時間に回せばいいと思うよ。 テレワークじゃないの?
202 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 08:45:39.76 ID:IVGumB3tM.net] 文句があるなら業務改善自体が成果として評価されるようなポジションに着けばいい その手の職はDXがバズってるせいで圧倒的売り手市場だぞ それができないならその程度の能力なんだろ
203 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 09:00:26.54 ID:Ad01T7Fb0.net] えっそのポジションに付かないと成果物10分の1で勉強もしない隣の怠け者に文句いっちゃいけないの? なんならそのポジションがない職場だったら転職しないといけないわけ? クレイジーすぎんかお前の頭 クソ映画に文句あるなら映画作れる立場になれってか
204 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 09:01:49.47 ID:Ad01T7Fb0.net] そしてそういう詭弁を発する人間は大概が激まず料理作って客から文句言われて じゃあお前が作れとかほざくレベルの料理人だったりするけど
205 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 09:22:39.84 ID:IVGumB3tM.net] 転職すりゃいいだろ? 本当に他人の10倍仕事できるなら転職先なんて一瞬で決まるだろうし余裕で収入上がるよ
206 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 09:46:23.87 ID:Ad01T7Fb0.net] じゃあ仮に俺が今すぐ転職したとしようか はい転職しました これで前の職場の文句言っていいね?詭弁マスターさん
207 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 09:58:04.44 ID:IVGumB3tM.net] いいんじゃね? 嘘なら自分が惨めなだけだし、転職して満足したらこんなとこで文句垂れようとは思わなくなるだろうね 簡単かつ確実なソリューションは目の前にある
208 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 10:03:54.39 ID:Ad01T7Fb0.net] 今の環境に満足したら過去の愚痴は出さなくなるものなの? もう辻褄合わせしようとして目茶苦茶だな しかも文句言っていいと言いながら 封じ込めようとする気満々のレス
209 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 10:12:42.83 ID:Zjb3Hzgj0.net] >>207 いや、煽り抜きで本気で辞めること考えた方が良いかもよ。俺だったら正直そんなIT業界のくせにブルーカラーっぽいとこ嫌だもん。IT土方とは言うけどさ。
210 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 10:16:29.34 ID:D0vIpPHf0.net] >>207 グダグダここで言っても何の進展も無い 上司に言う さらにその上に言う 転職する 諦めて余った時間は仕事してるふりする 好きなようにしろ
211 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 10:22:14.34 ID:Ad01T7Fb0.net] まあそもそも進展云々以前にスレチだからここに書きなぐるのは適当ではないけどな スレチだと言うなら分かるよ 便所の落書きの5chに進展がないから書くなってのは違うわ
212 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 11:05:32.81 ID:D0vIpPHf0.net] 書くなとは言ってないし しかも進展無い事もスレチな事もわかった上でやってるとは まずはそういう所を治さないとな
213 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 12:36:44.43 ID:hDLG98Tl0.net] おまいら話脱線しすぎ VBAの話しようぜ
214 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 12:58:20.74 ID:Ad01T7Fb0.net] >>211 言っとくけどスレチなのはお前もだぞ あと上のやつは書いていいと言ってる割に理論武装で 実質書くなって言ってるのと同じだぞ 何回同じこと言わせるの あとなんで他人のレスかばってるん どうせルビールヒー喚いてるやつの自演なんだろうけど
215 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 13:57:31.23 ID:OYfHgIcU0.net] おまえらIT業界の最前線でVBAマクロ作るのが仕事? 俺んとこは多数ある業務の中のデータ管理部分のほんの一部でしか使ってないぞ それで利益が出るとかすげー会社だな
216 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 14:03:57.52 ID:D0vIpPHf0.net] >>213 被害妄想 自演の方が都合がいいならそう思ってスルーでいいのでは?
217 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 14:31:29.66 ID:Ad01T7Fb0.net] >>215 よく見たらお前マジで上で自演してたのなkbnc
218 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 14:49:20.00 ID:hDLG98Tl0.net] >>214 それが普通だよね ここの人達はいったい何者なんだろ? VBAやるのが仕事??
219 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 15:24:59.48 ID:04ABr3MxM.net] ITエンジニアだけどVBAは自分の作業のために稀に使うくらいだな 個人的にはExcel自体極力使いたくなくて、だいたいGoogleスプレットシートやGASで済ませてる さすがに仕事の成果物としてVBAを作ることはないし、そんな仕事は絶対に受けない
220 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 15:38:56.08 ID:ERrrf0sq0.net] >>217 週イチで幹部向けにレポート作る時に使ってる わがまま幹部はこういうデータは見れないのか?とか時々賜るのでVBAでサクッと変更できないと辛い まあ流石にメインの業務じゃないけどそれなりに工数かけてる
221 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 15:40:33.29 ID:D0vIpPHf0.net] >>216 仕組み知らずに言ってる?
222 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 15:47:05.91 ID:3SY8hR+ma.net] >>219 具体的にどんなプログラム? いまいち想像つかんから教えてくれるとありがたい
223 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 15:50:01.36 ID:kGBn2Fi6d.net] VBA使いって、エンジニアというか一般事務職が多いとう印象なんだけど 実際どうなんだろうか? 自分は総務だ pythonとC#も一応使えるけど開発環境はもちろんなく、余りつかわないので忘れつつある google colaboratoryなんぞ使おうものなら情シスに怒られる
224 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 15:51:08.27 ID:ERrrf0sq0.net] >>221 詳細は書けないけどOracleに繋いで業績関係の各種データを取得して一覧表やグラフを作ってる 本来BIでやるような仕事なんだけど社内で使ってるBIが融通効かなくてやむを得ずVBAって感じ
225 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 16:28:44.02 ID:3SY8hR+ma.net] >>223 普段そういうデータは扱わんからよくわからんけど自作BIみたいな感じってことね
226 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 17:03:50.30 ID:v5pUtFRI0.net] >>218 Excel使いたくないのに、わざわざVBA使うの?しかもVBAのスレまで確認してるし 言ってることが支離滅裂で草
227 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 18:28:02.97 ID:Zjb3Hzgj0.net] 確かに Googleスプレッドシート使っててEXCEL VBAのスレに来ているとか訳分からんね それならWeb版EXCELをJavascriptで操作すると思うけど。
228 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 21:52:26.63 ID:Zjb3Hzgj0.net] >>219 分かる こっちも新規で作るシステムのモックアップはユーザーさんに説明しつつこんな感じって見せるためにVBAで作ることがある。 ユーザーさんへの説明用、データ整合性の調査、UTで使う検証用等大体ひとシステム作るのに作るVBAのツールは少なくとも5〜10くらいは作るか。 なんと言ってもすぐにちゃちゃっと作れるので便利。恐らくどの言語でどんなシステム作ることになってもVBAは使い続けると思う。 単純なものならHTMLやXML、XAML、JSONとかの自動生成させるときもVBAでちょろっと作れば結構楽だし。
229 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 22:29:39.31 ID:GcDkMVX50.net] >>214 中小企業の経理 vbaで事務の仕事を軽減させるのが仕事 勢い余ってvbaプログラマーになろうとしたが、 常駐+リモート無し+保守がメイン、となんの面白みもなさそうなので辞めた >>222 ほぼ一般事務だろう。Excelの数式だけで手を出せないところをなんとかするのがvbaの本来の役割だと思う
230 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 22:33:08.33 ID:GcDkMVX50.net] 成果物は・・・ ・ローカルサーバーの複数あるファイルを1つにまとめる(今はスプレッドシートに移行したけど) ・印刷関係。位置調整などの面倒な処理を自動化してやや強引に解決 ・ファイルの一括リネーム 後細かいところだと、保存するときにA1セルに合わせるだの あいまい検索だのと色々作って来たな
231 名前:デフォルトの名無しさん [2021/07/23(金) 00:59:11.79 ID:kQCkUm+T0.net] ただの便利屋レベルの馬鹿が自慢するスレ
232 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 01:12:54.32 ID:6EC+HAIC0.net] プログラミングできるかも怪しいレベルの奴がわざわざVBAスレに来て他言語の単語ちらつかせてマウント取るだけのスレになっちゃったな
233 名前:デフォルトの名無しさん [2021/07/23(金) 01:33:49.14 ID:hmMDCbjQ0.net] あわしろ氏はMS言語を使うなと強く警告してる。 ベンダーロックインされるからだ。
234 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 01:45:39.50 ID:RENIENTyd.net] >>232 そんなもんどの言語でも同じだろうに コンパイラメーカーが提供する便利なライブラリを否定したら生産性がめちゃくちゃ下がるんだが、そのコストを負担できるやつだけ開発環境に依存しないコードを書いてればいい
235 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 01:59:29.68 ID:O08XUcmBp.net] >>231 VBAなんて一番何かのついでに使われる言語に一々他言語の話が出たからってビビってマウントマウント言ってんじゃねーぞ そんなんだからRuby信者みたいのにVBAやってる奴は年寄りばっかで質が低いとかナメられてんじゃねーか ちったぁ勉強して自分のプログラムの質向上させるか引退するかしろマウントじじい
236 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 02:12:02.15 ID:6EC+HAIC0.net] どんだけ図星だったのかよく分かるわ めちゃくちゃ切れてるね
237 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 02:14:14.08 ID:YWrx4TzV0.net] >>232 あわしろってやつは1つしか言語を覚えられないアホなのか?
238 名前:デフォルトの名無しさん [2021/07/23(金) 03:11:59.70 ID:hmMDCbjQ0.net] アホはお前だろ。
239 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 05:00:40.50 ID:UnN9imMp0.net] >>230 そう、超絶便利道具なんだよ 唯一共有だけが苦手でvbaで補佐する必要があったけど、 今はgoogleスプレッドシートが出てそれもいらなくなった ただGASは記述が長い+ローカルみたいになんでもかんでもサクサク書けないのがネック
240 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 07:01:57.03 ID:O08XUcmBp.net] >>235 当たり前だろ お前みたいのがいるから勉強している連中まで「VBAはじじいばっかの程度の低い奴がやってる言語」ってレッテルが貼られてんじゃねーか しかも少しでも新しい知識の話が出るとマウントマウント言って煽る、まるで親中の二階議員みたいなもんだ こういう奴は若い人達が育つ阻害になるからとっとと退場して貰った方がいい
241 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 07:41:09.26 ID:U6L8J7vD0.net] VBAスレでベンダーロックインガーって… アホすぎるw
242 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 08:27:04.99 ID:BjmNFMBr0.net] MacOSにもEXCELあるし、LinuxにはLibreOfficeがあるからセーフ
243 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 09:06:50.09 ID:0OT6Oc+G0.net] 偏見かもだけど、一般事務でVBA組む人とか意識高い系なイメージある 良くも悪くも
244 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 09:32:27.40 ID:UfMW6obzd.net] LibreOfficeは開発グループが音楽性の違いで仲間割れしてなかった? ボランティアが作ってる無料アプリはなんか安心できないわ
245 名前:デフォルトの名無しさん [2021/07/23(金) 09:35:24.46 ID:tlDGLlPeF.net] 棲む世界が変わると価値観も変わる 一般事務:VBA組む人とか意識高い系なイメージ ム板:VBA組む人とか情弱で迷惑なイメージ
246 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 10:03:23.76 ID:edKd2fFf0.net] VBAが出来ると一般事務の中でも少数派に慣れるもんな 周りからの目も多少は変わる
247 名前:デフォルトの名無しさん [2021/07/23(金) 10:09:09.73 ID:AJoL/ZyK0.net] https://m-kenomemo.com/excel-html-rakuten/ VBAで通販サイトの検索結果を取得してエクセルに取り込む ていうのを自分もやってみたいんだけど 対応ブラウザはIEのみらしい。 今だとIEでは開けないサイトもありますよね。。 そういうサイトでも正しい結果を取得できるんでしょうか。 出来ない場合、他に手軽に出来る言語があれば教えてください。 >>242 システム部から左遷されて仕方なくやってます
248 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 10:18:01.22 ID:R7pgXCyzd.net] >>246 自分の趣味でやるんなら、色々なブラウザに対応したライブラリがネットで公開されてる VBAでも可能だし、ほかの言語でもブラウザをコントロールする手間は大差ない 仕事でやるんならターゲットは特定のサイトに限られるだろうから、それぞれに合った方法を考える データを有料で購入できる場合もある
249 名前:デフォルトの名無しさん [2021/07/23(金) 10:28:27.48 ID:ILxB/kjYH.net] もはやググってナンボになってるよな 経験年数あっても新しいものに素早く対応してる奴がマウント取る時代
250 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 10:45:41.76 ID:4E2FuVQL0.net] まず新しい情報にマウント取らないとな isoイメージにマウント的な意味で
251 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 10:45:48.04 ID:viLDAAxBd.net] ネット環境とマシンパワーの向上で、仕事の99%はぐぐってコピペでだいたい片付くようになった それに世の中全体では人材も余ってるから、能率が悪くても人とパソコンを増やせばなんとかなってしまう 特別な技術や経験が活かせる状況なんて滅多にない だから年寄りはいつもイライラしている
252 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 10:53:20.49 ID:6EC+HAIC0.net] >>239 わかるわかる。何もできない無能だから具体的にやった事を語るんじゃなくてふわふわしたレスと横文字ちらつかせるしかないんだよな 大学自慢IQ自慢と同じ類
253 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 12:37:44.91 ID:VmhXEPpsM.net] どっちがどうとかどうでもええがな この先またいくらでも新しいのが でてくるわな 暗算でなんでもやってのけた アインシュタインからすれば なんでもやったらええやんて話よ 電卓もパソコンも一緒よ
254 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 12:39:08.22 ID:O08XUcmBp.net] >>251 わかるわかる 年齢だけ無駄に重ねて何も出来ないから 何か新しいことが身近にくると 「ヒィィ〜マウントマウント〜」って 必死に自分を保守しようとするマウントじじい Web版EXCELが主体になったら 淘汰される第一候補ね
255 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 12:53:37.65 ID:nwHRbNhCM.net] 5chはジジイの巣窟ですよ。 子供は他所で遊んだ方が良いですよ。
256 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 12:54:24.58 ID:UnN9imMp0.net] >>246 chromeの拡張機能で「スクレイピング」などで検索すれば見つかると思う 最強に汎用的なのはjsを書いて、コンソールに叩きつける方法 jsをExcelで書けば色々と力技で書ける
257 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 13:53:45.21 ID:UhJHVqU00.net] >>255 最後の1行をもう少し具体的に解説お願いします VBAのモジュール内にjsを書いてそれをchromeで実行?どうやって?
258 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 13:57:33.09 ID:Nx0yKcVz0.net] >>246 スクレイピング・ブラウザの自動操作なら、 Ruby, Selenium Webdriver, Nokogiri 例えば、ブラウザで、ユーザー名・パスワードを自動入力して、 Yahoo にログインするなら、 require "selenium-webdriver" options = Selenium::WebDriver::Chrome::Options.new options.add_option( :detach, true ) # ブラウザを切り離す options.add_argument( '--start-maximized' ) # 画面最大 driver = Selenium::WebDriver.for :chrome, options: options driver.manage.timeouts.implicit_wait = 10 # default timeout driver.navigate.to "https://login.yahoo.co.jp/config/login_verify2?.src=ym" # ログイン画面 element = driver.find_element(:id => "username") element.send_key "ユーザー名" # 入力 driver.find_element(:id => "btnNext").click # ボタンをクリック element = driver.find_element(:id => "passwd") element.send_key "パスワード" # 入力 driver.find_element(:id => "btnSubmit").click # ボタンをクリック
259 名前:デフォルトの名無しさん [2021/07/23(金) 15:32:55.87 ID:kQCkUm+T0.net] >>257 死ね
260 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 17:24:51.45 ID:0OT6Oc+G0.net] 親切心が時にはあだとなるってか
261 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 17:40:46.58 ID:0F3dOXrPa.net] >>246 それどんなブラック企業だよ
262 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 17:53:28.60 ID:6EC+HAIC0.net] >>253 極端に語彙が少ないですよおじいちゃん 何回同じ単語使ってるの
263 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 18:00:27.15 ID:6EC+HAIC0.net] 中身スカスカで単に横文字繋げただけのレスと まじで勉強してるんだな凄いなって思うレスあるけど お前は前者のレスしかできないんだろうね
264 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 18:00:29.25 ID:Ukvk95sKp.net] マウントじじいみたいに不勉強の年寄りだと分からないだろうけどそういうのをボキャブラリーが貧困しているというんだよ
265 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 18:04:18.69 ID:6EC+HAIC0.net] えっ…? 語彙もボキャブラリーも同じ意味なんだが…
266 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 18:18:37.17 ID:Ukvk95sKp.net] >>264 何でも漢字で書けばいいというものではないのだよ 一般的に使う場合、仕事で使う場合等 色々その場でしっくりくる言葉を使わなければならない。 マウントじじいみたいに1、2を壱、弐とは書かないのだよ
267 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 18:21:02.29 ID:6EC+HAIC0.net] まじでマウントしか頭にないんだな…
268 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 18:31:27.54 ID:0OT6Oc+G0.net] みんながなかなか知らないような知識を披露するのが5ちゃんだから
269 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 18:39:24.65 ID:MVJXgcySa.net] 変数をmyで始める人いるのはなんで?
270 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 18:55:13.65 ID:ysJoCm5j0.net] マウントだろ
271 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 19:01:18.16 ID:Ukvk95sKp.net] >>268 VB.NetやC#ではMeは自分自身のインスタンスを、Myは自分自身のクラスや自分の親クラスを指したりするときに使われるから .Net使ってた人がそういう使い方をVBAに持ち込んだか、あるいはそのひとつ前のVBAと殆ど内容が一緒のVB6辺りでそういった概念が生まれたかじゃない? 本当のところは知らんからVBAに特化して詳しいであろうマウントじじいに聞いてみたらどうだろうか。
272 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 19:24:56.06 ID:LPvoeoMA0.net] また論点で語れないからって無理にレスして墓穴掘ってる 終活かな
273 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 19:42:04.51 ID:YVQ7mZCGa.net] >>268 逆にmyではじめない人もいるよ
274 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 22:13:15.34 ID:0OT6Oc+G0.net] Excelのオリンピックとかあったら良いと思うのにな 昔にそんなコンテスト的なのあった記憶あるけどね。
275 名前:デフォルトの名無しさん mailto:sage [2021/07/23(金) 22:30:42.85 ID:UnN9imMp0.net] 競技Excelあるよ https://www.gamespark.jp/article/2021/06/08/109325.html
276 名前:デフォルトの名無しさん mailto:sage [2021/07/24(土) 06:15:52.05 ID:EnTkrUGbM.net] 太古のvb6.0時代の話は始めるわ 他人への回答にもいちいちマウント挟むわで まさにマウントじじいだな
277 名前:デフォルトの名無しさん mailto:sage [2021/07/24(土) 06:41:29.02 ID:2JBUuae4p.net] お前も同じだよ 昨日からマウントマウント馬鹿じゃねーの
278 名前:デフォルトの名無しさん mailto:sage [2021/07/24(土) 06:43:48.66 ID:QPc8eVYX0.net] たしかに。若い連中に教えてやる感が凄いと感じた 「俺は40年やっているんだぞ!」的なジジババって感じの。
279 名前:デフォルトの名無しさん mailto:sage [2021/07/24(土) 06:47:59.46 ID:p3oOScBd0.net] どこが同じなん 太鼓の6.0の話なんて始めてませんし他人に対してのレスに嫌味ったらしいマウントなんて混ぜてるのはお前だけですが それ以前にお前がマウントマウントうるさく反応しなきゃとっくに終わってた話だぞ
280 名前:デフォルトの名無しさん mailto:sage [2021/07/24(土) 08:28:50.45 ID:2JBUuae4p.net] >>278 はぁ?何を訳の分からないこと言ってるの?キチガイ?
281 名前:まあ俺が言うのもなんだがw mailto:sage [2021/07/24(土) 08:45:32.95 ID:k0+oky67M.net] >>278 > どこが同じなん 質問スレで迷惑なところ
282 名前:デフォルトの名無しさん [2021/07/24(土) 12:22:34.23 ID:fhiAWG+La.net] なんぼ書いても自己満足すらできないでしょーに、非建設的すぎてお話にならない あるいは誰かが「あなたの仰る通りです、私が間違っていました〜」とか言ってくれるのを期待してるのかしら?
283 名前:デフォルトの名無しさん mailto:sage [2021/07/24(土) 13:10:27.80 ID:An8LTvXg0.net] >>279 高齢期障害で自分でも何言ってるか分かってないんだよ
284 名前:デフォルトの名無しさん mailto:sage [2021/07/24(土) 18:16:14.45 ID:rbd7pVk50.net] よーしよしよし、いーぞー もっと喧嘩して荒れまくれ〜 喧嘩で荒れまくるこそ5ちゃんの伝統だ
285 名前:デフォルトの名無しさん [2021/07/24(土) 19:41:14.38 ID:XmkVsjH60.net] ベンダーロックインを避けよ!
286 名前:デフォルトの名無しさん mailto:sage [2021/07/25(日) 13:40:49.03 ID:ZO7UEuRg0.net] ExcelVBAはその時代背景から鑑みてハンガリー記法(ハンガリアン記法)を採用すべきである
287 名前:デフォルトの名無しさん mailto:sage [2021/07/26(月) 22:11:25.80 ID:5kY33e3Ed.net] 前スレ848です ついに進展がありました 作業が発生しましたが同僚はマクロを使わせろと発狂 「属人化がこわいですからね。マニュアルどうぞ
288 名前:デフォルトの名無しさん [2021/07/26(月) 22:20:39.53 ID:gN3ZysYn0.net] Application.DisplayAlerts = False でメッセージ非表示にしていますが、 「このブックには、ほかのデータソースへのリンクが含まれています」 のメッセージが出てしまいます。 更新するかしないか選ばないといけないから出てしまうのでしょうか。 勝手に「更新しない」を選んで処理を進行させる方法はありますか。
289 名前:デフォルトの名無しさん mailto:sage [2021/07/26(月) 22:28:01.26 ID:byaHgavb0.net] >>287 workbooks.openで開いてるならUpdateLinks:=Falseを付加する
290 名前:デフォルトの名無しさん mailto:sage [2021/07/26(月) 22:47:44.24 ID:5kY33e3Ed.net] 途中送信すいません 前スレ848です ついに進展がありました 整理するとぼく、課長、あほの3名がメインで登場するのですが、 そもそも課長は属人化を完全否定派ではなく あほが一人でぎゃーすか騒いでいたから便宜上検討したまででした しかしあほがそれを課の総意ととらえ威嚇してきたことからバトルは始まったようです 複数の請求書の計上先割り当て作業が発生し、速攻で同僚はマクロを使わせろと発狂 ぼく:「属人化がこわいですからね。マニュアルどうぞ!」と「各マスタのある場所から好きなマスタを使い好きな方法で抽出ください」と書いてあるマニュアルを渡す あほ:マスタの使い方がわからないと切れ気味に脅迫してくる ぼく:「マスタはマスタですよ!ご存じだと思いますが後学のためvlookupを復習してみては」と煽る あほ:作業終わらず報告もない。プライドが高く依頼もできない ぼく:請求書に手書きでいいですよ^^今日中に終わらせくださいね!ファイト! あほ:・・・ その後別件でメールでケンカを売られまくる また先日からあほのソロプレイを正論で嗜めることが多く、敵意を通り越して対立構造なったなあ?と思ったので 課長に「対立されて仕事す済まなくてこまるんすけど」と相談したところ 課長も扱いに困っていたらしく、「部長も常務もあほのやばさを知っているからみんなぼくの味方なので、安心して仕事いていいよ。」 という円満に終わった しかしあほは今後も邁進し続けると思うので、ハラスメントにならない程度い追い込むつもりだよ
291 名前:デフォルトの名無しさん [2021/07/26(月) 23:08:10.03 ID:/621v/Zu0.net] >>289 こういう一部しか見えない馬鹿が組織を破壊する例
292 名前:デフォルトの名無しさん mailto:sage [2021/07/26(月) 23:18:13.06 ID:UvVzyFl70.net] >>289 俺も最近知ったんだけど、マスタという概念が無い人はこの世にいるよ そういう人たちは毎回全部の情報を全部入力するのが当たり前と思っている
293 名前:デフォルトの名無しさん mailto:sage [2021/07/27(火) 01:04:55.10 ID:gVqOiYWt0.net] Excel自体はどんどん進化してるのに、VBAの開発環境(IDE)が20年ぐらい前から一切何も変わっていないのはなぜですか?
294 名前:デフォルトの名無しさん mailto:sage [2021/07/27(火) 01:52:06.29 ID:YYF9/aONa.net] かまうからスレと関係ない話をしだすかまってちゃんが居座るんだよな
295 名前:デフォルトの名無しさん mailto:sage [2021/07/27(火) 04:24:29.61 ID:Q2Vxfcf10.net] >>289 >ぼく:「マスタはマスタですよ!ご存じだと思いますが後学のためvlookupを復習してみては」と煽る ちょっと待て 基本的にいい感じで追い詰めているのかも知れないけどテーブル構成分からない奴にER図も渡さずこれやったらただの虐めじゃないか?
296 名前:デフォルトの名無しさん mailto:sage [2021/07/27(火) 07:25:27.47 ID:OW3IH1MI0.net] >「各マスタのある場所から好きなマスタを使い好きな方法で抽出ください」と書いてあるマニュアル 事務メインの職場だろうとシステム開発の職場だろうと、 こんなマニュアルで仕事させるとか管理職側の正気を疑うわ
297 名前:848 mailto:sage [2021/07/27(火) 08:23:38.83 ID:SN94FSfxd.net] レスありがとうございます やりすぎたっぽいですね 一応各作業に使うアニュアルにはマスタお使用手順とマスタのリンクが貼ってあります ER図というのを知らなかったので作成してみます ありがとうございます
298 名前:デフォルトの名無しさん mailto:sage [2021/07/27(火) 08:52:12.15 ID:76Sj+bMnM.net] >>292 MS的にはVBAは ・既に新機能の開発が終了しており、互換性のためだけに維持されている ・今後新たに利用することは推奨しない ・廃止に向けて他の技術への移行を促していく というステージにある 進化どころか廃止に向けて意図的に不便にされていく運命にある
299 名前:デフォルトの名無しさん mailto:sage [2021/07/27(火) 09:51:18.11 ID:6lk4F0RuM.net] 廃止に向けた次のステージとして考えられるのは、普通なら新バージョンのOfficeではマクロの実行のみ可でVBEは廃止だろうけど、 古いバージョンに留まるユーザーが増えるからO365をどんどん売りたいMSとしてはそれは無さそう マクロの実行にはレジストリの編集が必要、VBEはMSのサイトの奥深くから別途自分でダウンロード、あたりかな
300 名前:デフォルトの名無しさん [2021/07/27(火) 16:10:43.12 ID:Dog97BpdF.net] スマタは使用禁止用語になったんじゃないのか
301 名前:デフォルトの名無しさん mailto:sage [2021/07/27(火) 16:50:24.81 ID:RY5xZe5o0.net] マスタは使用禁止になりマスタ
302 名前:デフォルトの名無しさん mailto:sage [2021/07/27(火) 17:04:06.26 ID:CdbbvAj70.net] ここもExcelスレと同じで質が落ちてきてねえか?
303 名前:デフォルトの名無しさん mailto:sage [2021/07/27(火) 20:05:02.99 ID:rQxgpXQC0.net] >>297 というわりにはスピルなんかは提供されてるじゃん
304 名前:デフォルトの名無しさん [2021/07/27(火) 23:55:40.56 ID:t8GWtc170.net] 287>>288 できました、ありがとう先生!
305 名前:デフォルトの名無しさん [2021/07/28(水) 00:07:17.74 ID:PzJWsUeb0.net] microsoft sqlserverに、エクセル側からエクセルにあるデータをインポートするにはどのようにすればよいですか?
306 名前:デフォルトの名無しさん mailto:sage [2021/07/28(水) 01:31:52.64 ID:Ky1rxZdm0.net] >>297 VBA代替がない限りその説は苦しくないか?
307 名前:デフォルトの名無しさん mailto:sage [2021/07/28(水) 05:47:03.47 ID:FMiGC/5E0.net] >>304 SQL Server Management Studio使えばインポートできるけど、VBAスレで聞くと言うことは違うか
308 名前:デフォルトの名無しさん mailto:sage [2021/07/28(水) 07:33:21.04 ID:ogvMN+9Q0.net] 確かに
309 名前:デフォルトの名無しさん [2021/07/28(水) 10:37:52.45 ID:I0vZ6ZDJF.net] エクセル側からエクセルにあるデータをエクスポート なら答えられるけど
310 名前:デフォルトの名無しさん mailto:sage [2021/07/28(水) 12:24:20.53 ID:+C1a7ZjYM.net] >>289 属人化はダメだけど属人化の塊のマクロは使わせろってどういうことだ 矛盾してるだろ ってアホに言ってみてくれよ どうせ屁理屈と罵倒で誤魔化すタイプなんだろうけど どう返答するか興味ある
311 名前:まあ俺が言うのもなんだがw mailto:sage [2021/07/28(水) 21:46:44.12 ID:DwPtwRV40.net] >>304 速度求めないならVBAからADODBとかでSQL-Serverに接続してひたすらデータをinsertすればいいかと https://itsakura.com/excel-vba-sqlserver-insert 速度求められたらSQL-Serverがアクセスできる場所にcsvで保存してbulk insertかなぁ https://docs.microsoft.com/ja-jp/sql/t-sql/statements/bulk-insert-transact-sql
312 名前:デフォルトの名無しさん [2021/07/29(木) 00:37:05.63 ID:5P0jxKPl0.net] プログラム経験もなく新しくvbaの勉強を始めたのですが学習にオススメのサイトはありますか? 今まではやりたい事を探してコピペして作ってたのですが、 自分で書こうとしたらシート名やインデックスやオブジェクト名やらが違うことに気づいて困惑しているレベルです みなさんが使ったものやわかりやすい参考書やサイトがあれば教えてください
313 名前:デフォルトの名無しさん [2021/07/29(木) 01:48:58.35 ID:qJ9+RPMT0.net] >>311 君のレベルなら、「よいこ」とか「めばえ」かな
314 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 04:50:12.68 ID:tInYj70a0.net] >>311 最初はでかい本屋行って立ち読みしてわかりやすそうなの選んで買ったわ その後はアマゾンで適当に評判いいのを選んで買った 辞書代わりに調べるのはネットでいいけど 体系的にちゃんと理解するには本かな おれは何冊か買って読んだ VBAは学習者が多いから本も充実してて勉強しやすいよ 俺が始めたのは何年も前だから今出てる本買ったらいいと思うわ
315 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 08:28:17.88 ID:qje0bdaJ0.net] >>311 ない しいて言えばマイクロソフトのヘルプ 上級者はヘルプ見て解決している
316 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 08:58:17.59 ID:1hQ5YU2Kd.net] >>311 基礎をyoutubeで見て覚えて 関数(vlookupとか)を自作してみるとかなり学べるよ
317 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 09:17:05.41 ID:KHPuP3g90.net] まずは1枚のシート操作だけで完結するものから作ればいい 〇〇の集計とか〇〇の抽出とかね でも大抵1枚のシート操作だけしかしないものって関数やピボットテーブルでもできたりするので、その感覚もわかっておくとExcel全般に強くなっていいよ
318 名前:デフォルトの名無しさん [2021/07/29(木) 11:41:13.92 ID:tRu2KZQaM.net] よくある、何がわからないのかが分からないと言う奴だね
319 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 11:48:06.66 ID:uh8iBAiRM.net] マクロの記録で作成されたコードを解読する
320 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 11:59:17.77 ID:tRfdKqE2a.net] 自分に合ったサイトや本を自力で見つけられないようじゃ そこまでの事しかできないでおわり
321 名前:デフォルトの名無しさん [2021/07/29(木) 13:38:20.23 ID:e5dLz96Qa.net] >>319 迷ったら出来る人に聞いて即やってみる 学習の最適解だよ 基礎学習レベルに才能は関係ない もし教材探しも勉強って言いたいなら効率悪いよ >>311 エクセルの真髄100本ノック コードもあるし参考になる シートとワークシートの違いとか初心者が気になる事も書いて有る 細い疑問点が残るのは気持ち悪いけど、今は習うより慣れろ
322 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 15:05:38.21 ID:pwjhwPgXa.net] そうやって教えてもたぶん読まないよ
323 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 15:07:10.72 ID:pbMKJSnE0.net] トレーナーは口を揃えて「ヘルプ見ろ」という だからヘルプ最強
324 名前:デフォルトの名無しさん [2021/07/29(木) 17:04:51.77 ID:32nRf9uoF.net] >>318 最初はそれで良いかも知れないが マクロが吐くコードって無駄が多過ぎて無理
325 名前:デフォルトの名無しさん [2021/07/29(木) 17:33:28.86 ID:yKiDVYkeM.net] マクロ記録だと分岐とかループが出ないよね
326 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 18:53:26.13 ID:5dr8dF92M.net] マクロはwithのせいでぐちゃぐちゃな上に 無駄なコードが死ぬほどついてくるから初心者の解読には向かない
327 名前:デフォルトの名無しさん [2021/07/29(木) 19:47:25.20 ID:2QmJme0a0.net] それ以前に、MS言語を避けるべき。
328 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 20:08:39.08 ID:1hQ5YU2Kd.net] 初めてピボットテーブルのマクロ記録を見た時は冷や汗をかいたな マクロ記録から攻略するのはやめたほうがいい
329 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 20:21:16.09 ID:zVCmdr7a0.net] ピボットの自動記録は酷いな 一行で済むところが20行ぐらいになる 罫線もそんなだったような
330 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 20:36:06.86 ID:ImacXrDI0.net] >>311 会社にあった参考書とエクセルの神髄で勉強した 困ったときはインストラクターのネタ帳 クラス使うようになったらthomのブログ
331 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 21:05:47.52 ID:KHPuP3g90.net] マジでピボットの記録は正気の沙汰じゃないよな あと、普通の記録だとSelectとSelectionが余分なのに初心者はそれを使うのが最適だと思っちゃうからダメ さらに図形とかのObjectとかのTextRangeだとマクロ記録のSelection省略しただけじゃうまく動かなくて混乱するし あとは他でも言われてるようにIfとかAndとかOrとかLoopとか変数とか学べないしね
332 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 21:14:45.50 ID:ddohEedh0.net] >>326 そういう人はVBAスレから去るべき
333 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 23:42:59.81 ID:1PJWae7Yd.net] >>331 まじこれ Excel使いながらベンダーロックとか騒いでるのが爆笑なんだがww 黙ってGoogleスプレッドシートでも使いながらGoogleにロックされてろよww
334 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 23:51:41.95 ID:p4SukJyH0.net] ExcelVBA MS言語 ACCESSVBA MS言語 Python MS言語 VB.NET MS言語 C# MS言語 C/C++ 準MS言語 Ruby 松本言語 PHP 公式な規格なし。事実上の私言語。Rubyと同格 Perl オワコン JavaやGOはじめほかの言語もだいたいGoogleやその他企業の私物 ベンダーロックされない言語などあるのだろうか? むしろ国際規格をきっちり定めているMS言語はもはやベンダーアンロックではないか?
335 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 23:58:22.70 ID:zVCmdr7a0.net] >>333 国際規格で草 その国際規格を制定するメンバーは大抵intelやmicrosoftなどの大手企業 html5に至っては消滅したわ
336 名前:デフォルトの名無しさん mailto:sage [2021/07/30(金) 00:35:30.86 ID:4LnMwhZSM.net] 国際標準ならECMAやISO、日本標準ならJIS
337 名前:デフォルトの名無しさん [2021/07/30(金) 04:01:44.41 ID:AGz2ssQM0.net] ヒキニートの言う事より、あわしろ氏を信じる。
338 名前:デフォルトの名無しさん mailto:sage [2021/07/30(金) 13:35:36.57 ID:F+iyq/jq0.net] そりゃニートは潤沢に時間があるからいくらでも勉強し放題だしな 詳しいわけだな
339 名前:デフォルトの名無しさん mailto:sage [2021/07/30(金) 13:55:06.34 ID:egyKewAD0.net] >>334 そう、つまりMS言語は国際規格になっているのでベンダーロックインはあり得ないということ 逆にRubyは国際規格ではないし開発者が勝手に仕様を頻繁に変更する これは今までに実績があるし本人が言ってる事 さらに言えばRubyはRailsがあってこそ初めて成り立つ開発言語 言語仕様からコンパイラ、エディタ、ドキュメント、サポートまで全て一社でサポートしているMSとは比べようもないリスクがある Javaを見ただろうか? MS言語ではないばかりにあんな事になっている Rubyを見ただろうか? バージョンアップごとに対応作業に追われている しかもRubyの変更とRailsの変更で2倍の対応工数をとられる MS言語はVB6(1991年発売)が今でも第一線で働いている ExcelVBA(1993年)なんてここ数年でさらに盛り上がりを見せている もっとさかのぼると1980年代にはBASICは今とかなり近い文法が完成されており 1985年のQuickBASICに至ってはほぼ今のVBと変わらぬ開発環境を整えており36年にわたって同じ開発環境が通用していることを示している 移り変わりの激しいIT業界で36年だ!それがMS言語の息の長さであり変わらぬことの強さなんだ MS言語を信じなさい。MS言語に導かれよ!!
340 名前:デフォルトの名無しさん mailto:sage [2021/07/30(金) 14:00:09.98 ID:omgprq0F0.net] >>338 あー だからRubyってあんなに年収やっすいんだね
341 名前:デフォルトの名無しさん mailto:sage [2021/07/30(金) 14:09:56.93 ID:eptPeGDTM.net] 国際規格じゃなくて デファクトスタンダードな
342 名前:デフォルトの名無しさん [2021/07/30(金) 19:01:26.28 ID:L6BL7yno0.net] レンジ上で足し合わせて入力はできないのでしょうか? range(c1:c2)=range(a1:a2)+range(b1:b2) だとエラーになってしまいます range(c1:c2)=range(a1:a2) これはできますが…
343 名前:デフォルトの名無しさん mailto:sage [2021/07/30(金) 19:49:10.10 ID:XTDmAoXAa.net] Valueの概念をググッといて
344 名前:デフォルトの名無しさん mailto:sage [2021/07/30(金) 21:11:34.63 ID:qdQMd8Fb0.net] オフィススプリクト?だかに移行したいが VBユーザーがどうにもならんのよ
345 名前:デフォルトの名無しさん mailto:sage [2021/07/30(金) 21:13:59.49 ID:4AGntX9d0.net] いや両方載せればいいだけじゃん
346 名前:デフォルトの名無しさん mailto:sage [2021/07/30(金) 21:25:29.88 ID:CiBkTLYM0.net] >>341 もし会社とかでこんなこと訊かれたら頭抱えるわ…
347 名前:デフォルトの名無しさん mailto:sage [2021/07/30(金) 21:42:30.69 ID:zYpnMfjf0.net] >>341 雑に説明するとね Rangeは箱で入力されているデータは箱の中身なんだ だからRange(B1:C1)=Range(B2:C2)みたいにA2:B2って箱をA1:B1に複製する事は出来る でもあくまで箱そのものを操作するだけだから箱の中身をいじる事はできない ならどうするかっていうと箱の中身を箱から出してやる必要がある その為には値を1つ1つ指定してそれぞれで計算してあげなきゃいけないんだ だからRange(″A1″).Value=Rang(″B1″).Value+Range(″C1″).Value Range(″A2″).Value=Rang(″B2″).Value+Range(″C2″).Value ってやるのが正しい
348 名前:デフォルトの名無しさん mailto:sage [2021/07/30(金) 21:42:52.63 ID:91KFOglq0.net] なんで頭抱える必要があるんだよ 「できない」の一言で会話打ち切りゃ良いだけじゃん
349 名前:デフォルトの名無しさん mailto:sage [2021/07/30(金) 22:24:06.27 ID:lExP/Tyw0.net] >>333 CがMS言語って・・・ K&RがCを開発したのが1972年、マイクロソフト創業が1975年だぞ
350 名前:デフォルトの名無しさん mailto:sage [2021/07/30(金) 22:24:33.76 ID:4AGntX9d0.net] スピルでやれって感じ
351 名前:デフォルトの名無しさん mailto:sage [2021/07/30(金) 22:40:24.48 ID:6IY+PAJYM.net] >>341 は別にそんなにおかしな発想ではないと思うけどな Rangeに対する別のRangeが値のコピーになるのはRangeに対する代入操作が特別にそのように定義されているから(デフォルトプロパティ)で、>>346 の言うような「箱」じゃ説明がつかない =が特別扱いされるなら同様にRange同士の演算が定義されていたって何ら不自然なことはなくて、たまたまそういう仕様になっていないだけだ
352 名前:デフォルトの名無しさん mailto:sage [2021/07/30(金) 22:53:33.06 ID:GVWaTyU8a.net] SumなりUnionなりあるじゃん それも「できます」ってのもできてないし
353 名前:デフォルトの名無しさん mailto:sage [2021/07/30(金) 23:00:06.71 ID:xRZDPXU/M.net] もっともらしい説明をするとしたら、 Rangeはあくまでシート上の特定の範囲を指すものであって、必ずその値はシート上に実際に存在していなければならない。 z = x + y は x + y を先に演算してその結果を z に代入するわけだが、Range同士の加算を行った時点では結果の代入先がまだ決まっていない。 従って、必ずシート上に値が存在しなければならないというRangeの定義に矛盾する。 でも実際これは詭弁で、Range同士の加算がRangeではない行列みたいな値を表すオブジェクトを返し、それをRangeのデフォルトプロパティが受け容れればいい話なんだよね
354 名前:デフォルトの名無しさん mailto:sage [2021/07/31(土) 00:35:02.17 ID:/OoU0klK0.net] Rangeが箱みたいなものってのはまあ良いんだが VBAではRangeのようなオブジェクトに対する演算とかはできなくて、その場合は箱の中身(デフォルトプロパティ)を演算する Range("C1:C2") = Range("A1:A2") + Range("B1:B2")がエラーなのは、 Range("A1:A2")の中身が足し算できないものだから 結果の代入先が決まってないとかじゃなくて、結果を出せないからエラーなんだよ
355 名前:デフォルトの名無しさん [2021/07/31(土) 00:42:26.77 ID:mCBqZyxbM.net] >>341 少し違うけど似た事は毎回思う 表計算ならc列=a列×b列〜z列みたいな処理が普通だしそういった列ごとの記述はないの?
356 名前:デフォルトの名無しさん [2021/07/31(土) 00:46:23.19 ID:mBcGx4p70.net] >>341 馬鹿は足し算しかしないの?
357 名前:デフォルトの名無しさん mailto:sage [2021/07/31(土) 01:07:37.07 ID:z2VXpram0.net] 配列大好きなphpにも無いし諦めて
358 名前:デフォルトの名無しさん mailto:sage [2021/07/31(土) 02:01:59.82 ID:zyTpcIefM.net] numpyじゃねーし
359 名前:デフォルトの名無しさん [2021/07/31(土) 02:12:54.61 ID:VZqzqhPL0.net] ありがとうございます 出来ないんですね 私の書き方が悪くてエラーになっているのかと思っていました 演算張り付けやスピルみたいなイメージで 似たようなことが出来るのかなあと考えていました >>356 .353.352.350.347.346
360 名前:デフォルトの名無しさん [2021/07/31(土) 03:57:57.92 ID:mBcGx4p70.net] >>358 単にお前が馬鹿なだけ 行列計算とか言ってたのならわからんでもないけど
361 名前:まあ俺が言うのもなんだがw mailto:sage [2021/07/31(土) 07:18:03.75 ID:m7lSxL/B0.net] >>341 Valueの概念とか謎の箱理論とかは無視していいw >>350 の言うように言語仕様としてできないだけ RANGEじゃないけどFORTRANみたいに配列同士の演算ができる言語もある
362 名前:デフォルトの名無しさん mailto:sage [2021/07/31(土) 07:34:59.93 ID:gz49wtMt0.net] rangeは範囲だから2セルの範囲に4セル分は入らない
363 名前:デフォルトの名無しさん mailto:sage [2021/07/31(土) 09:51:11.76 ID:BQeiJ/1Ba.net] 念のため言っとくがイキって煽り散らしたいだけのハゲは無視しとけな
364 名前:デフォルトの名無しさん mailto:sage [2021/07/31(土) 13:09:56.95 ID:54/p9ERo0.net] バカバカバカバカ言わないでよ もっと平和的にやりとりできないの? こんなに優れた無料の質問スレなんだから品位を保つべき
365 名前:デフォルトの名無しさん mailto:sage [2021/07/31(土) 13:15:16.77 ID:TRd8RGa80.net] ならまずは>>363 がドレスコードを守ってくれ
366 名前:デフォルトの名無しさん mailto:sage [2021/07/31(土) 13:26:23.66 ID:r3PlISUvH.net] 当スレは頭の寂しい方はお断りしておりますので
367 名前:デフォルトの名無しさん mailto:sage [2021/07/31(土) 13:26:59.26 ID:z2VXpram0.net] >>363 なにか勘違いしているようだ 平和とか無料とか、どこかでコストがかかっている。それは誰かが負担している 「日本の平和」はアメリカの核の傘による米軍基地がコスト 掲示板の「無料」は広告。広告が実質ない5chなら、罵倒やマウンティング好きなアホが紛れる事がコストなんだ 君は ・「重火器が飛び交う戦場で無償で敵味方にその場で教えてもらう」 って事をしているんだ もし平和的に回答がほしいなら、先に「おもしろ画像貼りますんでなんとか解決お願いします!」 みたいにすれば色々と有線して解決してもらえるんじゃないかな
368 名前:デフォルトの名無しさん mailto:sage [2021/07/31(土) 15:03:38.39 ID:yzAefFWlp.net] >>363 マウントじじいが貢ぎもの差し出せって。 でもこんな頭のおかしい連中ばかりじゃないから気にしなくていいよ。
369 名前:デフォルトの名無しさん mailto:sage [2021/07/31(土) 15:37:59.04 ID:Opw93OJSd.net] power queryがなかなか覚えられない みなさんLETは使ってる?
370 名前:デフォルトの名無しさん mailto:sage [2021/08/01(日) 00:37:47.31 ID:ayuPdfaZ0.net] スレ間違ってないか?
371 名前:デフォルトの名無しさん mailto:sage [2021/08/01(日) 16:26:51.08 ID:12Gisk1n0.net] バカって言うヤツがバカなんだよ!
372 名前:デフォルトの名無しさん mailto:sage [2021/08/01(日) 18:09:12.14 ID:xwQRbrXaM.net] と、バカが申しております。
373 名前:デフォルトの名無しさん mailto:sage [2021/08/01(日) 19:13:18.52 ID:hqZEeiIx0.net] 馬鹿ばっかりだな
374 名前:デフォルトの名無しさん mailto:sage [2021/08/01(日) 19:46:33.48 ID:RrQoAxKz0.net] むしろ寂しがり屋なのでは
375 名前:デフォルトの名無しさん [2021/08/01(日) 20:59:52.11 ID:SyCmN3PQM.net] ハゲばっかりやな
376 名前:デフォルトの名無しさん mailto:sage [2021/08/01(日) 21:21:35.58 ID:12Gisk1n0.net] 毛の話しろよ
377 名前:デフォルトの名無しさん mailto:sage [2021/08/01(日) 22:28:03.58 ID:PkMCEWYW0.net] 不毛だな
378 名前:デフォルトの名無しさん [2021/08/02(月) 01:09:21.06 ID:H8/w6NZQM.net] そんなつもりは毛頭ないのですが
379 名前:デフォルトの名無しさん mailto:sage [2021/08/02(月) 13:19:27.48 ID:UEok/DKqd.net] お前は頭髪がない
380 名前:デフォルトの名無しさん mailto:sage [2021/08/02(月) 13:22:42.78 ID:T+xK0N6pd.net] 俺の芋頭がこんなに頭髪ないわけがない
381 名前:デフォルトの名無しさん mailto:sage [2021/08/02(月) 18:21:53.57 ID:R1Xzu7pP0.net] でもおまいらは禿げてるんでしょ?
382 名前:デフォルトの名無しさん mailto:sage [2021/08/02(月) 23:15:41.33 ID:x232xQhs0.net] >>358 クッソ亀だけどこれでいけない? Range("C1:C2") = [A1:A2 + B1:B2]
383 名前:デフォルトの名無しさん mailto:sage [2021/08/04(水) 00:57:35.42 ID:0L18Nxkj0.net] >>370 バカって言うヤツがバカって言うヤツがバカなんだよ!
384 名前:デフォルトの名無しさん mailto:sage [2021/08/04(水) 14:28:57.13 ID:lGrUtpF/0.net] うるせーバカ!
385 名前:デフォルトの名無しさん mailto:sage [2021/08/04(水) 15:03:01.69 ID:09lFZjv40.net] 相手を見下すというのはそれ相応の教育しかない方が行う所作であります故
386 名前:デフォルトの名無しさん mailto:sage [2021/08/04(水) 15:54:39.96 ID:jCZ4Eczla.net] アホだ
387 名前:デフォルトの名無しさん [2021/08/04(水) 16:41:44.16 ID:IdaynBO00.net] マウスで選択した範囲のハイパーリンクを自動で開きたいんですがどこを変更すればいいでしょうか? Aにハイパーリンク A2からA4をマウスで選択 A1 B1 C1 A2 B2 C2 A3 A4 ・ A99 B99 C99 Sub Macro1() ' Keyboard Shortcut: Ctrl+Shift+P Dim SelectionArea As Range Set SelectionArea = Selection Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True End Sub A5
388 名前:デフォルトの名無しさん mailto:sage [2021/08/04(水) 17:04:08.48 ID:IZchSkQ4a.net] >>386 SelectionのRangeをFor Eachで回してひとつひとつ開いていく のがVBAの一般的な回答になるかと
389 名前:デフォルトの名無しさん mailto:sage [2021/08/04(水) 17:16:32.22 ID:5a+p99Z60.net] 変数に入れてる意味なくて草
390 名前:デフォルトの名無しさん mailto:sage [2021/08/04(水) 17:19:31.98 ID:09lFZjv40.net] >>388 変数に入れるかどうかは「わかりやすさ」が関係してくるよ 個人開発が大きいVBAでその度合いを嘲笑するのは良くないと思う ただ、386は俺も何やってるかよくわからん
391 名前:デフォルトの名無しさん mailto:sage [2021/08/04(水) 18:15:11.64 ID:Ww92yPFZa.net] テーブルで、フィルタしたあとの行削除をマクロの記録でやりたいけどうまくいかない。 フィルタして出たのが1行だとうまくいくけど、複数だとエラー。 テーブルがある。ある一つの列の、特定の文字をフィルタする。(その文字がないときはマクロ押さないつもり) その列の上の下矢印で全選択、可視セルのみ選択。タブの行削除。フィルタ解除。 この流れって
392 名前:マクロの記録じゃムリ? 1行 で1004エラー? [] [ここ壊れてます]
393 名前:デフォルトの名無しさん mailto:sage [2021/08/04(水) 18:44:53.04 ID:bSPJ2kBBM.net] マクロで処理するならフィルター要らないかな 記録だけでコード書くのは無理がある処理かな
394 名前:デフォルトの名無しさん mailto:sage [2021/08/04(水) 18:51:01.89 ID:7NmqzzLqM.net] ムリ
395 名前:デフォルトの名無しさん mailto:sage [2021/08/04(水) 20:15:52.27 ID:14yWBG2X0.net] マクロの記録だけで業務改善する職場って未来あるよな
396 名前:デフォルトの名無しさん mailto:sage [2021/08/04(水) 20:43:15.85 ID:b6iWr/iv0.net] 未来は僕等の手の中
397 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 14:48:49.27 ID:+e5nazzCa.net] 390ですがインストラクターのネタ帳ってとこの改造してみたらできるようになりました(毎回エラーでるけど成功してるので気にせず😌)。 p.s. 印刷時の見た目だけがいい、セル結合された表テンプレで作業を求められる同士が救済されますように…。。
398 名前:デフォルトの名無しさん mailto:sage [2021/08/06(金) 16:13:36.56 ID:T/jNWxQK0.net] ドの付く初心者です、というよりこういうのを作るのも初めてです Findで任意の文字列が入ったセルを取得して、A1からそのセルまでを削除するマクロを作りたいのですが Findの返り値がRangeなので削除するときの範囲指定がうまくいきません たぶん基礎的なところを理解してないのでダメなんだとは思うんですが、とっかかりが欲しいです お力をお貸しください Dim rng As Range Set rng = ThisWorkbook.Worksheets(1).Range("A1:A10000") _ .Find(What:="SUGOI", LookAt:=xlWhole, SearchOrder:=xlByRows) これでrngに任意の文字列の座標を取得 この後ろでRange().Delete使って消したいです
399 名前:デフォルトの名無しさん mailto:sage [2021/08/06(金) 17:02:36.53 ID:Oz5kLkmeM.net] .range(.cells(1,1),.range(適当な範囲)).delete
400 名前:デフォルトの名無しさん mailto:sage [2021/08/06(金) 20:18:49.98 ID:8V+dHMZB0.net] 削除して無くなったセルを詰めるのだろうか
401 名前:デフォルトの名無しさん mailto:sage [2021/08/06(金) 20:58:11.36 ID:3pn6mo5YM.net] マクロの記録で、、、
402 名前:デフォルトの名無しさん mailto:sage [2021/08/06(金) 20:58:32.58 ID:ZjxmW7bq0.net] どういう範囲指定か分からんけど返り値のRange.Rowで行数も取れるよ FindはExcel上のCtrl+Fにも影響するからForEachで検索するようになったな
403 名前:デフォルトの名無しさん mailto:sage [2021/08/07(土) 13:00:42.96 ID:slTH9qD1d.net] >>397-400 皆様アドバイスありがとうございます この土日はPCに触れられないため、助言をすぐ実践!とはいきませんが いただいた助言、ありがたく試させていただきます
404 名前:デフォルトの名無しさん mailto:sage [2021/08/07(土) 16:23:06.08 ID:IR0XtVNG0.net] Range("A1",rng).clear Deleteじゃなくてクリアしたいならこれ
405 名前:デフォルトの名無しさん mailto:sage [2021/08/08(日) 08:21:09.95 ID:ebb310K00.net] クラスでメインコードがすっきりとしていると機能追加も楽だね
406 名前:デフォルトの名無しさん mailto:sage [2021/08/08(日) 10:53:34.69 ID:Yzbpuv/w0.net] コード書いてる時ってどんな気分ですか?
407 名前:デフォルトの名無しさん mailto:sage [2021/08/08(日) 10:59:34.31 ID:5UdbG2j90.net] パズル解いてる気分
408 名前:デフォルトの名無しさん mailto:sage [2021/08/08(日) 11:24:54.00 ID:XIbBz2idd.net] めんどくせー 結果だけ欲しい
409 名前:デフォルトの名無しさん mailto:sage [2021/08/08(日) 11:53:06.78 ID:/228TsvP0.net] 外注すればいいんじゃね
410 名前:デフォルトの名無しさん mailto:sage [2021/08/08(日) 15:58:39.73 ID:wvip2OSH0.net] たしかにパズルだな
411 名前:デフォルトの名無しさん mailto:sage [2021/08/08(日) 16:26:56.76 ID:gGBnC+Z00.net] 美少女パズルRPG「パズルガールズ」 https://cdn.amz.appget.com/c/wp-content/uploads/2021/07/pg_8142870_1.jpg
412 名前:デフォルトの名無しさん mailto:sage [2021/08/08(日) 16:30:40.54 ID:N9yN2q6hM.net] VBAなんて所詮操作の
413 名前:デフォルトの名無しさん mailto:sage [2021/08/08(日) 16:31:53.22 ID:N9yN2q6hM.net] 失礼 VBAなんて所詮操作の自動化なんで、慣れたら
414 名前:pズルというより手順書書くようなもんだ どっちかというとワークシート関数を使いこなすほうがパズル [] [ここ壊れてます]
415 名前:デフォルトの名無しさん mailto:sage [2021/08/08(日) 23:30:31.22 ID:jh5zCN5Z0.net] ActiveWorkbookが入っているフォルダの名前の先頭に ActiveWorkbookのSheets(1).Range("A2").Valueを付けたいです。 しかしフォルダ名の取得に失敗しています。 ActiveWorkbook.Path(フルパス)を\で区切った最後の文字列だと思いますが もっと手短に取得する方法があったら教えてください。
416 名前:デフォルトの名無しさん mailto:sage [2021/08/09(月) 00:14:13.54 ID:9VfepREK0.net] 名前分解=split(名前,"\")(ubound(split(名前,"\"))
417 名前:デフォルトの名無しさん mailto:sage [2021/08/09(月) 00:43:14.90 ID:9VfepREK0.net] あっカッコが足りない
418 名前:デフォルトの名無しさん mailto:sage [2021/08/09(月) 17:35:43.32 ID:gGnrAdRU0.net] ださっ
419 名前:デフォルトの名無しさん mailto:sage [2021/08/10(火) 18:56:58.22 ID:9fiWluCI0.net] FileSystemObject使えばいいんじゃね? ファイルそのものを操作しないならちょっと面倒に感じるかもだけど
420 名前:デフォルトの名無しさん mailto:sage [2021/08/10(火) 21:44:06.51 ID:dMuyff760.net] やや冗長だけど、fsoは使って損は無いと思う。¥とsplitは頭が疲れる Sub foo() Set fso = CreateObject("Scripting.FileSystemObject") Set mybook = fso.getfile(ThisWorkbook.FullName) Set mybook_parent = mybook.parentfolder Header = ActiveWorkbook.Sheets(1).Range("A2").Value Debug.Print Header & mybook_parent.Name End Sub
421 名前:デフォルトの名無しさん mailto:sage [2021/08/10(火) 23:53:30.63 ID:Xm+HKu32M.net] splitが楽だと思うが、、、
422 名前:デフォルトの名無しさん mailto:sage [2021/08/10(火) 23:57:50.14 ID:plMJ/ypm0.net] >>404 締切のある「数独」
423 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 02:05:15.42 ID:yV4dFjvN0.net] >>413 ubound(split は禁じ手って言われてる
424 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 02:19:37.21 ID:T0yXhT3EM.net] >>420 なんで? 同じ処理を2回やってるから配列変数に入れたくなるけど、禁止するほどの理由でもないし
425 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 04:35:09.41 ID:KlHs/LBx0.net] InstrRevじゃだめなん?
426 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 05:55:28.37 ID:LQvUe8o6H.net] 文字列として取得したいだけならまだしも、フォルダ名変えたいんでしょ? 普通にFileSystemObject使った方がいいよ
427 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 12:03:15.14 ID:pcBI0cgA0.net] なんにしても、開いてるエクセルのあるフォルダの名前とか変えれんと思うのだがのう
428 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 12:29:18.95 ID:oEEdpHhhM.net] フォルダ作って、開いてないファイルは移動して、開いてるファイルは新しいフォルダーに名前を付けて保存ってして、 最後に要らんフォルダとファイルを消せばリネームしたように見える(見えるだけ)
429 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 12:30:50.00 ID:N26Fs5+x0.net] 20180811_フォルダ名 みたいにバックアップつくル目的かと思ってた
430 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 13:00:28.54 ID:pcBI0cgA0.net] リネームすらできないのに、どうやって自分自身を含むフォルダを削除できるんだ?
431 名前:デフォルトの名無しさん [2021/08/11(水) 13:04:20.40 ID:dnSnLDjMM.net] 名前をつけて保存
432 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 13:08:03.81 ID:jh4/giPJM.net] 非同期でスクリプトを実行してから 自分を閉じる スクリプトの動作は一定時間スリープしてからフォルダごと削除 で、できる?
433 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 13:19:34.76 ID:pcBI0cgA0.net] 基本的にはそれでできるだろうけど、 権限の問題とか、ファイルがルートに置かれてたりしたときとか、考慮点はいっぱいある
434 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 13:24:26.65 ID:4Gud1KwJa.net] 自分が書いたコードを公開すればいいのに、みなさんよくこの質問を答える気になるね
435 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 15:19:39.84 ID:BgXnPp0P0.net] そう思うなら自分が書いたコードを公開すればいいのに
436 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 16:01:47.79 ID:wST2jK7f0.net] 的外れ
437 名前:デフォルトの名無しさん [2021/08/11(水) 18:18:12.44 ID:6659knn7M.net] 答える方もテキトーだから気にするな
438 名前:デフォルトの名無しさん [2021/08/11(水) 22:13:22.02 ID:0mcLwEZRa.net] 的を得る?的を射る?
439 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 22:20:07.30 ID:N26Fs5+x0.net] 今は両方正解とも言われてるな
440 名前:デフォルトの名無しさん [2021/08/11(水) 23:18:26.09 ID:/u/X/l7G0.net] 射的場では、景品が的です。 射貫けば、ば的が得られるのです。 というムチャクチャな言い訳で、得るもOKになったらしいですぞ。
441 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 23:51:27.40 ID:MV8X3c1h0.net] 教養ないやつのせいで誤用が標準化されるのか
442 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 23:57:08.62 ID:N26Fs5+x0.net] 「新しい:あたらしい」 も、 元々は「あらたしい」が正しい 今更これに対して教養がどうとか思わんでしょ。そのうち慣れる
443 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 00:28:12.75 ID:AcVN/mcWM.net] 「全然」の用法は一周して元に戻ったけどな
444 名前:デフォルトの名無しさん [2021/08/12(木) 00:36:07.89 ID:2S4isd+w0.net] >>439 新しいは、英語の不定冠詞が母音の前で変化するのと同じで、単純に言いにくいからですよ。 当然の成り行きなんです。 翻って的を得るは、小賢しい屁理屈じゃないですか。
445 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 00:44:37.62 ID:BTMS1DN70.net] >>441 さすがにあの言い訳は後付だろう みんなが間違えてるけど意味が通じるからok
446 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 00:46:04.06 ID:XfbSLdwiM.net] いや、それも 「をいる」 より 「をえる」 のほうが言いやすいからと解釈できますよ 「い」は口を横に広げないといけないかど 「え」ならそれほど広げる必要もなくその後の「る」にも移行しやすいからね
447 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 01:26:40.50 ID:YbO1i5Cqd.net] 「こんにちは」と書いて「こんにちわ」と発音するのも、knifeをナイフと読むのも、言いやすいように変化しただけ 言葉ってのはそういうもん
448 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 01:30:00.55 ID:jC6xQX8qd.net] >>438 世界中の言語、習慣、伝統や文化のほとんどは、教養のないやつが作り上げた物なんだぜ
449 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 02:58:07.28 ID:aOGRiEATH.net] 的もらえたとして、もらうやついるの?
450 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 07:17:08.83 ID:BTMS1DN70.net] >>446 縁日の射的
451 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 08:25:03.59 ID:F2ZBInFgM.net] じゃあknifeは昔 クゥナイフとか言われてたのか
452 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 09:03:50.69 ID:KOJd5FjgH.net] >>448 そうだよ 発音しない子音は口を動かすのが面倒で言わなくなっただけで、間違いがどんどん定着してった
453 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 09:08:47.23 ID:6jf0e9cQd.net] 「延々と」を「永遠と」と書いたり言ったりする間違いが増えてて気になる
454 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 10:25:30.66 ID:8wOIyJEba.net] スレと全く関係ない話で
455 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 10:31:28.13 ID:JfgsXMu40.net] fightとかどう読んでたんだよ ファイグフトかよ ハードルが敷居に変わりつつある フンイキがフインキに変わりつつある
456 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 11:06:43.36 ID:BTMS1DN70.net] >>452 そのとおり。昔は全て表記通りの発音だった。 欧米圏内は色々な言語が複雑に混じり合った経緯があるので、「なんで?」と考えるとキリないぞ 更に言うとネットやテレビが台頭してからは言語は固定されるだろう、と学者は予想していたけどあんまりそうでもないようだ
457 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 11:29:35.78 ID:cpovNsRqd.net] ネットで声の大きいバカが目立てるようになったおかげで、間違いの広がる速度がむしろ加速してる ウィルスやワクチンの誤解もひどいもんだし
458 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 11:32:55.00 ID:stPdQEKya.net] あの…VBA…
459 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 11:37:28.29 ID:3EGHE4wmM.net] 言葉の変化を認めないやつはRight関数も500年前の発音でアルァイギーエッテー関数と読めよ
460 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 11:39:34.06 ID:KOJd5FjgH.net] 次の質問どうぞ
461 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 12:31:29.35 ID:uGYsB1RKM.net] ファンクション(Function) ↓ ファンスウ ↓ ハンスウ(函数) ↓ カンスウ(関数)
462 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 14:58:41.40 ID:wFbxLk6vH.net] 万葉仮名も太古の昔はそのまま読んでたらしいしな
463 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 15:14:57.51 ID:4wn9NucC0.net] ナイフはそのうち 「ナイ」になるのかな
464 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 15:16:18.65 ID:JfgsXMu40.net] サイフはサイか 日本語やんけー
465 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 15:21:53.11 ID:BTMS1DN70.net] >>454 ネットは大分マシ。すぐにそれは変ですよって指摘できるからな 昔は大名が変な言い間違いをしていたらそれが臣下に広まって、地域一体のおかしな方言になった ワクチンの誤情報もネットがなかったらもっとひどいことになっていただろう
466 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 17:42:00.13 ID:Fj2kkZVUa.net] ひとのコードにケチをつけるつもりはまったくないけど 上にあった「名前分解=split(名前,"\")(ubound(split(名前,"\"))」ってのを実際に書きたい場合 自分は他人が見る見ないにかかわらず「a = split(名前,"\")」と「名前分解=a(ubound(a))」の 2行に分けるような感じで書いてるけど1行にする人がおおいのかね?
467 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 17:53:53.44 ID:XQI2fayvM.net] そっちのほうがいいね
468 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 18:01:08.04 ID:tY2of2ova.net] 1ヵ月後の自分は他人なので… 丁寧に書けるなら絶対その方がいい
469 名前:289 mailto:sage [2021/08/12(木) 18:29:35.92 ID:FVU2afn4d.net] 前スレ848です 最後の報告です スレ汚しすいませんでした その後 マクロ廃止後業務量が増えまくってあほがヒステリーを起こし スラックで延々とケンカを売られ続けた あまりにもブーメランを投げてくるので華麗に避けてたらあほ激怒 仕事を辞めると言い出した 課長はその言葉お嬉々として受け止めていた 結局のところ仕事が終わらず、マクロを使うことになったよ あほが辞めるのは嬉しいけど、本当に自分が正しいのかよくわからなくなり ちょっと鬱気味になっている 結論はマクロお人に共有すべきじゃなかったと思う
470 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 18:58:40.91 ID:Fj2kkZVUa.net] >>466 もうvbaと関係ないからこなくていいよ そんなにリアルでかまってもらえないの?w
471 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 19:09:35.66 ID:JfgsXMu40.net] >>466 本当にお疲れ様 むしろそのあほを辞めるように持って行った功労者w >>467 上の流れには突っ込まずそれかw
472 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 19:30:26.41 ID:J6mXolxSM.net] >>466 お疲れ様 あんまり気にしすぎるなよ? もっと肩の力抜いてこうぜ
473 名前:デフォルトの名無しさん [2021/08/12(木) 19:36:16.05 ID:Gdq8XFU10.net] >>466 死ねよ
474 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 19:43:55.65 ID:Fj2kkZVUa.net] >>468 >>451 は自分ですよ
475 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 23:17:39.27 ID:BTMS1DN70.net] >>466 いつもの流れだから気にすんな
476 名前:デフォルトの名無しさん [2021/08/13(金) 02:15:07.67 ID:fQVKfGt/0.net] >>466 まだ終わってない
477 名前:デフォルトの名無しさん [2021/08/13(金) 03:37:00.81 ID:NVit/nDVM.net] >>466 こういう人ってたかがマクロを少し作れるだけで自分が会社を経営してると思い込む馬鹿ばっかだよ
478 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 09:23:59.80 ID:Dh6ZDsQC0.net] すみません VBA初心者です 下記プログラムはB1とB2に任意の数値を入れると A5〜A100に数値から数値の間の数字が打ちあがります 一度入力したら2回目はA5からA100の数値を手動で削除 しなければなりません B1に数値を新たに入力したら自動でクリアされれば 手動で削除しなくていいのですがコードが書けないで困ってます どなたか詳しい方いましたらご教授ください Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Target.Address <> "$B$2" Then Exit Sub If Range("B1").Value = "" Then Exit Sub End If Range("A5:A100").Clear Dim cnt As Long Dim i As Long, j As Long j = 0 cnt = Target.Value - Target.Offset(-1).Value For i = 5 To cnt + 5 Cells(i, 1) = Target.Offset(-1).Value + j Cells(i, 1).NumberFormatLocal = "@" j = j + 1 Next i End Sub
479 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 09:29:56.69 ID:7J82GjQPM.net] >>474 噂の同僚もこんなこと言ってそうだな
480 名前:デフォルトの名無しさん [2021/08/13(金) 09:40:28.79 ID:IVydqk9y0.net] VBAで数値計算をやらないといけないから、VBAの仕様を一通り学ぼうと思って書籍で勉強しているんだけど、 VBAで数値計算する意味がわからんわ VBAで数値計算するメリットってファイルの入出力くらいしかないだろ・・・
481 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 09:57:08.98 ID:lG5axGIx0.net] >>474 という思い込みを>>474 がしてるってネタでしょ?w
482 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 10:08:41.85 ID:7J82GjQPM.net] >>477 逆に少し複雑になったら 並べ替えやvlookup用に変な数字が所狭しと並んだり 式もシートもぐちゃぐちゃになったり 行を増やすごとに式をいちいちコピペしないといけなかったり式のコピペ漏れの危険もある関数でやるメリットのほうがよくわからん 関数使っても問題ないのはマジで足し算掛け算レベルの簡単なものだけだろ
483 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 10:09:11.78 ID:zvWaH7NU0.net] >>475 b1かb2以外で終了、に変更 Excel入ってないPCだから試してないけど、多分動くと思う If Target.Address <> "$B$2" Then Exit Sub ↓ If not(Target.Address = "$B$2" or Target.Address = "$B$1") Then Exit Sub
484 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 10:14:40.50 ID:/ejQKQyrM.net] >>477 自分で責任取れるんならPythonでも何でも使えばいい それができるだけの度胸とコミュ力がないんならどこ行ったって同じだぞ
485 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 10:23:05.89 ID:zvWaH7NU0.net] >>477 vbaだと爆速、値で残せるなどのメリットもあるし、 要は使い分けだな
486 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 10:37:15.01 ID:5J5GXzoka.net] テーブル機能は関数、VBAともに相性いいからとりあえずテーブルにするところから始めればいいんじゃないかな
487 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 11:50:40.69 ID:c6dMXYo0a.net] >>475 判定をなおしてみました。こんな感じはどうでしょう。 If Target.Address = "$B$1" Then Range("A5:A100").Clear Exit Sub ElseIf Target.Address = "$B$2" Then If Range("B1").Value = "" Then Exit Sub End If Else Exit Sub End If
488 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 14:43:20.07 ID:MQNa+Oeo0.net] >>475 「B1が変更」かつ「B2が入力済み」の場合にも処理されるようにするのはどうでしょうか。 後、B1B2が数値である保証がないのも気になりました。 冒頭(Early Returnの部分)を If Target.Address <> "$B$2" and Target.Address <> "$B$1" Then Exit Sub If (VarType(Range("B1").Value) <> vbDouble) Then Exit Sub If (VarType(Range("B2").Value) <> vbDouble) Then Exit Sub に修正し、 Target.Value - Target.Offset(-1).Value 等の部分を具体的にRange("B1")の様にしてみて下さい。
489 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 16:54:07.44 ID:HPpKMPwN0.net] いまだにテーブル機能を表のレイアウトの見栄えよくする機能だと思っている人いるんだなマジで。 興味ないとそんなもんだよね
490 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 17:27:51.79 ID:Ko30HHoCa.net] Vlookupなんてテーブルありきの仕様(範囲可変対応、速度、列指定等…)だし、 VBA使う時はForで範囲の中の値をループ処理するのはテーブル使うのが1番完結かつ読み手に伝わりやすい(と思う) 興味ない人は触れることもないんだろうなぁと思うと寂しいね
491 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 18:51:34.24 ID:Dh6ZDsQC0.net] VBA達人の皆さんありがとうございます 早速試してみます 皆さんはどのように勉強されたのですか? VBA2年目ですがまだまだ初心者から脱却できません
492 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 18:51:53.98 ID:HPpKMPwN0.net] まだ良いよ 見栄えよくすると思い込んでいて、何でもかんでもテーブルに変換する同僚がいるから 出力でそれやられると見辛い
493 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 19:17:27.00 ID:zvWaH7NU0.net] >>488 色々書きまくるしかない あと、たまには違う言語を触ってみるのも良いと思う 簡単なゲーム作るとか
494 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 20:37:12.04 ID:fD7XP3Na0.net] 変数を日本語にすると頭に入りやすい
495 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 20:55:03.16 ID:Dh6ZDsQC0.net] >>490 > >>488 > 色々書きまくるしかない > あと、たまには違う言語を触ってみるのも良いと思う > 簡単なゲーム作るとか 色々簡単なことから挑戦していきます
496 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 20:57:12.23 ID:Dh6ZDsQC0.net] >>491 日本語に訳して覚えてみます
497 名前:デフォルトの名無しさん [2021/08/13(金) 21:57:30.74 ID:IVydqk9y0.net] >>479 やっぱりどう考えてもVBAで数値計算って無理がありそうですよね 数値計算自体も偏微分方程式の解を求めたり、モンテカルロで期待値を求めたりするので、結構重いです・・・ 学生なんで確信を持って言えないのですが、恐らく就職希望している業界がVBAとc++がメインなのでVBAで数値計算をできるようになっておく必要があると思います。 とりあえずまだ時間があるので、一度自分でVBAで書いてみてからデメリットを実感して見ようかと思います
498 名前:デフォルトの名無しさん [2021/08/13(金) 21:59:38.88 ID:IVydqk9y0.net] >>481 確かにそうですね・・・ 正直言語の違いなんて手段の違い程度しかないとは思うので結局責任を取れるくらい、周りと話をつけたり、しっかり計画を詰めるほうが重要ですよね
499 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 22:15:24.05 ID:al2VsHhL0.net] その分野には詳しくないんだが、不向きなのに何故VBAを数値計算に使うんだ? エクセルならVBA使わずとも関数とかソルバーで出来るんじゃない?
500 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 22:24:34.19 ID:zvWaH7NU0.net] >>494 それ就職先に直接問い合わせた方が良いぞ vbaとc++を使う業界って聞いたことない。なにかの間違いだろう
501 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 23:20:47.22 ID:WIfN9845M.net] 賑わってるね
502 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 00:11:33.82 ID:p2FjIi+P0.net] >>497 あっ…なるほど(察し
503 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 00:32:25.73 ID:8xoU1q0D0.net] 夏季休暇に突入したぜウェーイ!
504 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 03:50:50.70 ID:2+Zp3qYIa.net] c++とvbaを両方とも使うのありますよ ターボファンの3次元ブレード図面の自動生成をする為に autoCAD用APIをc++使ってdirectXのシェーダーでやり 流体計算はcudaの並列計算する一方で ユーザーインターフェースはExcelVBAで寸法入力させるんですよ
505 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 07:34:08.52 ID:olTKpvXL0.net] 何度も申し訳ありません 期間の日付をA5〜A100に自動で打ちあがるようにしたいのですが 例えばB1に整数3が入りB2に整数5が入った場合 A5〜A7に3、4、5 と自動で打ちあがるようにしたいです B2に整数以外が文字などが入る場合は 例えばB1に3B2に英字のKが入った場合 A5に3A6にK が打ち上がるようにしたいのですが 下記コードだと2回目以降はB1の値が変わっただけでは発火しないので B2も変更しなければなりません B1の値が変更されたら即発火させるにはどのようなコードで記述したらいいのでしょうか? Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Target.Address <> "$B$2" And Target.Address <> "$B$1" Then Exit Sub Range("A5:A100").Clear Dim cnt As Long Dim i As Long, j As Long j = 0 cnt = Target.Value - Target.Offset(-1).Value For i = 5 To cnt + 5 Cells(i, 1) = Target.Offset(-1).Value + j Cells(i, 1).NumberFormatLocal = "@" j = j + 1 Next i End Sub
506 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 07:41:00.78 ID:X5b04eQGM.net] 打ちあがるって何?
507 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 07:49:40.96 ID:WRC7pvXs0.net] >>502 「はじめの整数」と「終わりの整数」を指定し、 「その間の数字を個別に整数で出力」したい ・B1が最初、B2が最後。ここは手で入力 ・B1かB2どちらかを更新すると以下が走る ・出力範囲はA5:A100 ・出力範囲は無条件で毎回clear ・整数以外の場合は、B1とB2の内容がA5とA6にコピー >>503 「出力」の意味だろう
508 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 08:01:31.03 ID:olTKpvXL0.net] >>503 > 打ちあがるって何? すいません 出力です!
509 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 08:04:36.53 ID:olTKpvXL0.net] >>504 その通りでございます。 B2には整数以外が入る場合もありますので その場合はB1の整数だけが出力されればいいです
510 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 08:16:43.15 ID:FeW4uPBDM.net] IsNumericでB2を判定してTrueならFor文を走らせて、FalseならB2をA6へ
511 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 08:16:49.28 ID:WRC7pvXs0.net] >>502 Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo err 'B1B2じゃなければ終了 If Intersect(Target, Range("B1:b2")) Is Nothing Then Exit Sub 'とりあえずクリア Range("A5:A100").Clear 'メイン。整数じゃなければerrに飛んでコピーして終わり。trycacheみたいな事がしたかった 最初 = Cells(1, 2) 最後 = Cells(2, 2) ' If (Int(最初) = 最初 And Int(最後) = 最後) Then 行 = 5 For i = 最初 To 最後 Cells(行, 1) = i 行 = 行 + 1 Next Exit Sub End If '整数以外 err: Range("a5:a6").Value = Range("B1:b2").Value End Sub
512 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 08:17:31.92 ID:WRC7pvXs0.net] >>507 numericだと小数のときにめんどくさくなるよ エラーで飛ばしたほうが早い
513 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 08:32:21.96 ID:olTKpvXL0.net] >>508 ありがとうございます! まじすごい 半年ぐらい考えて調べてやってみて 全然できなかったのに 一瞬でできるなんて… プロの方ですか?
514 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 08:34:31.28 ID:FeW4uPBDM.net] あぁそうか整数の時だけなのか でもOnErrorResumeNextはバグを見逃しやすくなるから個人的にはあんまり使いたくねぇなぁ lsNumenic(B2)の後にB2=CLng(B2)で整数判定かけるのってどう?……見辛くなるか
515 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 09:09:38.05 ID:LMRL1zmta.net] >>502 がそもそも何で質問の様な動作になるかがわかってないとこれからも簡単なことでつまずくと思うよ 当初と違って最初のif分に「Target.Address <> "$B$1"」が含まれたことでB1でも下のロジックが動くようになったけど 「cnt = Target.Value - Target.Offset(-1).Value」これがB1がTargetだと右のOffsetが存在しないから以降のコードが正しく動作しない状態になってる B2→Target.ValueはB2、Target.Offset(-1)はB1 B1→Target.ValueはB1、Target.Offset(-1)は存在しないセルなのでエラー ここをB1でもB2でも正しくセルの値を参照できるようにすればいいのでは ちなみに「On Error Resume Next」のせいでエラーになっているのを無視して動作するようになってるので外したほうがいいのでは
516 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 09:17:38.32 ID:WRC7pvXs0.net] >>510 ただの事務だよ。15年ぐらい色々書いてるから、これぐらいならまぁ あと、読みづらいコードは最初から書き直した方が早い事も多い
517 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 09:25:22.77 ID:olTKpvXL0.net] >>512 > >>502 がそもそも何で質問の様な動作になるかがわかってないとこれからも簡単なことでつまずくと思うよ > 当初と違って最初のif分に「Target.Address <> "$B$1"」が含まれたことでB1でも下のロジックが動くようになったけど > 「cnt = Target.Value - Target.Offset(-1).Value」これがB1がTargetだと右のOffsetが存在しないから以降のコードが正しく動作しない状態になってる > B2→Target.ValueはB2、Target.Offset(-1)はB1 > B1→Target.ValueはB1、Target.Offset(-1)は存在しないセルなのでエラー > ここをB1でもB2でも正しくセルの値を参照できるようにすればいいのでは > ちなみに「On Error Resume Next」のせいでエラーになっているのを無視して動作するようになってるので外したほうがいいのでは ネットで拾ったコードにOn Error Resume Nextを 加えたりして動くように自分なりにやってみたのですが cnt = Target.Value - Target.Offset(-1).Value の意味が理解できなくて・・・ 少々自分にはレベルの高いコードでした 仕事でどうしてもエクセル使わないといけなかったので無理しましたw ご教授ありがとうございます!
518 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 09:28:14.25 ID:olTKpvXL0.net] >>513 > >>510 > ただの事務だよ。15年ぐらい色々書いてるから、これぐらいならまぁ > あと、読みづらいコードは最初から書き直した方が早い事も多い 私はVBA歴2年なのに簡単なコードしか書けなくて いつになったら皆さんのように書けるようになるのかと思いまして 自分も15年ぐらい頑張れば書けるようになるのかな
519 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 10:58:30.72 ID:UIvxBUgE0.net] Excelの関数とか覚える必要ないでしょ 全部マクロでやれば済むはずだし。 全部マクロで処理している人が職場にいる。
520 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 11:02:58.83 ID:WZYuRp6L0.net] 適材適所
521 名前:デフォルトの名無しさん [2021/08/14(土) 11:11:37.37 ID:Wd8wuOU/0.net] >>496 使う理由は確かにわからないんですよね・・・ ただ、日本語以外の本でもその業界の数値計算のコード例がC++かVBAかMATLABなので恐らく業界のデファクトスタンダード になっているんだと思います。 VBA以外にも使えそうなエクセルの機能があるなら使っていこうかと思います
522 名前:デフォルトの名無しさん [2021/08/14(土) 11:13:11.03 ID:Wd8wuOU/0.net] >>497 分野は金融系専門職ですね・・・ 実際に働いたことある人から聞いたので恐らく実際に使うのだと思います
523 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 11:22:28.35 ID:WRC7pvXs0.net] >>501 そういう事か、それならどこにでもあったわ、スマン 入出力部分だけExcel vbaやaccessってのはたまによく見る >>518-519 c++・MATLABをメインで勉強した方が良い その場合のvbaは補助的に使う物なので、ほとんどの機能を使わない。
524 名前:デフォルトの名無しさん [2021/08/14(土) 11:37:23.70 ID:WNZYUSqEa.net] たまになのによくみる?
525 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 12:03:40.37 ID:MjnqNUAdF.net] >>515 5ちゃんを観るのを止めると綺麗なコード描けるようになる
526 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 12:21:33.89 ID:r4eiaXelM.net] >>521 「そんな業界あるかよっっ」 「こんな使い方するらしいです」 「あーそれなら知ってる」 の流れw
527 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 12:31:49.92 ID:egxXCzK30.net] if,and,orと変数の使い方を覚える Functionの使い方を覚える(Byval,ByRef) Range(”A2”)みたいな書き方から、Worksheet.Cells(2,1)の様な書き方に変える 配列、Dictionary,Collectionの使い方を覚える ユーザーフォームを作れるようになる (クラスの使い方を覚える) こんな流れで順々にやれることを増やしていくといいよ
528 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 12:35:39.31 ID:WZYuRp6L0.net] >>523 ブロント語の事を言ってるのでは まれによくみる
529 名前:デフォルトの名無しさん [2021/08/14(土) 16:05:31.07 ID:9rufdIX60.net] ID:olTKpvXL0 いつものあいつ
530 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 16:13:08.42 ID:FeW4uPBDM.net] いつものあいつって言いたいだけの例の人
531 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 16:13:36.00 ID:WZYuRp6L0.net] いつものあいつに粘着してるやつ
532 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 16:16:12.93 ID:p2FjIi+P0.net] Rubyの人だっけ
533 名前:デフォルトの名無しさん [2021/08/14(土) 19:17:04.70 ID:QQrfTJ+jM.net] またも引っ掛かる間抜けな人達
534 名前:デフォルトの名無しさん [2021/08/14(土) 23:40:30.92 ID:0AEpqYcN0.net] VBAはビジネスソフト板でやれ。 ム板でVBAの話する奴は全員荒らし。
535 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 01:41:34.07 ID:Ab4oMS/u0.net] ListBoxAに複数行の内容を表示し、その行数をラベルに表示させている。 RemoveItemで行を削除した後、ラベルの表示内容を更新したい。 といった場合に、 RemoveItemの後でラベルの数字を1マイナスする、という手動処理ではなくて、 ListBoxAの内容が変更されたことをトリガーとして行数を再計算する、という自動処理にしたいんですが、 どのイベントプロシージャを使えばいいですか?
536 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 09:02:47.73 ID:Vp1mNkx00.net] またでたー
537 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 10:47:47.12 ID:FNsj8xWN0.net] >>532 無いっぽい >RemoveItemの後でラベルの数字を1マイナスする 例えばcommandbuttonでRemoveItemしてるなら、 以下のようにするしか Private Sub CommandButton1_Click() 'removeitemの処理がここに Debug.Print ListBox1.ListCount End Sub
538 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 10:48:11.05 ID:FNsj8xWN0.net] RemoveItemにevent追加するほうが綺麗だけどねぇ vbaじゃ無理だねぇ
539 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 11:06:26.14 ID:47f+T2dk0.net] 仮にイベントがあったとしてもremoveitemのあとに再計算の処理を書いたほうがスッキリしていいと思うが
540 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 11:24:14.03 ID:U+FsjVqC0.net] >>536 RemoveItemしてるのが1箇所ならいいかも知れんが複数あったら面倒だろ
541 名前:デフォルトの名無しさん [2021/08/15(日) 11:44:01.29 ID:PuWX92Pra.net] 一ヶ所にまとめればいいだけだし
542 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 11:48:45.57 ID:U+FsjVqC0.net] イベントに書ければ1箇所にまとめる手間もないし1年後に改修した時に1箇所にまとめたのを忘れてRemoveItem単体で使ってバグることもないし… まあVBAでは夢物語なんだけどね
543 名前:532 mailto:sage [2021/08/15(日) 12:12:51.35 ID:Ab4oMS/u0.net] ありがとうございます。 その後、試してみたこととして、 ListBoxのChangeイベントに再計算の処理を書いておき、 RemoveItemの後で.listIndex=0の処理を入れたところ、 一発目のRemoveItem後は、期待どおりChangeイベントが発生してくれましたが、 二発目以降は、.listIndexが0→0と変化なしのせいか、イベントは発生しませんでした。 行数を再計算したい、と書きましたが、 単純に全体の行数であれば、RemoveItemの後で.listCountをラベルに代入するだけの一行で済みますが、 実際は、リストの1カラム目(ID欄として使用)が100未満の場合と100以上の場合で分けてカウントしており、 FOR文で、ID100未満までの間でヒットするIDがあるたびに対象のカウントをインクリメントし、 2つ目のFOR文で、ID100以上について同様の処理を行う、 という風にしようとした時に、これが冗長に思えました。 もし、使えるイベントがあれば、 そのイベントプロシージャの中で、 それぞれのカウンタラベルのうち対象となる方のみマイナスした値に変更する、 という処理を入れるだけでOKになりそう、と考えました。 結論としては、 イベントに頼らず、 指定したIDの行を.RemoveItemする処理のところで、 そのIDが100未満か100以上かで分岐させて、 その分岐の中で、対象となるカウンタをマイナスする、 という処理にしました。
544 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 14:06:03.01 ID:Q1u7LxQ80.net] >>526 > ID:olTKpvXL0 > > いつものあいつ 前も言われましたがいつものあいつとは? 荒らしがいるんですか? 自分はまだここ見始めたの1年ぐらいなので 知りませんが
545 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 14:16:20.36 ID:044XE2rOa.net] そういうの知っても意味ないから放置でいいのでは 質問されたら答えるだけで無理に関係ない話題でレスを進める必要はないのでは
546 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 14:35:34.20 ID:FNsj8xWN0.net] >>540 カウンタのマイナスは怖いな。数え直した方が良いと思う >>541 >>526 が荒らしだから放置していて良いよ 「いつものあいつ」ってのは元々存在しない
547 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 15:32:30.69 ID:mzIErmSO0.net] >>543 > 「いつものあいつ」ってのは元々存在しない 世にも奇妙な物語みたいな不気味さがw
548 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 22:31:41.12 ID:47f+T2dk0.net] >>539 そもそもまとめたことを忘れるようなやつはイベントの存在も忘れてる つーかVBAじゃなくても標準でそんなイベント発生する言語はないと思うぞ
549 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 22:49:28.66 ID:FNsj8xWN0.net] >>545 そりゃ標準ではない classを継承してメソッドにイベントハンドラを追加できるようにできる言語はいくらでもあるよ vb.netでも可能
550 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 23:03:09.52 ID:U+FsjVqC0.net] >>545 > そもそもまとめたことを忘れるようなやつはイベントの存在も忘れてる だから忘れてもいいって話 > つーかVBAじゃなくても標準でそんなイベント発生する言語はないと思うぞ C#とかなら標準にはなくても派生して作れるってこと
551 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 23:33:36.15 ID:HzefVCWR0.net] フォームのチェンジイベントをイチイチ回避させないといけないのマジで面倒くさい フラグ作ってif からのexit subとかマジで面倒くさい
552 名前:デフォルトの名無しさん mailto:sage [2021/08/16(月) 05:14:26.01 ID:XafigDS10.net] EXCEL以外の言語なら簡単にできるとかいう人っていつもの人ですか?
553 名前:デフォルトの名無しさん mailto:sage [2021/08/16(月) 20:23:33.18 ID:pkWTpyDW0.net] 少なくとも一番ムキになってるアレがそうなんでしょうね
554 名前:デフォルトの名無しさん mailto:sage [2021/08/17(火) 02:14:38.57 ID:XfCCEtxD0.net] 昔はこのスレまともだったのに、変な荒らしが現れてからおかしくなっただけ
555 名前:デフォルトの名無しさん [2021/08/17(火) 14:49:45.30 ID:n4WKWZLba.net] 昔?あ、俺生まれてないや
556 名前:デフォルトの名無しさん mailto:sage [2021/08/17(火) 15:23:12.86 ID:2f/o9RsTM.net] >>552 いつ生まれたの?w
557 名前:デフォルトの名無しさん mailto:sage [2021/08/17(火) 20:35:18.63 ID:4IURpNomM.net] >>552 5chは年寄りの巣窟ですよ。 子供は他所で遊んだ方が良いですよ。
558 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 01:46:41.56 ID:GJSA9V5J0.net] す、巣窟?
559 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 12:48:42.55 ID:gPE31PeS0.net] そ う だ よ
560 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 00:11:44.24 ID:YzPl1p2A0.net] Dim mysubfiles As Files Dim mysubfile As File For Each mysubfile In mysubfiles 中略 Next このループ中で作成したファイルも このループ内の処理を通したいのですが どうしたらよいでしょうか。 具体的な状況は以下のとおりです。 ・ループ内では拡張子xlsxのファイルを加工したい。 ・しかしxlsmで保存されている場合もある。 ・ループの最初にxlsmを開いてxlsxとして保存する処理を入れたものの そのxlsxが加工されない
561 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 00:21:12.76 ID:EM+6hHZh0.net] >>557 xlsmがあればフラグをTrueにして、最後までループしたらもう一度その処理をするとか? それなら「元々xlsmだったもの のみ」の処理はできないが、中略の中身によってはOKでしょう 「元々xlsmだったもの のみ」処理するのであれば、xlsm処理時点でDictionaryにファイル名をAddして、ループ終わった後に再度ループさせ、Dictionaryにあるファイルのみ処理する になるかな 読みづらくはなると思うけど仕方ない
562 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 03:30:46.68 ID:fkNLvzJY0.net] >>557 ループ中で新たに作成したxlsxファイルも、 元々xlsxだっとファイルと同じ処理を行いたいって事でいいでしょうか。 編集するファイル用の変数(例えばTargetFile)を新たに用意して、 中略部分は mysubfile ではなく TargetFile を処理するというコードにしておきます。 冒頭にその TargetFile を何に割り当てるかを決定するコードを書きます。 ・mysubfileがxlsxである場合は、mysubfileの参照をTargetFileへそのまま代入 ・そうでない場合はxlsxとして保存しなおして、保存したxlsxを取得してTargetFileへ代入 条件によって反復子から取得した値がそのまま扱えない場合はこういう書き方をするのが一般的かと思います。 中略部分を関数にして引数に渡す値を変えるといった表現方法でもいいでしょう。
563 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 06:44:10.09 ID:O2iQQ7aA0.net] >>557 情況よくわからん > ・ループの最初にxlsmを開いてxlsxとして保存する処理を入れたものの 保存してるんならファイル名わかってるんだしそのまま処理すればいいと思うんだが…
564 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 07:35:23.32 ID:+liSrGPN0.net] 自分で配列なりコレクションなり用意してDoでループ回せよ
565 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 07:43:25.84 ID:6SYvdNEC0.net] ループの中で処理するんじゃなく、サブルーチンにして呼び出す方がいいな
566 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 14:52:28.33 ID:+liSrGPN0.net] そのサブルーチンを呼び出すのにどうやってループさせるの? もしくは そのサブルーチンのなかでどうやって列挙させるの? って話だと思うんだが
567 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 14:57:01.36 ID:01P72Y3qM.net] xlsmだったらxlsxにしてそのファイルを引数にして渡す xlsxだったらそのまま渡す それだけのこと
568 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 15:39:01.41 ID:fkNLvzJY0.net] 前々から思ってたんだけど、抽象的に質問書く人多いね あと謎用語作ったり(この前も「打ちあがる」とか何とか) テンプレ作った方がいいんじゃないか?
569 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 15:48:44.06 ID:XV1yMITLa.net] 別に適当に質問してくるなら適当に返せばいいでしょ それなりの回答を求めるならそれなりに質問するのが常識では
570 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 18:27:44.18 ID:pH4dbDdN0.net] >>565 そういうのはいつもの奴だと思ってスルーで良いかと 抽象的に書くのはコードだけにしてほしいね
571 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 19:51:09.61 ID:qaJDzmMG0.net] 質問スレなのに質問しにくい雰囲気を作っていくぅ〜
572 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 22:28:26.67 ID:tsSDUWXI0.net] 問題ない
573 名前:デフォルトの名無しさん mailto:sage [2021/08/21(土) 00:15:10.89 ID:fb/04mNm0.net] >>568 質問しにくい雰囲気の中であっても質問できる力を身につけて欲しい というこのスレの思いやりがわからんのかね。
574 名前:デフォルトの名無しさん mailto:sage [2021/08/21(土) 03:34:48.94 ID:ezVaAvb40.net] >>557 んだよコレクションにFileオブジェクト積み立ててFor Eachの最中にコレクションにFile追加したら追加した分だけループしねーのかと思っちまったじゃねーか。 普通に回るわ。 コレクションに積み立てたFileがxlsmのときはxlsxでセーブしてコレクションの中身の参照をそっちに置き換えて開いて加工してセーブすりゃいいだけじゃねーか。 ループし切らないと思ったから、ファイル情報を抱えるエンティティクラス作って、そんなかに加工済みフラグとか設けて、ファイル追加したときにループ処理再帰してもう加工済みだったら処理飛ばすとかしなきゃいけないとか思ったから実は結構骨のある質問じゃないのか?とか思ってバカ見たわ。 いや、単に俺の知識不足だな。すまんかったな。もう寝るわ。
575 名前:デフォルトの名無しさん mailto:sage [2021/08/21(土) 11:04:58.97 ID:zxg8KyYK0.net] For Eachの順序はファイル名か何かだから、 既にforeachの処理が過ぎたファイル名だと実行されないぞ
576 名前:デフォルトの名無しさん mailto:sage [2021/08/21(土) 17:09:47.50 ID:aaIGTne20.net] >>557 ループ内で.xlsm→.xlsxに変換したファイル名を配列に追加しておき、 ループを抜けた後で、その配列に格納されたファイルに対して加工処理を行えばいいのでは?
577 名前:デフォルトの名無しさん mailto:sage [2021/08/21(土) 20:04:21.12 ID:NaiRsfJYH.net] 最初のループは一覧を2セット作るだけにして次のループで処理したら?
578 名前:デフォルトの名無しさん [2021/08/21(土) 20:35:14.71 ID:7GAoG1Iq0.net] Rustのメモリ安全性はボローチェッカーによって担保されているが、 Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、 GC無しでView types参照の有効性を検証することによってメモリ安全性を保証しつつ 限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか? Nimの実験的特徴 著者: アンドレアス・ルンプ バージョン: 1.5.1 nim-lang.github.io/Nim/manual_experimental.html Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し ているにもかかわらず、Cのソースコードを吐き出せるのでC言語でリモートワークされ ている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる 「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
579 名前:デフォルトの名無しさん mailto:sage [2021/08/21(土) 23:03:58.45 ID:ezVaAvb40.net] >>572 んなこたぁない。 実際やってみてコレクションに追加されたもんは頭から順にファイル名に関係なくFor Eachで拾えるのは確認済み。 ソース展開してもいいけどどっかにソース張り付けて展開出来るサイトない? そこそこ大きくなったのと5chに貼り付けると連続した半角スペースが1個になるから見づらいもんね。
580 名前:デフォルトの名無しさん mailto:sage [2021/08/21(土) 23:17:33.77 ID:ezVaAvb40.net] >>575 ぶっちゃけ始めるのにいい言語スレの誤爆だろうが、Rustは新し過ぎて本とかも殆ど出てないから初心者には向かないよ。 て言うかVisual Studio Codeで開発環境構築しようとしたけど動かん。 手順教えてくれるとありがたいんだがのう。 ま、スレ違いになるからそっちのスレ行くか。
581 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 00:09:36.86 ID:3/Qg+sLj0.net] >>576 foreachは順序の保証は無いから途中で追加したり削除するとどうなるか分からない。 言語によってはエラー出るぐらいの変な挙動 試しにworksheetsでやってみたけど、途中で追加したものは処理されない Sub foo() flg = True For Each x In Worksheets '1周目の時だけworksheetを追加する If flg Then Worksheets.Add flg = False End If Debug.Print x.Name Next End Sub
582 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 00:11:00.32 ID:3/Qg+sLj0.net] >>578 の続き 追加したものに対してもforeach内の処理かましたければ、 サブルーチンとして外に出して個別に実行した方が良い ※arrayに入れてから別のfoeachループにしたほうが良いかもしれない Sub foo() flg = True For Each x In Worksheets '各シートの処理 Call print_worksheets_name(x) If flg Then Set 新シート = Worksheets.Add '新シートの処理 Call print_worksheets_name(新シート) flg = False End If Next End Sub 'メインの処理はここ Function print_worksheets_name(x) Debug.Print x.Name End Function
583 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 00:39:14.99 ID:vfl1uW7oa.net] ググったらサンプルがあったから試してみた。コードはこれ Sub Sample_Files() Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") Dim myFiles As Object Dim myFile As Object Dim strFiles As String Set myFiles = FSO.GetFolder("D:\test\").Files strFiles = "ファイル数:" & myFiles.Count & vbCrLf For Each myFile In myFiles strFiles = strFiles & myFile.Name & vbCrLf '★ Next MsgBox strFiles End Sub 対象のフォルダに「新しいテキスト ドキュメント2.txt」「新しいテキスト ドキュメント4.txt」の2ファイルを格納 ★にブレークポイントを設定して止まった時点で 対象のフォルダに「新しいテキスト ドキュメント1.txt」「新しいテキスト ドキュメント3.txt」の2ファイルを格納 この結果はMsgBoxは最初に格納されていたファイルのみが表示された これを踏まえたらファイルを新たに保存しても保存したファイルはループ中は参照されないのでは
584 名前:デフォルトの名無しさん [2021/08/22(日) 04:22:11.55 ID:HSx9B6Zm0.net] >>578-580 なるほど言いたいことは分かった。 確かにFor Eachの取得順が保証されないのは正しい。 だがその話には続きがある。 For Each の取得順序が保証されていないのは、 取得元のObjectに依存するから。 https://thom.hateblo.jp/entry/2018/08/11/194900 そしてくだすれでソース展開用サイト教えてもらったから ソース貼っといた。 https://pastebin.com/RBXU7SyT Test3.xlsmとTest4.xlsx作って先にコレクションに登録。 ループ途中でTest1.xlsmとTest2.xlsxを作成して追加しているが、 挙動がおかしいようであれば言ってくれ。
585 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 08:13:33.74 ID:bz4GO5A/0.net] FileSystemObjectのFilesの話だけどCollectionで問題ないから俺の勝ちー ってか?w
586 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 08:38:21.01 ID:HSx9B6Zm0.net] >>582 そもそもループしてる最中の母数を弄るようなことをするのってどうなのよ?っていうのはあるが、 気に食わなければ>>571 で言ったような方法をとればいい。多分少し考えれば他にも色々方法はあるだろうが、 他の人にはともかく、その凄く悔しそうなレス見るとどうやら君は知らない内に勝手に負けてしまったのだろう。
587 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 09:40:51.11 ID:bz4GO5A/0.net] >>576 の話な >>572 はFilesの話だからコレクションでそんなことないとか言われても困るってこと コレクションにしろ保証されてる動作じゃないからうまく行った事例があってもあまり意味はない
588 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 09:49:45.02 ID:AgYnuzAe0.net] いつもの質問に相手した時点で負け
589 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 10:04:31.73 ID:HSx9B6Zm0.net] >>584 別にコレクションじゃなくても配列だろうがディクショナリだろうが何でもいいよ。Filesの中身を最初に積み立て直してループしてやればいいこと。 詰め込み対象のループの動作保証が欲しいなら>571で言った通りエンティティクラス用意して何かに詰め込んで一度加工したかどうかのフラグ持って、追加したらエンティティクラスも追加しといて、ファイル追加したらループ再帰して加工したフラグが立っていれば処理飛ばせばいいこと。 まぁ何故Filesを持ち回ることにそんなに執着しているのか知らんけど、そうでなければこの方法で実現出来るのは確か。 そんなにFiles持ち回ることに拘るなら人の作ったもんに文句ばかり言ってないでそれで実現出来るコード晒せばいい。
590 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 10:46:11.18 ID:vfl1uW7oa.net] こうすればいいよって回答してあげるのはかまわないけど そもそもなぜそれがダメなのかを指摘してあげたるのも大事では 当初の質問であれば >・ループの最初にxlsmを開いてxlsxとして保存する処理を入れたものの > そのxlsxが加工されない 「ループの中で新たなファイルを作ってもFilesではそのファイルが取得できないようだ」という問題点を教えて そのうえで中略のコードをSub化してループで取得したファイルもループの中で作成したファイルも そのSubを呼び出すようにするとか解決策を提示したほうがいいんじゃないかねえ
591 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 11:08:18.32 ID:bz4GO5A/0.net] >>586 何をカリカリしてんのか知らんけどFilesの話にコレクション持ち出して「んなこたぁない。」とか言うのが頓珍漢だって言うだけの話 あと>>571 は積み立てるとかの謎用語使われてて読み飛ばしてるので悪しからず
592 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 11:11:26.73 ID:HSx9B6Zm0.net] >>588 なんだソース晒さないのか。 ならこの会話はここで終わりだな。
593 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 11:39:16.64 ID:bz4GO5A/0.net] はじめから頓珍漢だっていう指摘だから誰かさんにまともな理解力あれば既に終わってた話なんだけどねw
594 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 11:51:49.66 ID:w9I0Mw1ep.net] >>589 バカはほっといてFilesのループだけで何とかする方法ない?
595 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 12:02:21.45 ID:tt5sChhUM.net] 別の配列を用意して、追加と処理を別々にすればいいだけ
596 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 12:08:29.70 ID:vfl1uW7oa.net] >>591 中略で何をしてるか不明だからそこの話題の解決は難しいのでは ループでどんなファイルをFilesに含めているかわからないがループのファイルには拡張子xlsmとxlsxが対象になっているなら ・xlsm→加工してxlsxに変換して保存(元のxlsmは何もしない) ・xlsx→加工してxlsxのまま保存 ・それ以外→何もしない これだけの話にも見えるよね
597 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 12:35:51.87 ID:bz4GO5A/0.net] >>591 > バカはほっといてFilesのループだけで何とかする方法ない? .xlsm ⇒ .xlsx にした時点でFilesの内容がどうなるかはわからんから一旦Filesの内容を配列なりコレクションなりに取り込んでおくしかないと思う
598 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 12:37:07.40 ID:fq28dqqO0.net] リスト構造みたいなのは?
599 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 13:02:31.83 ID:HhgXzLK4H.net] 配列だろうがリストだろうがそこは自由 とにかくループ中で母集団をいじらなければいいだけの話だから
600 名前:デフォルトの名無しさん [2021/08/22(日) 13:03:46.65 ID:0Cz6ueFz0.net] Rustのメモリ安全性はボローチェッカーによって担保されているが、 Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、 GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ 限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか? Nimの実験的特徴 バージョン1.5.1 nim-lang.github.io/Nim/manual_experimental.html 第二プログラミング言語として Rust はオススメしません Nim をやるのです https://wolfbash.hateblo.jp/entry/2017/07/30/193412 Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる 「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
601 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 13:08:21.86 ID:bz4GO5A/0.net] >>595 リストでもいいけどVBAで簡単に扱えるものある?
602 名前:デフォルトの名無しさん [2021/08/22(日) 19:40:10.48 ID:HSx9B6Zm0.net] >>591 遅くなってすまない。 そうだな、バカはほっといて Filesのループだけで何とかする方法か。 Filesのループだけで何とかすることは出来ないことはないが、 綺麗に一重のループという方法は今すぐには思いつかないな。 だが、フォルダから直でやり取りしたいからというのであれば、 方法としては>>571 で書いた方法とほぼ一緒だが、 Filesのループであればエンティティクラスは使えない。 ではどうするか、といったところで、ループで加工を終了したxlsxのパス名、 または加工する際に使ったxlsmのパス名を何等かの形で保持して、 後はファイルを作った際にループを再帰して加工が終わった ファイルの処理は飛ばしてしまえばいい。 そうすれファイルを追加した後のファイルの順序やどこからループするか、 どこまでループするかをあまり気にする必要はない。 ただ、その分ループの回数は増える。が、もし現在の Collectionの仕様が変わったとしても使うことが出来るだろう。 前回作ったソースを少し弄ってそんな感じにしたので、 展開しておこう。 https://pastebin.com/9QVrJDjF
603 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 19:51:55.58 ID:QHUWYA/B0.net] いちおうVBAにCollectionってあるけどな .Net FrameworkのArrayListとかQueueとかつかえばいいんじゃね
604 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 20:00:01.46 ID:QHUWYA/B0.net] まずFilesってのが何なのかはっきりしとけ まあFileSystemObjectのやつだろうけど あれは、位置指定で取り出したり出来なかったりする、かなり特殊な列挙だった気がする つか、追加処理でディレクトリ舐めて、そのあともう1回ディレクトリ舐めて処理すればいいだけじゃないのか? 再帰とか意味不明なんだが たんに2回ループ回すことを再帰と言ってる?
605 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 20:18:32.39 ID:QHUWYA/B0.net] >>596 For Eachでのループ中に、な Filesの列挙が実質For Eachでしかできないのがまあ困ったところなんだが
606 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 20:44:15.61 ID:3/Qg+sLj0.net] >>579 あかんのかねぇ xlsmをxlsxにするだけなら再帰処理は不要なはず
607 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 21:49:43.11 ID:aqCRpfAk0.net] 配列をループ中に、要素を追加・削除するのは、 すべての言語で、バグるから禁止 要素の追加・削除で、要素がずれるから、どうなるか分からない
608 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 21:56:43.26 ID:Dh2ra7Yx0.net] 最終手段はGoToでループ抜けることになるけど、xlsmの時の処理とxlsxの時の処理を分岐させればいいだけよね
609 名前:デフォルトの名無しさん [2021/08/22(日) 22:19:55.50 ID:xquIY43qa.net] 好きなように作れよ
610 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 22:29:56.81 ID:fZZZNArf0.net] >>605 だよね そもそもループに拡張子を変えたファイルを追加しようって考えがズレてるだけだよな
611 名前:604 mailto:sage [2021/08/22(日) 23:15:55.98 ID:aqCRpfAk0.net] 完全に、処理を分けて作る まず、拡張子だけを変える。 これで処理対象のファイルを確定させる その後、処理対象のファイルだけを処理すればよい。 この手順なら、処理中に処理対象のファイル数が増減することはない とにかく、バグらないような手順を作ることが大事
612 名前:デフォルトの名無しさん mailto:sage [2021/08/23(月) 08:26:55.69 ID:LGNn5NAE0.net] >>605 Goto文使うのはエラーのときと エラーとエラーじゃないときの 同じ後始末の部分以外は使うなって 死んだばあちゃんが言ってた
613 名前:デフォルトの名無しさん mailto:sage [2021/08/23(月) 08:53:51.78 ID:cXrkxB5+0.net] >>609 初心者にはそれしか解法がわからない場合もあるかなと思って プロシージャ分割とかも理解できない場合は、とりあえず動くプログラム作れたらなと
614 名前:デフォルトの名無しさん mailto:sage [2021/08/23(月) 10:54:22.12 ID:FgZeCk1s0.net] goto finaly
615 名前:デフォルトの名無しさん mailto:sage [2021/08/23(月) 23:10:58.58 ID:JXgHy/i50.net] ちょっとスレ違いで恐縮ですが知ってる方がいたら教えてください 3D CAD(catia v5、ソリッドワークス、NXなど)のVBAについて話題にしてるスレとかご存知の方いれば教えてください
616 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 01:04:28.30 ID:O47VPk1P0.net] そんなものはない
617 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 01:15:14.20 ID:F5g8S0IPM.net] >>612 これらの3D CADにVBAが載ってるの?
618 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 04:11:27.55 ID:daNQErAcH.net] エスパーするとマクロのことだろ
619 名前:デフォルトの名無しさん [2021/08/24(火) 05:20:46.31 ID:TjlSba9p0.net] >>612 馬鹿は死ね
620 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 08:13:34.81 ID:klPKE9MS0.net] >>612 そんなスレは存在しないし立てたとしても誰もレスしないだろう。 質問があるならこっちで聞けばひょっとすると誰か答えてくれるかもな スレ立てるまでもない質問はここで 157匹目 https://mevius.5ch.net/test/read.cgi/tech/1624024239/
621 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 08:30:12.55 ID:g24P+U87M.net] 調べたら、SolidWorksはAPIでVBAとかC(++)とかから呼び出せるみたいだから、Excel VBA で呼ぶ範囲ならこのスレでも良いんじゃない? CAD ソフト側の特有の動作は答えられる人少ないか居ないだろうけど
622 名前:デフォルトの名無しさん [2021/08/24(火) 09:09:24.64 ID:4r51bMHN0.net] >>618 そんな質問してないだろ
623 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 12:58:36.89 ID:v4BujoFfM.net] SolidWorksのAPI呼んでなにかしようとするような奴がこんfなスレでVBAの質問なんてしないだろw
624 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 13:07:40.15 ID:Ggt7zoavM.net] でも、3D CADのVBAって言っちゃうレベルの質問者さんだし...
625 名前:デフォルトの名無しさん [2021/08/24(火) 15:14:02.93 ID:WZMj7UxVF.net] 馬鹿には無理
626 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 18:59:28.08 ID:Tulkbq4hM.net] 最悪go toもありだろ
627 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 20:36:36.02 ID:DkRvLF/FM.net] おまいら、質問者を馬鹿にするのやめろよ
628 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 21:11:06.89 ID:4FqDVhnYM.net] 「貴方には無理」と言ってあげるのも親切 馬鹿が諦めず無理してるおかげで周囲は迷惑してる
629 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 21:17:10.14 ID:PotHtuTn0.net] dllやAPIアリならもうなんでもvbaのような
630 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 21:17:46.98 ID:PotHtuTn0.net] 知ってたら答えるけど、あまりにも知ってる人が少なすぎる メーカーに聞いた方が早いとおもう
631 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 22:24:25.02 ID:EnLftN4na.net] >>612 話題になってませんが聞くならこっちのスレかな? VBAなんでも質問スレ Part2 [転載禁止]©2ch.net https://itest.5ch.net/mevius/test/read.cgi/tech/1432173164 0001 デフォルトの名無しさん 2015/05/21 10:52:44 VBAを使った質問ならなんでもござれ 本来の対象であるオフィスアプリを操作する以外の話もOK ゲーム作り、Webアクセス、外部アプリの操作 COM(ActiveX)、Win32API、.NET Framework、DirectXなどなど VBAで実行するものであればなんでも質問してください
632 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 00:31:39.65 ID:1unhm7rk0.net] VBEの入力支援で「WorksheetFunction」って邪魔ですよね。 「Worksheets」が第一候補に表示されればいいのに。
633 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 01:55:37.60 ID:7J8MKXIfa.net] 辞書順だから仕方がないよね
634 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 07:25:33.24 ID:SRu++D3OM.net] 客先のお偉いさんにコンテンツの有効化を行わずにマクロを動かせと無茶振りされるなどした 決してデジタル署名云々をなどという話ではなく 既存のツールのコードをいじらずにWorkbook_Openのイベントを回避せよとのご指示を頂いたのだ どうしたものか
635 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 07:35:04.03 ID:ltkpDR880.net] >>631 他のブックにマクロを書いて ・イベント停止 ・ブックopen Sub foo() Application.EnableEvents = False Workbooks.Open (ThisWorkbook.Path & "\book1.xlsm") Application.EnableEvents = True End Sub
636 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 07:39:39.81 ID:SRu++D3OM.net] あ、他ファイルの新規作成も一切ダメだそうです
637 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 07:50:37.91 ID:ltkpDR880.net] じゃあ基本イベント停止にしてマクロを動かしたい時だけ Application.EnableEvents = True だな
638 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 08:12:30.95 ID:SRu++D3OM.net] 既存のツールのコードに手を加えるのはNG、別のファイルを作成するのもNG、数百人ほどいる作業員に配布してるツールだからExcelの設定を変更して回るのも現実的ではない 要するに作業工数を発生させずにイレギュラーに対応出来る特殊仕様用のツールを作れって事みたい
639 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 09:17:10.78 ID:ZSU75DCm0.net] なんか話おかしくね そのイレギュラー対応ツールはどこに置いて誰が使うことを想定してんだ
640 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 09:40:43.13 ID:ZqZAJ3QxM.net] 相手すんなよ偉いさんに振られた内容を盛って語ってるだけだろ そもそも客先からの要請なら普通にできないって断ればいいだけだし
641 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 10:21:16.42 ID:SRu++D3OM.net] いやまぁ断るんだけどさ 逐一ネットワークドライブのファイルとやりとりをしてるツールを社外の下請け業者にも使わせたいんだと まぁ当然ながら下請け業者からはネットワークドライブに接続はできないんよ だから何するにしてもエラーが出ます。なんならファイルを開いた時にコンテンツの有効化を押した時点でエラー出ますよ。って言ったらコンテンツの有効化を押さずにマクロを動かせば良いじゃないかって怒鳴りながら台パンされたのが昨日の話
642 名前:デフォルトの名無しさん [2021/08/25(水) 10:33:09.92 ID:PF+Wtj1u0.net] それで金もらうんでしょ
643 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 13:39:00.29 ID:9wT7W/qy0.net] >>638 断るという方針を決めているなら解決だな
644 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 14:41:15.54 ID:j973WKJq0.net] ユーザーフォームのコンボボックスでドロップボタンをおすと実行され、リストができるのですが、項目を選択しても反映されず空欄になってしまいます。 反映されるにはどうしたらいいでしょうか Private Sub ComboBox3_DropButtonClick() Dim LastDay As Long, MyYear As Long, MyMonth As Long, r As Long With UserForm1 .ComboBox3.Clear MyYear = Val(Replace(ComboBox1.Value, "年", "")) MyMonth = Val(Replace(ComboBox2.Value, "月", "")) '来月1日の1日前から今月の対象月の終了日を算出する LastDay = Day(DateSerial(MyYear, MyMonth + 1, 0)) 'リストボックス3に今日の日付リストを入れる For r = 1 To LastDay .ComboBox3.AddItem r & "日" Next r End With End Sub
645 名前:デフォルトの名無しさん [2021/08/25(水) 14:45:50.68 ID:vgh3MVy/M.net] しらんけど 月の変更時にやるもんじゃね?
646 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 15:11:25.13 ID:9wT7W/qy0.net] 知らんけど変数の頭によくMyとかmyとか付ける人いるけど私の年とか私の月なの?
647 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 15:32:21.08 ID:KYWpPte7M.net] mousedown でやるとか?
648 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 15:50:44.79 ID:ZSU75DCm0.net] ComboBox3のイベントでやることじゃないんじゃね
649 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 17:16:17.54 ID:92U/3Tama.net] DropButtonClickが発火していない可能性をまず見る Combobox1とCombobox2の頭に「.」が付いていないことが原因か調べる 来月1日の1日前から今月の対象月の終了日…の日本語がよくわからんが、仮にMyMonthが12ならどうなるの?というのは気になる そもそもDay関数で0日を指定しているんだから、どうやってもLastDayって0になるんでは? 最後のが原因かとは思うが、とりあえず気になったところを
650 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 17:19:41.69 ID:92U/3Tama.net] >>646 どうやら0日を指定すると前月末になる仕様なのね 誤った理解で申し訳ない https://vbabeginner.net/find-number-of-days-in-month/
651 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 18:17:55.62 ID:7AvRhiNY0.net] >>419 「100点取らなきゃいけない数学のテストが延々と続く」って 表現したことあるけど、あんたの表現は簡にして要を得てるな。
652 名前:デフォルトの名無しさん mailto:sage [2021/08/26(木) 01:04:55.66 ID:3Wwx5xcw0.net] >>641 まぁなんでもいいんだけどこういうテストしてみる TextBox1を設置してプロパティのmultilineをtrueにしておく んでコンボボックスのイベントの下の方にちょい付け加えてこうする Private Sub ComboBox3_DropButtonClick() Dim MyYear As Integer Dim MyMonth As Integer Dim LastDay As Integer With UserForm1 .ComboBox3.Clear MyYear = Val(Replace(ComboBox1.Value, "年", "")) MyMonth = Val(Replace(ComboBox2.Value, "月", "")) '来月1日の1日前から今月の対象月の終了日を算出する LastDay = Day(DateSerial(MyYear, MyMonth + 1, 0)) 'リストボックス3に今日の日付リストを入れる Dim r As Integer For r = 1 To LastDay .ComboBox3.AddItem r & "日" Next r End With TextBox1.Text = TextBox1.Text & Now & vbNewLine'←これ End Sub すると、combobox3でリスト開いた時だけじゃなくて、アイテム選択したときもイベントが発生していることがわかる
653 名前:デフォルトの名無しさん mailto:sage [2021/08/26(木) 01:06:07.22 ID:3Wwx5xcw0.net] そもそもcombobox3は結果表示のコントロールだから、ここに余計なもの置くべきじゃないわ Option Explicit Private Sub ComboBox1_Change() If ComboBox1.Value <> "" And ComboBox2.Value <> "" Then AddItemToComboBox3 End If End Sub Private Sub ComboBox2_Change() If ComboBox1.Value <> "" And ComboBox2.Value <> "" Then AddItemToComboBox3 End If End Sub Sub AddItemToComboBox3() Dim MyYear As Integer Dim MyMonth As Integer Dim LastDay As Integer With UserForm1 .ComboBox3.Clear MyYear = Val(Replace(ComboBox1.Value, "年", "")) MyMonth = Val(Replace(ComboBox2.Value, "月", "")) '来月1日の1日前から今月の対象月の終了日を算出する LastDay = Day(DateSerial(MyYear, MyMonth + 1, 0)) 'リストボックス3に今日の日付リストを入れる Dim r As Integer For r = 1 To LastDay .ComboBox3.AddItem r & "日" Next r End With End Sub
654 名前:デフォルトの名無しさん mailto:sage [2021/08/26(木) 01:06:23.79 ID:3Wwx5xcw0.net] >>650 続き Private Sub ComboBox3_DropButtonClick() '空にする End Sub Private Sub UserForm_Initialize() ComboBox1.AddItem "2021年" ComboBox2.AddItem "8月" End Sub
655 名前:デフォルトの名無しさん mailto:sage [2021/08/26(木) 01:08:23.20 ID:3Wwx5xcw0.net] Option Explicitつけないのがはやりなんかね 宣言しねぇのがはやりなんかね
656 名前:デフォルトの名無しさん [2021/08/26(木) 10:50:03.92 ID:3EUdzNHVM.net] 質問には必要だが 回答には不要
657 名前:デフォルトの名無しさん mailto:sage [2021/08/26(木) 14:29:16.05 ID:/k4Lkr6/0.net] VBAのコードを書くウインドウが何かのタイミングで個別ウインドウ表示に切り替わり、バラバラになって元に戻らなくなってしまったのですが、 プロジェクト一覧などが左側にある初期状態に戻すにはどうすれば良いのでしょうか?
658 名前:デフォルトの名無しさん mailto:sage [2021/08/26(木) 14:59:17.57 ID:2GwscEzmH.net] >>654 KYCU\SOFTWARE\Microsoft\VBA\7.1\Common\Dockを削除 完全な初期状態だと使いにくいから、自分流にカスタマイズした後Common以下を保存しとくといい
659 名前:641 mailto:sage [2021/08/26(木) 17:19:31.21 ID:eaDIsBK00.net] 皆様ありがとうございます。年と月の変更時に組み替えてできるようになりました >>642 それに変更しました >>644 試しましたが、リストの表示すらされませんでした >>645 その通りでした >>650 ありがとうございます。
660 名前:デフォルトの名無しさん mailto:sage [2021/08/26(木) 19:24:12.66 ID:/k4Lkr6/0.net] >>655 ありがとうございます!リセット機能が無いのですねぇ
661 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 02:17:56.45 ID:XzPbf7xa0.net] 請求書つくってて1行ごとに仕切り線を挿れたいです 入力があるセルのセルの下に、オートシェイプ(0.75ptなどの線)を引くことはできませんか? 規定の線では太すぎて表がごちゃごちゃになってしまいます(細線では複数のプリンターでかすれて出ませんでした) Excelでは線の種類が少ないので望みの書類をつくれない、力技でオートシェイプで引きたいけど手作業では大変 請求書データをコピペしてボタンおしたらオートシェイプの線がセルに沿ってしかれる、としたいです
662 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 02:53:29.63 ID:K563/rxVd.net] >>658 できます
663 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 02:57:38.41 ID:K97Q7PgmM.net] 条件付き書式で罫線を引いて 線の太さは色をグレーにしてごまかす VBA使わないなw
664 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 03:20:48.79 ID:k0s+jeSJH.net] >>658 '何か入力済のセルにオートシェイプで下線を引く Sub Macro1() For Each c In ActiveSheet.UsedRange If c.Text <> "" Then Call セルに下線(c.Row, c.Column) Next End Sub Sub セルに下線(r, c) x1 = Cells(1, c).Left x2 = Cells(1, c + 1).Left y1 = Cells(r + 1, 1).Top y2 = y1 ActiveSheet.Shapes.AddConnector(msoConnectorStraight, x1, y1, x2, y2).Select With Selection.ShapeRange.Line .ForeColor.RGB = RGB(0, 0, 0) '黒 .Weight = 0.75 '太さpt End With End Sub
665 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 03:32:32.93 ID:XzPbf7xa0.net] >>660 それだとモノクロプリンタに対応できません あと太いのは太いのでやぼったいですよね >>661 休み明けに頑張ってみます オートシェイプで選択できる太さはすべて指定出来ますよね?
666 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 03:44:32.68 ID:3njcewBU0.net] Shape系って使うのはいいんだけど削除してもオブジェクトが残るバグってない? 以前苦しんだ記憶が
667 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 05:22:31.37 ID:1cfI7qZ1M.net] モノクロプリンタでもグレーぐらい印刷できるやろ
668 名前:デフォルトの名無しさん [2021/08/28(土) 11:23:58.24 ID:wL/wcpIq0.net] グレーはやめとけ
669 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 11:34:50.96 ID:O3Ip+Qo9M.net] なんで?
670 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 12:05:27.22 ID:ZUCCF//La.net] 目がアーモンドになる
671 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 12:37:46.09 ID:XzPbf7xa0.net] >>664 一般的ではないですよね
672 名前:デフォルトの名無しさん [2021/08/28(土) 13:21:54.79 ID:GacscTPG0.net] 今時エクセルで請求書を作る会社って
673 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 13:26:28.47 ID:XzPbf7xa0.net] >>669 なにでつくるの? Accessは古すぎたしファイルメーカーは高すぎであきらめた 売上額月に600万程度だからExcelでも十分なんだよね
674 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 13:29:02.28 ID:Wn50/Mou0.net] 今時〇〇ってとか言うアホはスルーでいいよ
675 名前:デフォルトの名無しさん [2021/08/28(土) 13:34:29.23 ID:d2Jh3olLM.net] >>671 こういう馬鹿こそスルーだろ 請求書発行ソフトとか販売管理とか沢山あるだろ
676 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 13:41:02.22 ID:y1FEzj5CM.net] と、馬鹿が申しております。
677 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 13:41:56.34 ID:YRitmpAVd.net] >>672 市販のあわないだろ
678 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 13:50:09.98 ID:+T8TIHFV0.net] なんでそこで経理ソフトって出てこないんだろう・・・
679 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 14:11:22.66 ID:Wn50/Mou0.net] >>672 Excelで間に合ってるならそれでええやん 外野が何言ってんだかって感じ
680 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 14:15:33.19 ID:OUVKMoF10.net] まあ間に合ってるってならエクセルでいいけど シェイプで線引くような帳票が間に合ってるといえるのか 俺なら罫線で間に合わせるけどな
681 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 14:39:40.62 ID:nfIYqgR90.net] EXCEL帳票って多いよね 請求書に限らず
682 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 14:43:17.47 ID:EKyvlYlFd.net] うちみたいな零細は帳票の枚数も少ないしExcelに罫線で十分なんだワ 専用ソフトは従業員が2桁人数になってからだな
683 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 14:50:21.30 ID:+T8TIHFV0.net] 請求書の罫線にこだわるって何の意味があるんだろうと思う
684 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 16:39:25.21 ID:XzPbf7xa0.net] >>680 ぶっといの気にならない? 単なる美的センス的なこだわりだからとくに意味はないんだけどね ぶっとい枠線だらけの表とかみるとデザインセンスというか旧時代的な印象うけてしまう
685 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 16:40:04.12 ID:XzPbf7xa0.net] >>677 Excelで0.75とかひければ問題ないんですけどね
686 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 16:49:11.38 ID:clAN9KQWM.net] そもそも罫線レイアウトが旧時代的だよ
687 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 17:01:08.85 ID:Wn50/Mou0.net] >>681 さすがに旧時代的な印象だからって理由だったなら なぜExcelで?ってなるぞw
688 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 17:03:13.47 ID:XzPbf7xa0.net] >>683 でも印刷だと最低限は必要じゃない? 数十行ならんでるととくに 交互に色変えるのはモノクロやプリンタによって大きくかわるからねえ
689 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 17:04:05.90 ID:XzPbf7xa0.net] >>684 線以外は不満ない Accessも線選べないから細い四角をかいてならべてる
690 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 17:15:47.71 ID:6AjG+XmcM.net] そこまで帳票にこだわるならCrystal Reportsとか使えばいいのに https://www.sap.com/japan/products/crystal-visual-studio.html
691 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 17:21:15.10 ID:W6iJhC5F0.net] >>687 クリスタルレポート、アクティブレポート、PDFも別言語では使うけどEXCEL使う場合も多いからやっぱり抑えておくべきだよ。 特にここ、EXCEL VBAのスレだし。
692 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 17:23:01.48 ID:XzPbf7xa0.net] >>687 >>688 はじめて聞きましたが世界標準なんですね 日本語ではあまり情報がないみたいですね
693 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 17:27:11.56 ID:W6iJhC5F0.net] >>689 今は特に気にしなくていいよ。 そもそもVBAから使ったことないから VBAから使えるか分からんし。
694 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 19:16:34.16 ID:6UyriYnia.net] VBA使って作るぐらいだから大げさなものではないと思うから正直なところ明細の罫線はなくてもかまわないのではと思う 罫線信仰については日本は細かいと思うわ それなら偶数行の背景に薄いグレーの背景色をつけたほうがきれいに見えるかと
695 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 19:21:46.63 ID:P0+dXebs0.net] 帳票とかでも罫線レイアウトしてるのはただ単に四角く収まってるだけで別に使いやすくともなんともないんだよな 項目の意味より見た目の収まりでレイアウトしてるから意味不明だし書き込むスペースが足りなかったりするし
696 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 19:22:16.12 ID:XzPbf7xa0.net] >>691 モノクロレーザーだと濃淡でないのでスクリーントーンみたいになるんですよね これみてたけど線があったりなかったり色付きだったり なんか世界的な基準とかあるんですかね? https://i.imgur.com/GQyzXam.jpg
697 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 19:51:56.00 ID:6UyriYnia.net] どんなプリンタ使ってるか不明だけど印刷品質とかでモノクロレーザーでもそれなりな背景色つけられると思うから プリンタ側の設定みなおしてみたほうがよいのでは 基準なんて別にないでしょ作り手(提供者)のセンスだけかと
698 名前:デフォルトの名無しさん [2021/08/28(土) 20:04:28.62 ID:qSiuLs4Ta.net] 濃いグレーと薄いグレーがどう印刷されるかな
699 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 20:16:48.82 ID:k0s+jeSJH.net] Excelの設定でも解像度が指定できるしモノクロレーザーの設定でも濃度や網点の細かさぐらい変更できるのに
700 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 20:45:50.31 ID:XzPbf7xa0.net] >>696 300dpiだと文字がガタガタ 600dpiだと一番細いとされる点線が印刷されませんね
701 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 10:34:22.30 ID:7BYV+8iF0.net] 任意のセルを選択(飛び地あり)→数式の入っているセル全て値貼り付けしたくて作成しました 動くのですが100万を超えるデータで動かすと1分以上かかってしまいます 2次元配列?を使えば高速化できますか 配列は使ったことがなく説明を読んでも難しく混乱していしまいました よろしくお願いします Dim Sc As Range Application.Calculation = xlManual Selection.SpecialCells(xlCellTypeFormulas, 23).Select For Each Sc In Selection Sc.Value = Sc.Value Next Sc …
702 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 10:45:24.11 ID:lED3Ocwo0.net] >>698 selectionしなければ早くなるかも Sub Macro2() Application.Calculation = xlManual For Each Sc In Selection.SpecialCells(xlCellTypeConstants, 23) Sc.Value = 5 Next Sc End Sub
703 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 10:45:44.98 ID:HK4nM9G2a.net] >>698 Selectionは極力使わない方がいい 数式の入ったCellsをUnionしていって、最後にUnion範囲に対して値貼り付けすれば?
704 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 10:46:46.41 ID:lED3Ocwo0.net] 違った、こうか Sub Macro2() Application.Calculation = xlManual For Each Sc In Selection.SpecialCells(xlCellTypeConstants, 23) Sc.Value = Sc.Value Next Sc End Sub しかし選択してるのは定数なのに、valueをvalueにするの? あんまり意味ない気がするんだけど
705 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 11:23:08.03 ID:7BYV+8iF0.net] >>701 ありがとうございます 試してみます コピペを繰り返すより代入した方が早い、と出たので上記のようになりました Range一辺倒だったのでUnionも調べてみます
706 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 11:34:43.22 ID:IYYa0ToFM.net] >>698 > Selection.SpecialCells(xlCellTypeFormulas, 23).Select >>701 > For Each Sc In Selection.SpecialCells(xlCellTypeConstants, 23) > しかし選択してるのは定数なのに、valueをvalueにするの? > あんまり意味ない気がするんだけど …
707 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 12:40:07.80 ID:TcEoTH9E0.net] >>698 数式セルだけに限定しないで 全部貼り付けちゃえばいいんじゃないの Sub Macro3() Dim temp() temp = Selection Selection = temp End Sub
708 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 13:20:16.41 ID:TcEoTH9E0.net] >>698 あー選択が飛び地か 飛び地のRangeを順に取得する関数ってあったっけ 思いつかないので以下のように修正版。 splecialcellsを使う必要がない気がするが尊重して入れておいた // Sub Macro4() Application.Calculation = xlManual Application.ScreenUpdating = False myAddress = Split(Selection.SpecialCells(xlCellTypeFormulas, 23).Address, ",") Dim temp() For Each EE In myAddress temp = Range(EE) Range(EE) = temp Next End Sub
709 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 13:22:53.01 ID:FZqboG1a0.net] >>704 ひとつずつ処理するよりもこういう考え方が正しい
710 名前:698 mailto:sage [2021/08/29(日) 13:24:14.88 ID:7BYV+8iF0.net] 698です 色々と案をありがとうございます >>701 は構文エラーとなってしまいました たしかにSelectionを使わなければ早くなりそうではあるのですが… またUnionでまとめる方法は飛び地がなければ良さそうですが、左に詰めて貼り付けされてしまい欲しい結果が得られませんでした >>704 こちらも隣接セルのみであれば問題なさそうなのですが複数セルだと1番左の列は問題ないものの他のセルが元データとは異なるデータがペーストされてしまいました 私の理解不足であれば申し訳ありません ちなみに列選択をした際に少しでもループを減らしたかったため数式セルに限定してみただけなので選択部分まとめてでも問題ありません
711 名前:698 mailto:sage [2021/08/29(日) 13:25:52.00 ID:7BYV+8iF0.net] >>705 更新せず書き込みすみません 試してみます
712 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 13:34:12.51 ID:lED3Ocwo0.net] >>701 だけどスマン、間違えてた上にすげーアホなことやってたわ >>698 >任意のセルを選択(飛び地あり)→数式の入っているセル全て値貼り付けしたくて作成しました Sub tgggMacro2() Range("a1:z100").Value = Range("a1:z100").Value End Sub これでアカンのか ※cells.valueだとメモリ不足になる
713 名前:698 mailto:sage [2021/08/29(日) 18:40:28.03 ID:7BYV+8iF0.net] >>705 試してみました 成功する時と途中でオブジェクトの型が一致しない、とエラーになる場合があるようです 配列を理解できておらず、なぜエラーになるのか解決策にたどり着けていません 単独セルを選択している箇所でエラーになるように思います 実際に使用する際は1セルだけを選択することはまずないとは思うのですが… >>709 せっかく書いていただいたのですが求めている内容ではなさそうです 全て代入していいならほんとラクなんですけどね
714 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 19:03:27.49 ID:FZqboG1a0.net] >>710 数式セルを値貼り付けするならなんで709じゃだめなん?
715 名前:698 mailto:sage [2021/08/29(日) 19:06:25.69 ID:7BYV+8iF0.net] >>711 対象のセルはファイルによって異なりますが数式をあえて残すセルもあります シート内の計算結果を全て値にしたい訳ではないのです
716 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 19:29:10.08 ID:sPGAkNt40.net] 後だしぃ
717 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 19:29:59.26 ID:sl9xswiTM.net] rangeを配列に格納 配列内で特定セルに該当する部分を値に書き換えて 一気に貼り付ける
718 名前:698 mailto:sage [2021/08/29(日) 19:35:54.89 ID:7BYV+8iF0.net] え…始めから飛び地ありの任意セルを選択した状態って書いてあるのに後出しと言われましても…
719 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 19:50:08.61 ID:lED3Ocwo0.net] >>698 恐らくこれが一番早いと思います 飛び地で値でコピーペーストはできないし、 配列はしんどい Sub Macro2() Application.Calculation = xlCalculationManual ' 手動計算にする Application.ScreenUpdating = False ' 描画を停止する For Each Sc In Selection.SpecialCells(xlCellTypeFormulas, 23) Sc.Value = Sc.Value Next Sc Application.Calculation = xlCalculationAutomatic ' 自動計算にする Application.ScreenUpdating = True ' 描画を再開する End Sub >>711 要は ・選択部分を値にするマクロが欲しい ・値にする部分はフォーマットによって変わる ※社内で様々なフォーマットがあり、今はそれぞれを作り込む暇がないので「選択+値化」で逃がしている という事なのだろう >>714 飛び地ありで配列にうまく入れる方法ってあるのかな
720 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 19:58:18.50 ID:1aCvHSMxH.net] ワークシート→配列は無関係なセルも一気に読み込んで、書き戻す時は1個ずつにしてもそこそこスピードアップできそうな気がする
721 名前:705 mailto:sage [2021/08/29(日) 21:48:01.74 ID:TcEoTH9E0.net] >>710 もう手間のかかる子だなぁw Sub Macro5() Application.Calculation = xlManual Application.ScreenUpdating = False myAddress = Split(Selection.SpecialCells(xlCellTypeFormulas, 23).Address, ",") Dim temp() For Each EE In myAddress If Range(EE).Count = 1 Then Range(EE).Value = Range(EE).Value Else temp = Range(EE) Range(EE) = temp End If Next Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub 100万を超えるデータで動かすと何秒で終わるか教えてね
722 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 22:34:44.25 ID:lED3Ocwo0.net] >>718 横だけど Dim temp() temp = Range(EE) Range(EE) = temp これは Range(EE).value =Range(EE).value じゃダメなの?
723 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 22:40:30.11 ID:zuaG9uH70.net] 最後にそもそも値貼付けする理由がないとかいうオチが待ってそうだな
724 名前:705 mailto:sage [2021/08/29(日) 23:13:06.85 ID:TcEoTH9E0.net] >>719 あ!ほんとだ 配列という言葉にこだわっちゃって無駄なことをしてたねw Sub Macro6() Application.Calculation = xlManual Application.ScreenUpdating = False myAddress = Split(Selection.SpecialCells(xlCellTypeFormulas, 23).Address, ",") For Each EE In myAddress Range(EE).Value = Range(EE).Value Next Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub
725 名前:705 mailto:sage [2021/08/29(日) 23:18:37.19 ID:TcEoTH9E0.net] そのそもrelaxtoolsとかになかったっけw 確認してないけど
726 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 23:53:07.29 ID:V4lHBgfX0.net] エクセルVBAが、現在最も重宝される言語だってのはわかるし 自分も随分それで助けられてるんだけど、その次に学ぶべきなのは なんなんだろう。 VBA自体が終わった言語なのは明らかだし・・・。 JavaScript ? Rust? その他?
727 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 00:31:07.88 ID:ckBh8waKH.net] >>723 言語は手段、重要なのは目的 何をやりたいかで選べ たとえばスマホアプリを作りたいならJava
728 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 00:36:33.71 ID:HHMxmKKh0.net] VBAが必要な理由てさ、元データがExcelだから これ以上でもこれ以下でもないよね そしてそれはこれからも変わらないもの
729 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 07:18:10.56 ID:lQLq+TuC0.net] >>723 js: ブラウザのコンソールに入力or拡張機能が非常に強力 web関連では大体なんでも出来る ただ言語の仕様が色々と特殊 php: webサーバー作りたいならこれ 本格運用しようとすると、覚える事は非常に多い 特にセキュリティが鬼門 rust: 新機能てんこもりの革新的な言語!は大体廃れる
730 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 08:10:18.19 ID:g9J4xp5m0.net] >>723 VBAを学んだのなら VBA → VB.Net → C# が楽だろう。 VB.Netは文法的にはほぼVBAと一緒だから .Netの構成を覚えることに専念出来る。 VB.Netを覚えてしまえば次はC#だな。 逆に構成がVB.Netと殆ど一緒なので VBA → VB.Net を覚えるときより楽に 覚えることが出来るだろう。 もしWeb系をやりたいなら VBA → ASP.Net(VB) → ASP.Net(C#)と 言ったところか。 自信があるならVBA → C#でも構わないが、 折角だから寄り道してついでにVB.Net覚えて おいても損はないだろう。
731 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 08:17:51.42 ID:g9J4xp5m0.net] JavaScriptはWeb系やるのであれば必須言語だが、これはWebやるときに必要に迫られて変な話だけどやらざるを得なくなって勝手に身につく。 DB扱うのにSQLが必須になるのと同じ。 Rustはまだ扱っている書籍やサイトが少ないのでもう少し待ってからでも良いと思う。
732 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 12:20:59.93 ID:a1GphOXp0.net] >>723 もしかしてVBAしかできない人? 興味があるなら全部やればいいじゃん
733 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 12:52:53.22 ID:4aBvuqYpa.net] 次にって言葉を汲んであげてもいいと思うな サラダ食ったあと次にカレーとデザートどっち食べるべきか聞かれても「興味あるなら全部食え」ってレス付ける?
734 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 13:18:03.24 ID:a1GphOXp0.net] 食いたいもん食えよ 俺なら食いたいもん全部食うけどな
735 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 13:19:04.91 ID:a1GphOXp0.net] そもそも興味があるのにやらないでいるこ理由がわからない
736 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 13:29:28.16 ID:qdrPJ241M.net] ズラがずれてるぞ
737 名前: [] [ここ壊れてます]
738 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 13:37:49.06 ID:ckBh8waKH.net] 今は個別の言語の文法よりも、大量のライブラリにどんな機能があるかを知る方が重要 クラスやAPIをどれだけ知ってるかで作れる物が決まるんで
739 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 13:40:48.19 ID:a1GphOXp0.net] 結局やらないでしょう
740 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 13:43:40.08 ID:txgJXV1kM.net] >>723 GASとかPowerFXとかSalesforceとか VBA上がりなら本格的なプログラミングよりローコードに行ったほうがすぐ役立てられてコスパいいよ
741 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 17:19:00.03 ID:KZUgc5l+a.net] スレチなんでそろそろプログラマ板いってやればいいのでは
742 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 18:03:03.80 ID:SLXKrFaKa.net] HTAのVBScriptでExcel操作って出来ましたっけ?
743 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 20:36:23.51 ID:AiTAdVKh0.net] 2年くらい前にここでお世話になって、会社でもかなりVBA触るポジションができて、かなり成長した (皆さんありがとう) クラスモジュールを触ったことがないんだけど、経験のため触っておいた方がいい? 理解が深まるなら触りたい
744 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 21:34:10.98 ID:PPAHi4pc0.net] エクセルでフィルターがかけられないんですが、 誰か助けてください 1列を指定して並び替えとフィルターを開いてフィルター(F)を押せません。 ちなみに空白業はないのですが、、、
745 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 21:41:22.45 ID:PPAHi4pc0.net] 解決しました
746 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 21:43:52.41 ID:zNy1vYFAM.net] >>738 昔はできた記憶があるけどセキュリティとか厳しくなってるから今でもできるかはよくわからん
747 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 22:40:05.22 ID:mO4hpp7AM.net] >>739 たかがVBAにクラスなんか要らんよ 並のスキルのVBAerにメンテできなくなるから害悪ですらある
748 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 23:22:00.02 ID:g9J4xp5m0.net] >>739 VBAのクラスは継承が使えないから敬遠されがちではあるが、逆に他言語では委譲の知識を疎かにしがちだからやっておいても損はないな。 メソッド名を文字列で指定して呼び出すCallByNameのような命令もクラスでないと使えない気がしたしな。
749 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 23:24:06.07 ID:lQLq+TuC0.net] >>739 vbaのクラスはコンストラクタも継承もない どうせやるなら別言語を勉強するか、 sheetやcellsオブジェクトのメンバやメソッドでも眺めてる方が有意義と思う
750 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 23:52:32.26 ID:g9J4xp5m0.net] >>745 引数が渡せないだけでコンストラクタやデストラクタはあるのでは?
751 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 01:57:49.48 ID:ihx26wcM0.net] >>739 経験の為に触るのなら自宅の個人PCで作るだけにしとけ まず職場で見ることができる全てのExcelVBAのコード眺めてみて、 全てを理解できるようになるのが先
752 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 03:43:06.41 ID:JZqVSHwg0.net] >>739 何でもそうだけど使い処というものがあって、ひょっとしたらその機能を使えばもっと簡潔にコードが書けたり後でテストがし易くなったり、改修がし易くなるかも知れない。 けど、それがどういったものか分からなければ本当に使うべきか、どういった使い方をすべきかも分からない。だからまずそれがどういったものであるかを調べる必要がある。 調べた上で使うべきかどうかは自分で判断すること。 「結局使う必要がないなら無駄足じゃん!!」という結論に行き着くかも知れない。けど調べてついた知識は無駄にはならない。 興味があるのなら何でも調べてみればいい。
753 名前:デフォルトの名無しさん [2021/08/31(火) 05:26:47.90 ID:Bq4JJtE70.net] Googleスプレッドシートに置き換えが進んでいるのにExcelをできるだけ残させるような発想がよくわからない。 マイクロソフト内でも切るべき機能とされているのに。
754 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 06:03:59.14 ID:Ns860ecPM.net] >>749 > Googleスプレッドシートに置き換えが進んでいる > マイクロソフト内でも切るべき機能とされている 妄想でないならソースよろしく
755 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 06:42:25.04 ID:yu36xbaqd.net] >>749 新しい部署や若い会社とかならそうなのかもしれないけど、長続きして規模の大きい会社は大人数がずっとExcel使ってきてる訳だし、今更急にスプレッドシートに切り替えとか出来ないよ マクロなら尚更 VBAからGASに書き換えるのも面倒だし、スクリプトを編集するにもアカウントの権限が必要なせいで他部署へ許諾が必要な職場もあって面倒だったよ
756 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 07:10:44.50 ID:yu36xbaqd.net] >>739 もう運用しているブックについてはクラスモジュールに書き換えなくていいよ 引き継ぎの際にクラスモジュール扱える人が担当になるとは限らないしね ただ、自衛策として1度は扱っておいた方がいいよ 自分が引き継いだブックにクラスモジュールあったりしたら大変だしね。それに折角学ぼうとしてる所だし
757 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 07:11:08.63 ID:i7ARXDZV0.net] VBAやマクロゴリゴリのExcelが社内にない状態が想像できないのだが スプレッドシートって代替できるの?
758 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 07:25:24.78 ID:yu36xbaqd.net] >>753 シート上の編集とかブック内の処理で済むようなマクロならば、スプレッドシートへ移動可能 ただ、サーバからCSVが送られてきて、マクロによってそのCSVを開いてから処理する、とかならば移動が出来てないのが実情かなあ なにせ、Excelで何ら問題なく業務できてるってなら、わざわざサーバやらブックやら仕様を変更してまでスプレッドシートに移すメリットは無いしね。仕様書作り直し、単体、結合テストやり直しとか無駄に工数かかるし。 社全体がスプレッドシートに切り替えるってなら知らん
759 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 08:07:31.43 ID:JZqVSHwg0.net] 変な話だな EXCELをWebで扱うなら 余程金の無い中小企業でも無い限り Office365の企業用ライセンス取得して Web版EXCELに移行するのが 自然な流れだと思うのだが。 もっとも通常はEXCELそのものを Web上でツールとして扱うのも考え辛い。 何故ならEXCELなどよりもっと Wrbでツール作るのに向いた言語が 幾らでもあるからだ。 そういう場合はEXCELはダウンロードされる 1ファイルという立ち位置になるからな。
760 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 10:03:50.16 ID:Kb4xw5qb0.net] With Worksheets("Sheet1") .Columns("1"). Copy Destination_ = ThisWorkbook.Worksheets("Sheet2").Columns("1") Sheet1のA列をSheet2にコピーするマクロを書いたのですが 1004エラーが出てしまいます。 どう直せばいいでしょうか?
761 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 10:11:41.55 ID:7DaXmsNEa.net] >>756 こんな感じでは With Worksheets("Sheet1") .Columns("A:A").Copy Destination:=ThisWorkbook.Worksheets("Sheet2").Columns("A:A") End With
762 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 10:17:59.90 ID:rtPimGdF0.net] Sub TEST1() '「1つ目」のグラフの「1つ目」の系列の「名前」 Debug.Print ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Name End Sub 基本的な質問ですみません グラフに折れ線グラフが10本あって、その内1本をグラフ上で選択している時に 選択している系列名をVBAで取得するにはどう書けばいいでしょうか? あるいはSeriesCollection(1)の1という数字の部分が何なのか取得できますか?
763 名前:デフォルトの名無しさん [2021/08/31(火) 10:34:44.96 ID:RXuTL+ZfF.net] forでまわしてselectedで見る とか
764 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 10:44:19.53 ID:rtPimGdF0.net] >>759 すみませんもう少し詳しく selectedというのはどういう使い方をするんでしょう?
765 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 11:03:21.16 ID:0ik848aIM.net] マクロの記録で見れ
766 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 11:13:09.09 ID:rtPimGdF0.net] これでは以下のエラーが出るのですが どこが間違ってますでしょうか?よろしくお願いします for i = 1 to ActiveChart.SeriesCollection.Count If ActiveChart.SeriesCollection(i).Selected Then beep endif next 実行時エラー'438': オブジェクトは、このプロパティまたはメソッドをサポートしていません。
767 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 11:30:45.05 ID:NESsP7iO0.net] >>762 まず、ActiveなChartがあるかを確認 そして、ChartObjectはマクロの記録どおりに動かないことが多いので、ActiveChartの後に.Chartを挿入して試してみる 参考 officetanaka.net/excel/vba/graph/09.htm
768 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 12:01:04.19 ID:7DaXmsNEa.net] >>762 こういうのはどう? Private Sub Chart_Select(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long) If ElementID = xlSeries Then Debug.Print ActiveChart.SeriesCollection(Arg1).Name End If End Sub
769 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 13:36:21.23 ID:rtPimGdF0.net] >>763 for 文の直後に ActiveChart.SeriesCollection(i).select とすると折れ線グラフは次々と選択されるのでChartはあると思うのですが if文入れるとエラーが出ます・・・ 的外れなこと言ってたらゴメンなさい >>764 検索するとアドイン?のイベントプロシージャになるんでしょうか? かなり調べてみないと自分には理解できないかもしれません・・・ もう少し頑張ってみます
770 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 13:40:47.87 ID:bSK5W0WOM.net] >>765 if文中の selected を select 煮汁
771 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 13:44:13.64 ID:1uDof6e+M.net] ごめんちがう selectedはなさそう
772 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 13:58:00.53 ID:7DaXmsNEa.net] >>765 ブックにグラフのシートがあるならそのシートのChratのSelectってイベントをクリックすると Private Sub Chart_Select(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long) End sub が生成されるかと それともグラフはワークシートにあるのかな?
773 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 14:04:57.78 ID:rtPimGdF0.net] >>768 そうです、グラフはワークシートにあります
774 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 14:59:11.50 ID:l9psb/TLM.net] >>758 グラフが選択されてるのが確実なら Application.Selection.Name 確実じゃないなら If TypeName(Application.Selection) = "Series" Then ... でガードすればいい
775 名前:デフォルトの名無しさん [2021/08/31(火) 15:12:15.10 ID:rtPimGdF0.net] >>770 有難うございます、取得できました! これで行きたいと思います。ありがとうございました
776 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 15:17:16.32 ID:7DaXmsNEa.net] >>769 最小限しか書いてないので自分で手直ししてほしいけどこんなのはどうでしょう 1.クラスモジュールを追加する 2.クラスモジュールに下記を実装する(チャートのイベントを実装) Public WithEvents myChart As Chart Private Sub myChart_Select(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long) If ElementID = xlSeries Then Debug.Print myChart.SeriesCollection(Arg1).Name End If End Sub 3.ThisWorkbookに下記を実装する(クラスにチャートを紐づける) Private myClass1 As New Class1 Private Sub Workbook_SheetActivate(ByVal Sh As Object) If ActiveSheet Is Nothing Then Exit Sub End If If ActiveSheet.ChartObjects.Count = 0 Then Exit Sub End If Set myClass1.myChart = ActiveSheet.ChartObjects(1).Chart End Sub
777 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 15:43:05.57 ID:rtPimGdF0.net] >>772 有難うございます!クラスモジュール最近勉強したばかりなので 是非使いこなして活用させて頂きます!ありがとうございました
778 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 15:48:49.52 ID:xY3Kg19k0.net] どうしても分からないので教えて下さい 以下 excel-ubara.com/excelvba4/EXCEL299.html より引用 Option Explicit Public mOnTime As Date Sub TimerProc() Range("A1") = Now() End Sub Sub OnTimeStart() Call TimerProc mOnTime = Now() + TimeSerial(0, 0, 1) Call Application.OnTime(mOnTime, "OnTimeStart") End Sub Sub OnTimeStop() '同一のProcedureとEarliestTimeがないとエラーになる On Error Resume Next Call Application.OnTime(mOnTime, "OnTimeStart", , False) End Sub これを丸ごとコピーして標準モジュールに貼り付けて実行しようとすると 「変数が定義されていません」というコンパイルエラーが出ます どうやら「mOnTime」という変数が反応していないようです 何が原因として考えられるのでしょうか
779 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 16:45:55.34 ID:qfiRyurv0.net] 一番上の option explicit をコメントアウト
780 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 17:08:05.95 ID:0UudHHzs0.net] 悪い方向にいざなってないか。それw
781 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 17:16:59.73 ID:xY3Kg19k0.net] 流石に程度の低い釣りには引っかかりません (自己解決しました)
782 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 19:12:54.95 ID:XB01+IxZa.net] 程度の低いだってさ こんなド素人ちゃんにまで小馬鹿にされるオプション付けない派には流石に同情しちゃうね
783 名前:デフォルトの名無しさん mailto:sage [2021/08/31(火) 20:04:02.76 ID:xY3Kg19k0.net] ひねくれすぎててワロタ 元々オプションありで書かれているのに オプション外して解決するのは根本的に違うでしょって話 もしかして疲れて病んでる人だったのかな お疲れ様です
784 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 00:14:30.58 ID:LgfjpVVJ0.net] >>757 ありがとうございます。解決しました。 イコールの前にコロンがいるんですね。
785 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 04:40:05.79 ID:vx5cHFWE0.net] ユーザーフォームから A1に数字が入力され B1からB7まで同じく数字が入力され A1が月で、B1からB7を日として C1〜に
786 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 04:48:15.65 ID:vx5cHFWE0.net] ユーザーフォームから A1に数字が入力され B1からB7まで同じく数字が入力され A1が月で、B1〜B7を日として C1〜C7に月日として表示したいのですが A B C D E ・ ・ ・ 1 8 12 8/12 2 13 8/13 3 14 8/14 4 5 ・ ・ ・ 上記、票のようにA1とB列に分割された月日を C列に日付にできるでしょうか? いつも質問ばかりで恐縮ですが ご教授おねがいします
787 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 07:48:40.08 ID:QyYX1GEf0.net] >>782 それぐらいなら関数でいいんじゃねーの =DATE(YEAR(TODAY()),$A$1,B1) 年も入力しないとおかしくなる 「今年」を基準にすると、来年開いたときにデータ変わる
788 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 09:23:39.06 ID:Uj8mUWALM.net] 12月ぐらいに来年の1月のデータを入力しようとして日付だけ入力して今年の1月になっちゃってたってのは割りとあるある
789 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 10:18:49.87 ID:uNhFH8V1d.net] >>783 > >>782 > それぐらいなら関数でいいんじゃねーの > =DATE(YEAR(TODAY()),$A$1,B1) > > 年も入力しないとおかしくなる > 「今年」を基準にすると、来年開いたときにデータ変わる ご教授ありがとうございます 上記でやってみたのです セルに前の値が残ってしまいます 1回目は9/10、9/11、9/12と表示され うまくいくのですが 2回目に空白になったセル例えば9/10だけ 表示してほしいのですが他のセルもデータが残ってしまいます クリアしたいのですが方法が分からず VBAで制御したほうがいいのでしょうか? 何かいい方法はないかと思案してます
790 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 10:20:20.08 ID:ufGoj8xi0.net] 年には言及無いし C1に「= A$1 & "/" & B1」これ入力して下へずらっとでいいんじゃないの
791 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 10:22:29.22 ID:ufGoj8xi0.net] >>785 どこが空白か 何が残るか
792 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 10:56:06.92 ID:RCZPpxX+a.net] 月かわるんかい じゃ新しい月になった時にどういう処理してるかも書かにゃ答えようがないぞ
793 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 12:13:19.29 ID:uNhFH8V1d.net] 月をまたぐ事はないので
794 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 12:15:18.01 ID:uNhFH8V1d.net] 今出先なので家に帰ったら皆さんが わかりやすいようにご説明したいと思います 言葉足らずなご説明で大変申し訳ありません
795 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 13:29:51.12 ID:MIZAw2OB0.net] なにがやりたいかよくわからんが、日付として取り扱わないほうがいい気がするなぁ 単純に文字列として連結しといたほうがいいかもしれん
796 名前:698 mailto:sage [2021/09/01(水) 16:29:17.25 ID:zi3lAKaz0.net] 698です お礼が遅くなってすみません >>718 さんの内容でほぼほぼ実現出来ました その節はありがとうございました Selectionを使っていた時に比べスピードもかなり上がりました データ数100万程で5秒くらいです ただ一部のファイルで元々設定していた表示形式が数値へ置き換わってしまい悩んでいます 例えば0010→10など 浅知恵でTextやCStrを使えばどうにかなるかと思いましたがダメでした
797 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 17:31:57.00 ID:xpLasvJBM.net] VBAからIEを操作するプログラムが Windows11にしたら動きません というのは周知の事実ですか?
798 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 17:40:04.10 ID:xpLasvJBM.net] ひとまずNavigateでURLを開くのはイケますが Document.readyStateを上手く拾えないので操作しようがないですね
799 名前:デフォルトの名無しさん [2021/09/01(水) 17:43:07.67 ID:AF6jYwWs0.net] >>793 セキュリティーを考えればそれが普通じゃね
800 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 17:43:57.36 ID:oM9EKr7Vd.net] >>782 お前、ここは何のスレだと思ってんの? 馬鹿すぎる奴は書き込むな
801 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 17:46:56.00 ID:xpLasvJBM.net] >>795 互換モードをedgeは載せているのだから動くものかと
802 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 18:08:06.29 ID:vx5cHFWE0.net] 下記のように反映された後 A B C D E ・ ・ ・ 1 8 12 8/12 2 13 8/13 3 14 8/14 4 5 ・ ・ ・ 2回目以降、B2〜B3を消去して出力すると A B C D E ・ ・ ・ 1 8 12 8/12 2 4/30 3 4/30 4 5 ・ ・ ・ 4/30と出力されます 4/30を自動でクリアして空白にしたいのですが いい方法が思いつきません ご教授おねがいします
803 名前:デフォルトの名無しさん [2021/09/01(水) 18:09:47.36 ID:kYWyELeA0.net] >>798 いい加減にしろ
804 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 18:34:36.51 ID:rcR5Gl32M.net] >>798 クリアしたあとDoループでB列が空白の場合はループを抜けるとかじゃダメかい?
805 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 18:59:14.96 ID:sD7Rqgd1M.net] じゃあ現実的な代替案はどうですか? ユーザー様にSeleniumドライバーのインストールと逐次更新をお願いするのは避けたいです
806 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 19:08:28.99 ID:n24W6MuYM.net] >>798 C1: = IF(B1 = "", "", A$1 & "/" & B1) これ入力して下へずらっとでいいんじゃないの
807 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 19:09:36.61 ID:V21gvc28M.net] B列が空ならC列も空にする
808 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 19:36:37.25 ID:QyYX1GEf0.net] >>792 >>721 を改造 Sub Macro6() Application.Calculation = xlManual Application.ScreenUpdating = False myAddress = Split(Selection.SpecialCells(xlCellTypeFormulas, 23).Address, ",") For Each EE In myAddress Range(EE) = Range(EE) Next Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub 変えたのは Range(EE) = Range(EE) だけ。これで多分いけるとおもうけど、どうだろう
809 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 19:38:47.95 ID:QyYX1GEf0.net] cells(1,1)=cells(1,1) って暗黙の型変換で cells(1,1).value=cells(1,1).value になっているとおもったけど違うのね
810 名前:698 mailto:sage [2021/09/01(水) 19:56:12.78 ID:zi3lAKaz0.net] >>804 実行すると対象セルが全て空白になってしまいましたw
811 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 20:21:01.01 ID:QyYX1GEf0.net] >>806 どういうセルがあるの? 例えば、 ="0"&1 だと 01 という文字列が残るんだけど 俺は365だけど、バージョンによって挙動が変わるのかもしれない。あんまりナイキはするけど
812 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 20:25:24.16 ID:vx5cHFWE0.net] >>802 > >>798 > C1: = IF(B1 = "", "", A$1 & "/" & B1) > これ入力して下へずらっとでいいんじゃないの ありがとうございますm(_ _)m 早速試してみます
813 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 20:53:46.87 ID:vx5cHFWE0.net] C1: = IF(B1 = "", "", A$1 & "/" & B1) B列に文字が入力された場合 文字がそのままC列に表示されれば 完璧なんですが 難しいでしょうか?
814 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 20:56:51.38 ID:QyYX1GEf0.net] >>809 C1: = IF(B1 = "", "", B1) ?
815 名前:698 mailto:sage [2021/09/01(水) 20:58:57.68 ID:zi3lAKaz0.net] >>807 別のシートからマスタのコードをTEXT関数、表示形式指定(例えば"00000")で表示させてるような状態です 計算結果→02010に>>721 を実行すると2010(数値)、>>804 を実行すると空白になってしまいます 今使っているのは2016ですが365環境もあるので後ほど試してみます .Copyと.PasteSpecial xlPasteValuesで高速化できる方法があったりするのでしょうか こちらに書き込む前に For Each SC In Selection SC.Copy. SC.PasteSpecial xlPasteValues で試した際は自力コピペしたほうがよっぽど早くてどうしようもありませんでした
816 名前:698 mailto:sage [2021/09/01(水) 21:28:52.21 ID:zi3lAKaz0.net] >>807 >>811 例えば、 ="0"&1 だと 01 別シートに打ち込んで実行したところたしかに空白にならず文字列で表示されました ただ ="0"&1 ="0"&2 ="0"&3 の3行で実行すると全て消えて空白です…
817 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 21:42:45.23 ID:WLDLOoPA0.net] >>806 >>805 valueプロパティの値がコピーされた感じかw
818 名前:698 mailto:sage [2021/09/01(水) 21:44:13.89 ID:zi3lAKaz0.net] >>812 連投すみません 3セルのうち ="0"&1 と ="0"&3 を選択すると文字列表示になりました ="0"&1 ="0"&2 と ="0"&4を選択すると1と2は消えて4だけ文字列で残ります…
819 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 21:45:19.70 ID:RPMibrUxM.net] >>809 C1: = IF(ISTEXT(B1), B1, A$1 & "/" & B1)
820 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 22:25:27.20 ID:QyYX1GEf0.net] >>812 >>814 Sub foo2() Application.Calculation = xlCalculationManual ' 手動計算にする Application.ScreenUpdating = False ' 描画を停止する For Each sc In Selection.SpecialCells(xlCellTypeFormulas, 23) sc.Value = sc Next sc Application.Calculation = xlCalculationManual ' 手動計算にする Application.ScreenUpdating = False ' 描画を停止する End Sub これの sc.Value = sc の部分を sc.Value = sc.value や sc=sc など色々試したが、上記がうまくいった なお一体どういう型変換が行われているのかまるでわからない模様
821 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 22:52:06.46 ID:h29OAeAi0.net] >>816 型指定宣言していないため、Forで指定するSCがVariant型 なので、SCはVariant(Rangeとは限らない…配列の1要素目みたいなイメージ) ただ、SC.ValueとするとSCはRangeと明示されるのでそういう動きになる んじゃないかなぁ
822 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 23:29:26.76 ID:2gcT+4EJ0.net] IE問題どうするかなぁ
823 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 23:36:24.86 ID:zknSVFy00.net] VBA止めるいいきっかけじゃん
824 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 23:42:06.70 ID:KwKwZOB6d.net] >>818 なくなるのはアプリ コンポーネントは残ると明言されてる でもコンポーネントをウィンドウに貼り付ければ簡単にアプリが完成してしまう
825 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 23:55:13.89 ID:QyYX1GEf0.net] >>818 まあlそのうち誰かがなんとかするやろ
826 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 23:58:40.93 ID:lmopnPTl0.net] ちゃんとしたシステム入れればいいだけ
827 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 00:17:40.36 ID:vUCj94gS0.net] ちゃんとしたシステム(爆笑)
828 名前:705 mailto:sage [2021/09/02(木) 00:50:02.40 ID:PlnEFAD30.net] >>814 まとめるとこういうこと? Sub Macro7() Application.Calculation = xlManual Application.ScreenUpdating = False myAddress = Split(Selection.SpecialCells(xlCellTypeFormulas, 23).Address, ",") For Each EE In myAddress Range(EE).Copy Range(EE).PasteSpecial xlPasteValues Next Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub
829 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 06:01:59.22 ID:pGyB2U1O0.net] >>815 > >>809 > = IF(ISTEXT(B1), B1, A$1 & "/" & B1) C列に無事、日付が表示されB1が文字列ならば 文字が表示されたのですが 2回目以降 例えば1回目の入力でB列に B 9/2 9/3 9/4 9/5 上記のように表示した後に2回目にB2に終了日の文字列を入力し再表示したら B 9/2 終了日 9/ 9/ 上記のようにB3以降にA1の値が反映されてしまいます 2回目以降B列が空白であれば空白にしたいのですがむずかしいでしょうか
830 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 06:17:15.44 ID:8TUhFQ840.net] >>825 「○○であれば○○としたい」って言語化出来ているのであればあとはIf文で判定するだけでどうにかなるはずだよ 一回自分がやりたい事を頭からケツまでしっかり書いてフローチャートを作ってみた方がいい ○○であれば○○としたいの時には当てはまらない場合はどうするかもしっかり書くことを忘れずにね
831 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 06:20:57.63 ID:pGyB2U1O0.net] 連投で申し訳ありません! 言葉たらづですいません。結局わたしがやりたいと思ってるのは A1に数字を入力 B1〜B2に数字を入力するとC列に結合た日付を表示しされる下記のような表です A B C 1 9 2 9/2 2 5 9/3 3 9/4 4 9/5 ただB2に文字列が入力されたらC2に文字列が表示され C3以降は空白になってくれればいいのですが
832 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 06:25:01.18 ID:pGyB2U1O0.net] 下記コードをここでお教えいただきもう少しで出来そうなのですがわたしにはむずかしすぎて Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo err 'B1B2じゃなければ終了 If Intersect(Target, Range("B1:b2")) Is Nothing Then Exit Sub 'とりあえずクリア Range("C1:C100").Clear 'メイン。整数じゃなければerrに飛んでコピーして終わり。trycacheみたいな事がしたかった 最初 = Cells(1, 2) 最後 = Cells(2, 2) ' If (Int(最初) = 最初 And Int(最後) = 最後) Then 行 = 1 For i = 最初 To 最後 Cells(行, 3) = i 行 = 行 + 1 Next Exit Sub End If '整数以外 err: Range("C1:C7").Value = Range("B1:b2").Value End Sub
833 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 06:57:24.18 ID:pGyB2U1O0.net] 間違いました! A1に数字を入力 B1〜B2に数字を入力するとD列に結合た日付を表示しされる下記のような表です A B C D 1 9 2 2 9/2 2 5 3 9/3 3 4 9/4 4 5 9/5 ただB2に文字列が入力されたらC2に文字列が表示され C3とD3以降は空白になってくれればいいのですが
834 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 07:37:19.92 ID:O3nuwBcWM.net] >>818 何か面白いことがわかったら教えて
835 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 07:53:36.77 ID:8TUhFQ840.net] >>829 (クリア処理) If IsNumeric(Range(″B1”).Value) And IsNumeric(Range(“B2″).Value) Then Dim TgtAry() As String ReDim TgtAry(0 to Range(”B2”).Value - Range(”B1”).Value, 3 to 4) Dim AryCnt As Long For AryCnt = 0 to Ubound(TgtAry, 1) TgtAry(AryCnt, 3) = CLng(Range(”B1”).Value) + AryCnt TgtAry(AryCnt, 4) = Range(”A1”).Value & ″/″ & TgtAry(AryCnt, 3) Next Range(Cells(1, 3), Cells(1 + Ubound(TgtAry, 1), 4).Value = TgtAry End If
836 名前:デフォルトの名無しさん [2021/09/02(木) 09:40:00.71 ID:lpxNteAka.net] もうあきた
837 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 09:50:07.01 ID:S+z0tXCPd.net] >>831 ありがとうございますm(_ _)m 家に帰ったら早速試してみます
838 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 10:17:54.51 ID:61uHr+ZW0.net] >>829 どんどん条件追加してんじゃねーよw 一旦最初から最後まで説明する感じで整理してみて
839 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 10:23:41.27 ID:61uHr+ZW0.net] とりあえず>>827 の条件 C1に入力して下にずらっとしてみて = IF(ISTEXT(B6), B6, IF(B6 = "", "", A$1 & "/" & B6)) ただしBのセルを空白にするのは手動 >>829 のC列は何やねん?
840 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 11:39:09.52 ID:S+z0tXCPd.net] >>835 すいません! コードの基本的なところを教えてもらえれば あとは自力で何とかしようと思ったのですか 思ったより難しくて(泣
841 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 12:26:07.30 ID:Lpp+cK/ya.net] もおお面倒くせええ 最初ユーザーフォームがどうとか言ってたろ? そっちの管理者に言うのが手っ取り早いんじゃないの、まさか自作じゃあるまいし
842 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 12:47:54.81 ID:jQ7od4vmd.net] 月と日の範囲らしき値をいれるようだが日だけチェックするとかが意味わからないんだよね それと今まで教えてもらったコードが実際に何ができるかわかならければ今後も同じような質問ずっとするのかな
843 名前:名無し募集中。。。 mailto:sage [2021/09/02(木) 13:06:30.53 ID:PlnEFAD30.net] 質問者は分散して書き込まれたわけのわからん条件を再度まとめて書いてくれないかな 文章力がないようだから番号を振って箇条書きがいいと思うよ そこから仕切り直し
844 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 13:44:53.64 ID:S+z0tXCPd.net] わかりました! すみません
845 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 14:04:46.60 ID:jQ7od4vmd.net] >>840 今までの経緯を見た感じだと単純な要件は ・A1には月、B1には開始日、B2には終了日が設定される ・C列には設定された開始日と終了日を使って開始日〜終了日の値が列挙される ・D列には設定された月とC列の値を使って日付が列挙される ※単純に月/日の文字列でよいのか(年を考慮した日付でなくてよいのか) まずこれだけの要件であれば >>828 で関数などを使わずにD列の設定を追加すればよい(Cells(行, 4) = CStr(Cells(1, 1))&"/"&Cells(行, 3)) 初期化の検討も関数がなくなれば「とりあえずクリア」の範囲をC1:D100にでもすればよい エラーについては関数がなくなれば今のままでも要件を満たすのでは
846 名前:デフォルトの名無しさん [2021/09/02(木) 16:20:28.02 ID:tb5mIgdu0.net] >>840 お前、いい加減にしろや
847 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 16:37:31.01 ID:61uHr+ZW0.net] >>829 で B2に文字列が入力された時D2がどうなるかが無い
848 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 16:56:20.51 ID:61uHr+ZW0.net] >>840 A1 月 B1 開始日 B2 終了日 (文字列の時もある) C列 B1からB2の連番 C1は常にB1 (B2が文字列ならそれをC2へ、以降空白) D列 月/日 D1は常に開始月/日 (C2が文字列ならそれをD2へ?、以降空白) でいいなら C1 = B1 C2 = IF(ISTEXT(B2), B2, IF(ISTEXT(C1), "", IF(C1 + 1 <= B$2, C1 + 1, ""))) D1 = A1 & "/" & C1 D2 = IF(ISTEXT(C2), C2, A$1 & "/" & C2) C2とD2は下にずらっとね
849 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 17:33:27.50 ID:pGyB2U1O0.net] >>831 自分のコードとどう組み合わせていいのかわかりませんでした エラーになってしまい自分には無理そうです もう少し勉強して出直したいとおもいます 本当にありがとうございます
850 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 17:40:30.06 ID:pGyB2U1O0.net] >>841 明瞭な説明ありがとうございます とりあえず業務上で必要なところは日付問題だけなので それさえ解決できれば今後はなんとかなりそうです
851 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 18:06:17.19 ID:jQ7od4vmd.net] >>846 こんな感じでいいんじゃないの? Private Sub Worksheet_Change(ByVal Target As Range) 'B1B2以外は終了 If Intersect(Target, Range("B1:B2")) Is Nothing Then Exit Sub End If 'クリア Range("C1:D100").Clear '開始日のチェック If CheckValue(Cells(1, 2)) = False Then Cells(1, 3) = Cells(1, 2) Cells(2, 3) = Cells(2, 2) Exit Sub End If '終了日のチェック If CheckValue(Cells(2, 2)) = False Then Cells(1, 3) = Cells(1, 2) Cells(2, 3) = Cells(2, 2) Exit Sub End If '開始日から終了日を設定 nRow = 1 For nValue = Cells(1, 2) To Cells(2, 2) Cells(nRow, 3) = nValue Cells(nRow, 4) = Cells(1, 1) & "/" & nValue nRow = nRow + 1 Next End Sub
852 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 18:06:38.29 ID:jQ7od4vmd.net] Private Function CheckValue(ByVal aValue As String) As Boolean For nLoc = 1 To Len(aValue) If InStr("0123456789", Mid(aValue, nLoc, 1)) = 0 Then CheckValue = False Exit Function End If Next CheckValue = True End Function
853 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 18:06:56.77 ID:1Fx06KPw0.net] まじでこんな仕様を業務で使ってんの?
854 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 18:13:18.91 ID:24Y/Debo0.net] Range型に入れられるものを変数に入れず処理するのほんと嫌い Cells(1,1)=2 とか せめて行と列をLong型の変数にしてやってあげて
855 名前:デフォルトの名無しさん [2021/09/02(木) 18:40:44.69 ID:95p8ZRX9M.net] >>849 日付の列だけあればいいよな 見た目は書式でどうとでもなるし
856 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 19:39:27.31 ID:vUCj94gS0.net] >>849 ここは日本やぞ
857 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 20:22:46.11 ID:JA6Fm57Z0.net] 散布図において、点と点を結ぶ直線の色を、その系列の系列名参照先セルの背景色と同じ色に一括で変えるコードを教えてください。 背景色が設定されてない場合は色は変更しなくて良いです。 例えば下記画像のデータと散布図があるとします。 B1:E1セルの背景色を赤色に塗って、F1:G1セルの背景色を青色に塗ってマクロを実行すると、散布図の直線のうち、#1から#4が赤色に変わり、#5、#6が青色に変わり、#7以降はそのままの色を維持するようにしたいです。 https://i.imgur.com/lLWaKl2.jpg https://i.imgur.com/Pdf7drp.jpg 系列が莫大な数のグラフだと設定から一つずつ色を変えるのは大変なので自動化したいです。 よろしくお願いします。
858 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 21:07:03.00 ID:pxeaKQvs0.net] 質問スレなのにコード全てを教えてもらおうとするのはいかがなものかね ある程度自分コード書いてここが分からないとかならわかるが
859 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 21:24:04.85 ID:DFz3pANA0.net] でも>>1 で作成依頼もOKって書いてるしなあ
860 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 21:26:06.23 ID:LsFuz3WEH.net] >>853 ほい ワークシートの中にグラフが1つしかないこと、全データがグラフに使われていることが条件 Sub Macro1() ActiveSheet.ChartObjects("グラフ 1").Activate For k = 1 To Cells(1, Columns.Count).End(xlToLeft).Column - 1 c = Cells(1, k + 1).Interior.Color If c <> &HFFFFFF Then ActiveChart.FullSeriesCollection(k).Format.Line.ForeColor.RGB = _ RGB(c Mod 256, Int(c / 256) Mod 256, Int(c / 65536)) Next End Sub
861 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 21:38:11.49 ID:pxeaKQvs0.net] >>855 それはすまない
862 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 23:50:56.62 ID:JA6Fm57Z0.net] >>856 ありがとうございます。 頂いたコードをちょっと改造したら出来そうです。
863 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 00:34:19.18 ID:7VSa3gcD0.net] FullSeriesCollectionってなんだよ 動かねーw
864 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 04:25:34.03 ID:kuvugUtS0.net] >>858 >>859 おめー、すごい本音と建前だな そのギャップ、埋める必要はない 吐露したいときはあるからな
865 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 06:02:06.71 ID:1mYCibIj0.net] >>844 試してみたら、なんとかなりそうです! 何度もご助言いただき ありがとうございます
866 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 07:17:18.60 ID:staQfXFI0.net] >859 検索した方が早いぞ 俺も知らないけど検索したら内容は秒で理解できた https://docs.microsoft.com/ja-jp/office/vba/api/excel.fullseriescollection
867 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 13:32:27.55 ID:LfmEXbOQ0.net] Bookを別名保存して配布用データを作成する場合に、.xlsx にしてそのファイルにVBAコードは存在しない状態にする方法はあるのでしょうか?
868 名前:698 mailto:sage [2021/09/03(金) 14:03:11.01 ID:XbDGKeUz0.net] >>816 >>824 どちらも求めている結果になりました 824は自分でも試してもエラーになっていたので助かりました 型変換でこんなにつまづくは思わなかった(未だに原理は理解出来ていない…) ありがとうございました!
869 名前:デフォルトの名無しさん [2021/09/03(金) 15:55:21.72 ID:yaNRzQx30.net] >>863 全角文字の拡張子だからテキストファイルか何かにするのか?それとも単なる馬鹿か?
870 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 15:59:38.52 ID:FrRqokaz0.net] >>865 寂しいの?
871 名前:デフォルトの名無しさん [2021/09/03(金) 16:58:35.16 ID:w5919iNp0.net] フリーランスエンジニアになってからの年収推移を公開【現在年収1000万】 https://dev-memo.net/fleelance_1000/ 【実体験】仕事ができない新卒エンジニアでも月収70万フリーランスになれる理由 https://off.tokyo/blog/shinsotu-engineer-free-lancer/ フリーランスエンジニアは年収900万円までは余裕!現役フリーランスエンジニアが徹底解説 https://flytech.work/blog/8142/ フリーエンジニアの平均年収!未経験が年収1000万円を超える方法とは? https://shikin-pro.com/guide/18633 【コラム】フリーランスは本当に自由なのだろうか? https://zenn.dev/cat2pgm/articles/42bb40bf121342 「月100万円」稼ぐ猛者も、副業を始めるIT人材が急増している真の理由 https://xtech.nikkei.com/atcl/nxt/column/18/01572/021900001/ フリーランスエンジニアになって月100万稼いだ話 https://comblog.net/2020/07/06/freelance-100/ 素人からでも「まずは月収50万以上」を目指したい方向け【フリーエンジニア・コンサル】 https://aruto.org/freelance-consulting フリーランスのエンジニアやるなら45歳までに貯金5000万円作れないと死ぬ説 uma66.hateblo.jp/entry/2019/04/07/153119
872 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 00:30:43.37 ID:HdS4X7vy0.net] >>862 自宅で使ってるExcelが2010がFullSeriesCollectionをサポートしてないというオチを wで表現してみたんだが 伝わらなかったようでスマン
873 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 00:46:52.30 ID:bCHQ7Kl80.net] そこそこできるんだけど、これ中学生辺り相手に家庭教師したらいい小遣い稼ぎになるんでね
874 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 00:51:02.10 ID:4OUEmuPid.net] 家庭教師なんて大学生の仕事だぞ オヤジは採用されない
875 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 20:55:48.09 ID:NYbUbMGR0.net] ハイパーリンクを絶対参照で設定しているのだけど(ファイル移動に備えて)表示文字列がフルパスだと 表示しきれないのでここだけ相対参照で表示したい. 絶対参照から相対参照文字列を取得する関数はないでしょうか?
876 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 22:01:27.65 ID:6VddzRoR0.net] 。。。ラムダ関数の件どうなったの?
877 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 01:09:39.85 ID:fgpBZKKDa.net] >>871 Perlで自作
878 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 10:00:10.71 ID:wW3S0zCbM.net] >>871 split
879 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 10:23:08.20 ID:LRYELwZL0.net] >>874 ヒントありがとう. 1,リンク元とリンク先のフィアル名以外のフルパスを区切り文字¥で分割する. 2,共通部分を除いたリンク元の文字列数の個数だけ”.\”を共通部分を除いたリンク先の文字列&ファイル名 で
880 名前:っていますか? 2の部分で個数を数える処理とかをスマートのやる方法ありますか?思いつくのが文字列を一つずつ比較して 異なると抜けるみたいみたいな処理がしか思いつかないんで. [] [ここ壊れてます]
881 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 10:23:56.54 ID:p7djLIgl0.net] >>871 相対参照でも表示しきれないものはどうする気だ?
882 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 10:24:49.55 ID:LRYELwZL0.net] 間違えた 1,リンク元とリンク先のフルパスを区切り文字¥で分割する. 2,共通部分を除いたリンク先の文字列&ファイル名に共通部分を除いたリンク元の文字列数の個数-1だけ”.\”をつける
883 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 10:25:31.04 ID:LRYELwZL0.net] >>876 そこまで深くないんで.
884 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 10:31:48.41 ID:p7djLIgl0.net] 相対参照への変換は動作が変わるので 表示だけ工夫することを勧めるよ
885 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 10:43:18.05 ID:LRYELwZL0.net] >>879 > 相対参照への変換は動作が変わるので →アドレスそのものは絶対参照のままにするので動作はかわらないと思います.
886 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 11:37:34.66 ID:p7djLIgl0.net] >>880 以下どれかじゃ駄目なん? (a)Tooltipでちゃんと表示して通常は切れたまま (b)2行に分けて表示 (c)パスの先頭から何文字か + ” 〜(省略)〜 ” + ファイル名
887 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 13:38:20.09 ID:7P2mUzTw0.net] それ、どこからの相対パスが欲しいんだよ? 自分自身から自分自身への相対パスなら、全部.\だから たんにファイル名だけ表示させればいいんじゃね 汎用的に真面目な相対パスに変換しようと思ったら結構邪魔くさいな まあこういうのは大概すでに誰かがやってる VB.NETだが https://dobon.net/vb/dotnet/file/getabsolutepath.html#pathrelativepathto とか。API呼び出しでやる方法もそこにある
888 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 15:24:56.80 ID:LRYELwZL0.net] >>881 表示だけでは絶対パスがわからないのでTooltipは必要ですよね。 表示をファイル名だけにするか、C のようにするかですけど、表示だけである程度場所が分かりそうな情報が表示されていると便利なので、相対パスもしくはそのファイルがあるフォルダー名のどちらかにします。フォルダーは存在位置をだいたい覚えてるもんですから。
889 名前:デフォルトの名無しさん [2021/09/08(水) 14:22:30.46 ID:pb/a0YKS0.net] D列〜H列の各4項目を印刷エリアのA列に配置して それぞれ印刷がしたいのですが、下記でも出力されますが、 もっと簡略な書き方あったら教えてください。 Sub PrintOut() Range("A1").Value = Range("D1").Value Range("A2").Value = Range("D2").Value Range("A3").Value = Range("D3").Value Range("A4").Value = Range("D4").Value ActiveWindow.SelectedSheets.PrintOut Range("A1").Value = Range("E1").Value Range("A2").Value = Range("E2").Value Range("A3").Value = Range("E3").Value Range("A4").Value = Range("E4").Value ActiveWindow.SelectedSheets.PrintOut (以下F列分〜H列分まで繰り返している) End Sub
890 名前:デフォルトの名無しさん mailto:sage [2021/09/08(水) 15:21:04.14 ID:75/i6xmb0.net] >>884 offset 関数を使って I と J のループで回せば?
891 名前:デフォルトの名無しさん mailto:sage [2021/09/08(水) 15:22:28.05 ID:XlNVU0UMH.net] >>884 Sub PrintOut() Dim a For c = 4 To 8 a = Cells(1, c).Resize(4, 1) Range("A1:A4") = a ActiveWindow.SelectedSheets.PrintOut Next End Sub
892 名前:デフォルトの名無しさん mailto:sage [2021/09/08(水) 16:25:02.09 ID:XlNVU0UMH.net] 処理する範囲をわかりやすくしてみた Sub PrintOut() Dim a For Each c In Range("D1:H1") 'DからHまで a = c.Resize(4, 1) '縦4行 Range("A1").Resize(4, 1) = a ActiveWindow.SelectedSheets.PrintOut Next End Sub
893 名前:デフォルトの名無しさん mailto:sage [2021/09/08(水) 16:25:12.58 ID:W4cHTvUwd.net] すげー!凄い短くなってる! ありがとうございます。 後で試してみます。 まだVBA初めて間もないのですが、しっかり勉行すれば、 繰り返し作業簡素化の可能性を非常に感じました。 ありがとうございました。
894 名前:デフォルトの名無しさん [2021/09/08(水) 16:48:49.57 ID:q+ZxDcv00.net] またいつものあいつに引っ掛かる馬鹿ども
895 名前:デフォルトの名無しさん mailto:sage [2021/09/08(水) 17:49:01.52 ID:I0eTwbNOM.net] って言いたいだけの自尊心の擬人化さん
896 名前:デフォルトの名無しさん [2021/09/08(水) 18:05:21.93 ID:ehctv71ga.net] ねぇねぇワクチンが足りないとか余って捨ててるとかなんなの? Excelでさえ1億2千万人のデータぐらい余裕で作れるんじゃないの?
897 名前:デフォルトの名無しさん mailto:sage [2021/09/08(水) 18:33:49.98 ID:lGj0x8DT0.net] with派は?
898 名前:デフォルトの名無しさん mailto:sage [2021/09/08(水) 18:39:36.93 ID:wkgfp7fUa.net] Excelの印象派はちょっと困るねぇ セル結合じゃなくてシェイプでやってよ
899 名前:デフォルトの名無しさん mailto:sage [2021/09/08(水) 19:58:14.37 ID:y8J9pOw20.net] Excelではどうにも出来ないたぐいのヒューマンエラーが多いからな
900 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 09:38:25.14 ID:foh10V2pM.net] たとえば5000行もある住所録(一人一行使う)で、左端(つまりA列)にチェックボックスをつけるって出来ます? 5000個もチェックボックスオブジェクトを作るって現実にやってる方います?これは現実的でしょうか? 今考えてるのはA列に正方形(□)とレ点付きの□の二択プルダウンを用意することなんだけど、 それだとマウスのダブルクリックで表示を切り替えることは出来なくなる。 良い方法ありますか?
901 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 09:59:04.73 ID:4tB32NIbH.net] >>895 チェックボックスを5000個作るぐらい簡単だが? けど、そういう一覧表を作る意味がないだろ 5000件も手作業でチェックなんか入れてたら絶対にミスが起きるし 次の作業のことまで考えて表を作れよ
902 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 10:11:27.57 ID:zJmTPnJXM.net] >>895 チェックボックスみたいなテキストでやる
903 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 10:12:10.09 ID:FIynLA9Dd.net] >>896 自分も同じことを思ったけど解決策にならないレスはせずに放置がいいと思う 理解していけばしていくほどやれることを絞って考えていくようになるかと
904 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 10:25:59.17 ID:4jr1qQtOd.net] 参考 チェックボックスの絵文字 使用は推奨しない ☑ ✅
905 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 10:27:08.70 ID:2Kg/wmz7M.net] >>895 ダブルクリックかライトクリックイベントで背景色変えるとかなんか印を付けるとかした方が楽そう
906 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 10:32:22.27 ID:IpCo+OYQ0.net] >>895 普通にその方法でいいじゃんと思うけど、ダブルクリック必須なの? チェックボックスの操作ならせめてシングルクリックだと思うけど。 マウス必須ならA列にハイパーリンクを仕込んでおいて、イベント ハンドラの中でどこが押されたかを判断して状態を反転させるという 方法もある。 ただこの場合A列は自由に入力可能なのでシートの保護を掛けることに なると思うし、どの部分をどこまで編集可能とするかということとの 兼ね合いになると思う。
907 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 10:42:39.73 ID:9k5sY4oP0.net] >>895 あなたの言ってることはダブルクリックとかチェックボックスとプルダウンとか意味不明なんだけど、やりたいことさえはっきりしてなら VBA でオブジェクトの追加コマンドを追加場所を1行から5000行まで変えながら回せばいい。
908 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 10:48:23.02 ID:4tB32NIbH.net] >>902 セルをコピペすればセルに乗ってるオブジェクトも一緒にコピペされる だからチェックボックスを5000個に増やすだけなら数クリックの手間だけで終わる ブックが重くなるけどな
909 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 10:50:53.75 ID:foh10V2pM.net] シングルクリックと間違えてました。 自動的に5000個作ると30分待っても終わらないので、ダメなのだと思ってました
910 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 10:53:21.37 ID:foh10V2pM.net] >>897 >>896 チェックを入れた行だけ特定の書式にしてファイルとして出力する用途なので、そこは気にしないのです
911 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 11:01:26.77 ID:4tB32NIbH.net] 試しにやってみたけど、チェックボックス5000個コピペだけなら20秒ぐらいで終わったぞ https://i.imgur.com/4Bo9Yvp.png
912 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 11:03:58.28 ID:foh10V2pM.net] >>906 1000個なら一分待てば出来ました。 しかしその後の操作がめちゃくちゃ重くなるのでこうした使い方は一般的ではないのかな、という疑問がありました
913 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 11:07:12.46 ID:foh10V2pM.net] >>897 おさわがせしました。 1000個作って、特定行を一行削除するだけでもとても完了に時間がかかるので、 この方の方法でしのぎます
914 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 11:21:19.40 ID:37zPgm1s0.net] >>907 ちなみにどんなふうに削除してる?
915 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 14:10:09.39 ID:m7/bNtYYa.net] クラスモジュールの引数に可変長引数を渡したくて、呼び出し側でその引数に変数をぶち込んで渡したいんだけど、これってやっぱりできないの?
916 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 19:38:24.58 ID:7gPjCFSp0.net] >>895 sheetモジュールに記述 ※ただ、選択済みのセルをクリックしてon/offができない Private Sub Worksheet_SelectionChange(ByVal Target As Range) d = WorksheetFunction.Unicode(Cells(1, 1).Value) Debug.Print (d) ' 38960 If Target.Column = 1 Then Target.NumberFormatLocal = WorksheetFunction.Unichar(10004) & ";□;0;@" If Target.Value = 0 Then Target.Value = -1 Target.Value = Target.Value * -1 End If End Sub
917 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 19:39:38.73 ID:7gPjCFSp0.net] デバッグ残ってたわ。こっちで Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'A列のみ If Target.Column = 1 Then '書式設定を設定 Target.NumberFormatLocal = WorksheetFunction.Unichar(10004) & ";□;0;@" '-1かけて反転させる If Target.Value = 0 Then Target.Value = -1 Target.Value = Target.Value * -1 End If End Sub
918 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 19:55:23.82 ID:zfiF925t0.net] 関連スレ建てたよ VBAなんでも質問スレ Part3 https://mevius.5ch.net/test/read.cgi/tech/1631184381/
919 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 23:48:42.23 ID:ULMewu8MM.net] >>910 delimiterで値を連結して一つの文字列にして渡し それを受け取った側で処理するとかw
920 名前:910 mailto:sage [2021/09/10(金) 00:39:56.77 ID:Ovs2Qwn/0.net] >>914 なるほど 無理やりすぎて草
921 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 00:57:16.66 ID:cGWG4Dd90.net] >>910 ちょっとなに言ってるかわかんないけど ParamArray とかそういうこと?
922 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 01:37:01.01 ID:k/ICsAd30.net] >>910 恰好つけて内容端折ったり、初心者に有りがちなオレオレ用語使ってるせいで意味不明 ちゃんと質問したら回答や代案出してくれる人いると思うよ
923 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 06:29:18.76 ID:SjJWgB1Wd.net] エスパーしてみるとオーバーロードしたいってこと?
924 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 07:09:26.44 ID:LHgBQKs+0.net] >>910 てParamArrayでいいじゃん(いいじゃん)
925 名前:910 mailto:sage [2021/09/10(金) 12:04:43.32 ID:9zsJDEjAa.net] 言葉足らずで申し訳ない ・クラスモジュールでtestSubを作る ・testSubには引数として複数の文字列(パス)を入れたいが、場合によってはいれる数が変わるので可変長引数として渡したい→paramArrayを使った ・標準モジュールでtestSubを呼び出すときに引数に文字列直打ちで入力→これは呼び出せた 例 class.testSub(“a”, “b”, ”c”) →OK ・一方で引数に参照渡し?で変数を入れることができなかった 例 Dim a as string:a = “a” Dim b as string:a = “b” Dim c as string:a = “c” class.testSub(a, b, c) →エラー まとめ:参照渡し+可変長引数を実現する方法はありますか?という質問です
926 名前:デフォルトの名無しさん [2021/09/10(金) 12:33:58.83 ID:LPBZaVhNM.net] へー、どんなエラーメッセージが出るんだい?
927 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 12:41:02.44 ID:s5UDpNf0d.net] bとcに代入されてないように見えるんだけど…
928 名前:910 mailto:sage [2021/09/10(金) 12:44:45.11 ID:9zsJDEjAa.net] >>922 誤字りました >例 >Dim a as string:a = “a” >Dim b as string:b = “b” >Dim c as string:c = “c” > >class.testSub(a, b, c) →エラー
929 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 12:44:47.75 ID:Wgizc1rOd.net] paramarrayは使ったことないからなんでエラーになるか知らないけど optional byrefをいっぱい作れば解決か?
930 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 12:57:26.48 ID:3anmc9lr0.net] うちではエラーにならないので、ParamArray以外のところで何か起きていると思う
931 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 13:42:46.46 ID:cGWG4Dd90.net] とりあえずエラーメッセージぐらい書け Call class.testSub(a, b, c) とかいうオチじゃないだろうな
932 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 13:48:25.18 ID:cGWG4Dd90.net] あと言っとくけど、参照型と参照渡しはちがうからな その例でいくなら(受け取り側で何やりたいかによるが)参照渡しである必要性なんてないんじゃね
933 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 15:05:47.68 ID:bX+CqFZ4r.net] vbaの配列って絶対要素数がわかってないとだめなの? 他の言語のリストみたいにあとから追加とか削除したいんだけど
934 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 15:09:49.67 ID:kF1ZwEU6a.net] >>928 一々ReDimしなきゃならん それは嫌って人のためにCollectionがある
935 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 15:16:50.98 ID:tlapevkG0.net] 二次元配列以外はコレクションでいいよな
936 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 15:22:02.18 ID:kF1ZwEU6a.net] Dictionaryも好きだけどね 用途によるね
937 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 15:47:18.98 ID:bX+CqFZ4r.net] >>929 まじかよ メモリ確保の問題かな? これは大きな弱点やな
938 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 16:10:25.64 ID:bX+CqFZ4r.net] 配列が可変だったら終わる作業が全く終わらん マジでいらつくわ
939 名前:デフォルトの名無しさん [2021/09/10(金) 16:26:30.74 ID:rHUFiRNt0.net] >>886>>887 コンパイルエラー 変数が定義されていません とか出たのですが・・・。 c のトコがハイライトされています。
940 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 16:31:21.74 ID:8Iwa8KgHa.net] >>934 変数が定義されてないなら定義すればいい
941 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 16:31:29.22 ID:2Fxd4w670.net] Set range = ActiveSheet.Range("J10") debug.print range.Cells(0, 0).address この出力がI9になります J10を期待したのですがどういう事ですか?
942 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 16:36:53.08 ID:8Iwa8KgHa.net] >>936 ActiveSheet.Cells(1,1).AddressはA1になるでしょ? んで、ActiveSheet.Cells(0,0).Addressはオブジェクト定義エラーになるでしょ つまり、ワークシートの起点はA1であり、Cells(1,1)なわけ だから、それから今回の事象は推察できるでしょ 余談だけどその変数名は絶対にやめた方がいい VBAには既にRangeって単語があるんだから
943 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 16:41:57.41 ID:8Iwa8KgHa.net] >>936 追記 あなたの考えどおりに動く、offsetって関数があるからそっち使ったらいいんじゃないかな
944 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 16:42:03.28 ID:tlapevkG0.net] >>936 1,1にすればなるだろ 0だから行列がそれぞれマイナス1されてるんじゃね? 0入れたことないから予想だけど
945 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 16:52:02.92 ID:2Fxd4w670.net] >>937-938 Cellsの引数はそのまま1つ目2つ目と考える事にします 変数名は質問用に適当にしましたすみません offsetが距離1つ先2つ先なのでこちらを使用しようと思います ありがとうございました >>939 1,1にすればなりますが論点はそこではありません
946 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 16:54:59.11 ID:tlapevkG0.net] 0から始まる配列なんかを入れたいという感じか
947 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 17:05:41.13 ID:cGWG4Dd90.net] >>934 変数が全角と半角混在してんじゃね つかコードそのまま張れよ
948 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 17:13:14.83 ID:8Iwa8KgHa.net] >>942 cの宣言してないだけ
949 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 17:47:04.78 ID:k/ICsAd30.net] >>920 下に書いたようにParamArrayを使ったメソッドが定義されたクラスモジュールを作って、 それに宣言した変数を渡してみたけどエラーは起きないよ。 後、「参照渡し」で有る事を気にしてるけど、ParamArrayが指定された引数は参照渡しになる。 例えばtestSub内でargs(0)に適当な値を割り当てると、呼び出し元のcaller関数のaの値も変わる。 クラスモジュール(class.cls) Public Sub testSub(ParamArray args()) Dim arg For Each arg In args If VarType(arg) = vbString Then Debug.Print arg; Next End Sub 標準モジュール Sub caller() Dim a As String: a = "a" Dim b As String: b = "b" Dim c As String: c = "c" Dim Class As New Class Class.testSub a, b, c 'イミディエイトウインドウ: abc End Sub だからこっちが質問内容を取り違えてるんだと思うんだけど、どこが違う? それとエラーメッセージを教えて欲しい もし意味が分かるならコンパイルエラーか実行時エラーかも知りたい
950 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 18:37:19.42 ID:k/ICsAd30.net] >>934 Columnsで列ごとに取り出す方法で短く、分かりやすくしてみた Sub PrintOut() Dim Column As Range For Each Column In Range("D1:H4").Columns '指定範囲を一列ごと取り出す Range("A1:A4").Value = Column.Value '取り出した一列の値をA1:A4に張り付ける ActiveWindow.SelectedSheets.PrintOut Next End Sub ちなみにこういうのはActive***とセル番号指定じゃなくて、 シートモジュールとテーブル使った方がメンテしやすくなる。 A1:A4とD1:H4にそれぞれテーブルを作成(セルを選択して「ホーム」リボンの「テーブルとして書式設定」)し、 A1:A4のテーブル名を「コピー先」、D1:H4のテーブル名を「コピー元一覧」にする。 そのシートのシートモジュールに次の様なメソッドを定義する Sub MyPrintOut() Dim Column As ListColumn For Each Column In ListObjects("コピー元一覧").ListColumns ListObjects("コピー先").Value = Column.DataBodyRange.Value ActiveWindow.SelectedSheets.PrintOut Next End Sub やってることは一緒だけど、 ・コピペする(される)セルの番地が変わっても動く ・D1:H4の範囲が増えてもテーブルを範囲を変更するだけで動く ・「コピー元一覧」から「コピー先」に張り付けてるのがソースを見ただけで分かる とメリットだらけ
951 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 21:16:37.69 ID:cbJJzriEM.net] >>937 > 余談だけどその変数名は絶対にやめた方がいい > VBAには既にRangeって単語があるんだから なぜ? VBAは型の名前空間と変数等の名前空間違うから問題なく動くぞ
952 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 21:38:37.34 ID:2Fxd4w670.net] >>946 そういう問題じゃないんですよ
953 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 21:40:05.19 ID:TT1mfVcaM.net] >>947 だからどういう問題かを書けないなら黙ってなよ
954 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 21:43:02.76 ID:2Fxd4w670.net] >>948 動くかどうかという話ではないので論点はそこではありません
955 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 22:07:47.67 ID:rk4qX9ha0.net] 動かすだけならグローバルに配列つくればいいわな
956 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 22:16:10.75 ID:cbJJzriEM.net] >>949 ああ説明できないのかしたくないのかは知らんけどそういうことしか書けないのな まあ君はそれでいいと思うよw
957 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 22:19:16.50 ID:rrgK5Yqx0.net] >>951 可読性の面もあるし、変数名の意味付けの面もあるだろう Rangeって書かれても、どんな目的で何のRangeを変数に入れたのかが分かるように書くのが綺麗なコード 知らんけど
958 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 22:20:43.81 ID:oDrMz70O0.net] 難癖つけててワロタ
959 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 22:37:14.80 ID:sbKq7iyBM.net] >>952 > Rangeって書かれても、どんな目的で何のRangeを変数に入れたのかが分かるように書くのが綺麗なコード 例えば指定された範囲にいくつかの装飾を適用する Private Sub 装飾(Range As Range) With Range ... End With End Sub 君なら引数の名前をどうする?
960 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 22:56:49.10 ID:rrgK5Yqx0.net] Excelの装飾ってのがよくわからんけど、書式のこと? 関数っぽい書き方してるからこんなんでいいんじゃないの Private Sub SetFormat_to_TargetRange(ByVal TargetRange As Range) With TargetRange ... End With End Sub
961 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 23:04:12.45 ID:k/ICsAd30.net] 文脈的に明らかならRange As Rangeいいと思うけどね。 あと、「Rangeオブジェクト」である以上の情報がない変数や引数に対して無理やり名づけようとしても、 結局TargetRange的な抽象的な名前になっちゃう事もある。
962 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 23:06:14.39 ID:k/ICsAd30.net] >>955 流石にそれは冗長すぎて逆に読みにくいだろ・・・
963 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 23:11:20.56 ID:LHgBQKs+0.net] >>954 そこはtarget as rangeでいいと思う 一番読みやすい 自分しか使わない場合でもrange as rangeは使わないかな vbaの場合、引数なしの関数と変数って見分けが付きにくい ってかなんだこれエラーになるぞ Sub foo() Dim Calculate As Long Calculate End Sub これはエラーにならない Sub foo() Dim Calculate As Long End Sub これもエラーにならない Sub foo() Calculate End Sub 変数名と関数名がかぶると変数が優先される? まぁ何にしろ、こんな事は避けたいから俺はかぶらないようにするけどね
964 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 23:15:36.34 ID:rrgK5Yqx0.net] 多少長くても要素要素は省いちゃメンテが大変になるから多少冗長でも構わないスタンスで 単語の簡素化はしてもいいなら関数名をSetFmt_TgtRngとかにするかもね あとそもそも、挙げられた例は不適切では? 今回話題になってるのは呼び出し先の(汎用的に使える)関数での変数名ではなくて、呼び出し元での変数名かと
965 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 23:25:05.99 ID:k/ICsAd30.net] >>958 再定義(シャドーイング)されてるだけ。 親スコープから継承されてる宣言名(今回で言えばオブジェクト名.Calculate)を再定義すると、定義が上書きされる。 Calculateは整数として再定義されたので、そのスコープではCalculateだけなら暗黙的に整数になる。 明示的に「オブジェクト名.Calculate」とすればメソッドとしてのCalculateを使用できる
966 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 00:00:09.96 ID:qqZDVqkP0.net] personal.xlsbを複数の端末で共有したいので共有フォルダーにおいています. XLSTARTのpersonal.xlsbは削除して共有フォルダーのpersonal.xlsbへのショートカットをおいています. エクセルが起動するときにpersonal.xlsbを開くかどうか毎回聞いてきます (セキュリティのマクロの設定は「警告を表示して全てのマクロを無効にする」です) 毎回開くを押すのが面倒なので共有フォルダーのpersonal.xlsbだけ常時開くような設定はできないでしょうか?
967 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 07:08:07.40 ID:M0KgNEQw0.net] >>960 ありがとうございます こんな機能あったのか、名前被るとエラーになると思って避けてたわ
968 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 08:32:29.27 ID:uUbGGWZvM.net] >>962 スコープを持った言語ではたいてい内側のスコープが優先されるよ 中にはあえてエラーにする言語もあるけど https://docs.microsoft.com/ja-jp/dotnet/csharp/misc/cs0136
969 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 09:37:25.87 ID:3jGknNChp.net] >>955 関数の大きさにもよるな 小さくてすぐ上に引数設定して 型が見えてるようなのはvalueでいいと思う 少しごちゃごちゃして見辛いのは targetRangeでいいと思うし 更にもう少し大きくなって業務的な 意味を持つようになったらその名前付ければ いいんじゃないかな
970 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 10:18:08.93 ID:JYcIgh+V0.net] >>936 です 質問用に最少構成にする時点でもう少し変数名に気を付けるべきでした 変な流れになってすみません
971 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 10:49:48.68 ID:eXg+YAmHM.net] >>964 Valueはないわ…
972 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 12:17:24.93 ID:qqZDVqkP0.net] >>966 そうだよな。value指定ではフォーマット変更は無理だよな
973 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 13:14:28.26 ID:GnKWsobMa.net] Valueだけはねぇわ targetとtmpとi・j・kとrくらいしか意味の薄い変数は使わないようにしないと
974 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 13:57:33.58 ID:SrjYrNmNM.net] m,nも
975 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 14:37:20.09 ID:M0KgNEQw0.net] i・j・k 顔文字かと思った
976 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 11:12:03.90 ID:up1UF/mUp.net] valueがダメだと言ってる奴は恐らくプロパティとか プロパティの使えない他言語とか使ったことのない井の中の蛙という奴だな VBAしかやってないジジイにはよくあること
977 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 11:42:37.67 ID:igJhGb/40.net] >>971 君、韓国人?
978 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 11:48:24.82 ID:3Dv8YdNb0.net] 韓国をばかにするな!ITに関しては日本より進んでいるぞ
979 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 12:10:04.57 ID:tsfiI8be0.net] どこ見て言ってんだか
980 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 12:15:32.69 ID:3Dv8YdNb0.net] ここ見ててんだよ
981 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 12:55:49.25 ID:xXC+mfefM.net] >>971 またチンケなマウント取りが来たなw >>954 の引数としてValueはないわって話 値としての用途ならValueもよく使うよ
982 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 13:36:49.25 ID:5xdi3uAF0.net] オブジェクト型のRange型なのに、Valueを変数名にするのはVBAの常識的にNGなのは自明
983 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 14:09:17.30 ID:3Dv8YdNb0.net] >>977 > Valueを変数名にする 変数名の適否ではなくって、ByValで値引き渡しにしたらもとの範囲のフォーマットを変更できないという話じゃないのか?
984 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 16:11:41.17 ID:INS7ikYU0.net] >>978 今問題にしてたのは変数(引数)名であって引数の渡し方ではないのだが 参照型と参照渡しとちゃんと区別して理解してる?
985 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 16:21:24.92 ID:aVK/EU7g0.net] 元の元は>>936 (私)でdim range as rangeに対してsetしたのですが 引数としてrange as rangeとされている状態でsetする事なんてあるのですか? 普通は無いなら途中から引数の話になるのもずれてません?
986 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 16:31:54.19 ID:pHewVqE+0.net] そう言えばデコレーターパターンとかでは valueはよく見るけどreferって見ないよね なんでだろ?
987 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 16:37:26.61 ID:3Dv8YdNb0.net] >>979 955の話じゃないのか? 誤解してたらすまん。
988 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 18:56:51.30 ID:up1UF/mUp.net] >>981 それは引数が何かの値という意味で プログラム的な参照とか値とかは関係ないからさ
989 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 19:28:40.93 ID:qUARoTjRM.net] >>980 お前さんの普通がわからんけど、複数のレンジを返したいならそういうケースもあると思うよ そもそも>>952 は名前付けの話でSet云々の話に限定はしてないと思うし
990 名前:デフォルトの名無しさん [2021/09/12(日) 21:17:53.40 ID:K6Dv6PKH0.net] ttps://whois.nic.ad.jp/cgi-bin/whois_gw?key=182.22.16.251&codecheck-sjis=%E3%81%AB%E3%81%BB%E3%82%93%E3%81%AD%E3%81%A3%E3%81%A8%E3%82%8F%E3%83%BC%E3%81%8F%E3%81%84%E3%82%93%E3%81%B5%E3%81%89%E3%82%81%E3%83%BC%E3%81%97%E3%82%87%E3%82%93%E3%81%9B%E3%82%93%E3%81%9F%E3%83%BC&submit= に表示されているネットワーク名「YAHOO-NET」を取得しようとしているのですが、 Cells(1, 2) = objIE.Document.getElementsByTagName("pre").innerText ではメソッドがサポートされいないとエラー表示されます。 何がいけないのでしょうか?
991 名前:名無し募集中。。。 mailto:sage [2021/09/12(日) 21:29:23.70 ID:Nc1wnmSN0.net] 普段使ってないから問題点がこれ意外にもあるかわからないが Cells(1, 2) = objIE.Document.getElementsByTagName("pre")(1).innerText これでどう?
992 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 21:29:29.14 ID:wxf2x8Lb0.net] VBAとJavaScriptが、混ざっちゃった感じかな
993 名前:デフォルトの名無しさん [2021/09/12(日) 22:10:03.90 ID:UcZJH98c0.net] n時間後にエンターキーを押すプログラムってどう作るんだ?初心者にもわかりやすく誰か教えて
994 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 22:16:01.50 ID:wxf2x8Lb0.net] 「n時間後にアラームを設定して、鳴ったらENTERを押せ!」 と、命令する
995 名前:デフォルトの名無しさん [2021/09/12(日) 22:27:13.14 ID:K6Dv6PKH0.net] >>986 ありがとうございます。 「オブジェクト変数がセットされていません」というエラーメッセージが出ており、検証はできておりませんが、いけそうな気がします。 ページ遷移したらobjIE.Documentに遷移先の情報が自動で設定されないのかもしれません。
996 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 22:28:25.73 ID:8PbYCWHKH.net] >>988 基本はこうだけど、このままだとタイマーを仕掛けたのを忘れてて、ほかの作業をしてる時に急にEnterが押されてびっくりすると思うよ Sub n時間後にEnterを押す() n = 1 'n時間を指定 n時間後 = Now + TimeValue(n & ":00:00") 'n時間後が何時何分か計算する Do DoEvents Loop Until Now >= n時間後 'n時間誤まで待つ SendKeys "~" 'Enterを押す End Sub
997 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 23:27:46.85 ID:Nc1wnmSN0.net] >>990 (1)じゃなかった (0)だった
998 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 01:05:28.69 ID:gLuGYsXi0.net] >>991 せめてOnTime使えよ
999 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 01:09:51.01 ID:DeEefxbAd.net] OnTimeはあとからタイマーの設定を確認したり停始する方法がないから使い勝手が悪すぎるのがなあ
1000 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 01:34:41.43 ID:/cjB8lcQM.net] 配列に保存しとくか シートに書き出しておく それを元に確認したりキャンセルする
1001 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 02:28:08.29 ID:SNtxNYpLd.net] >>990 URLはここまででいいんだよ https://whois.nic.ad.jp/cgi-bin/whois_gw?key=182.22.16.251
1002 名前:デフォルトの名無しさん [2021/09/13(月) 07:15:43.89 ID:oNrWMPyP0.net] >>992 , 996 ありがとうございます!
1003 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 07:30:13.42 ID:GNx0xRRz0.net] つぎ https://mevius.5ch.net/test/read.cgi/tech/1631485799/l50
1004 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 07:41:47.37 ID:KCvhkZmap.net] >>998 うむ、ご苦労
1005 名前:デフォルトの名無しさん [2021/09/13(月) 09:30:38.14 ID:Kz73eSbEF.net] 1000ならコロナ収束
1006 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 57日 0時間 48分 23秒
1007 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています