1 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 22:08:43.71 ID:jtngtgXU0.net] !extend:checked:vvvvv:1000:512 ↑同じ内容を2行貼り付けるナリ ExcelのVBAに関する質問スレナリ コード書き込みや作成依頼もOKナリ ※前スレ Excel VBA 質問スレ Part69 https://mevius.5ch.net/test/read.cgi/tech/1607786543/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
159 名前:デフォルトの名無しさん mailto:sage [2021/04/09(金) 19:26:47.90 ID:o5ukQupNM.net] >>157 ちなみに今回使おうとしたのは3次元配列なんだけど、3次元配列にした理由は同じような2次元配列に順番にアクセスしたかったから こういう場合は2次元配列を複数用意すればいいのかな? 3次元配列にした方がスマートに記述できると思ったんだけど
160 名前:デフォルトの名無しさん [2021/04/09(金) 19:41:20.17 ID:H0DC02Cp0.net] 行、列、シートで、3次元 配列で重くなるならセルに入れてしまうという手も
161 名前:デフォルトの名無しさん mailto:sage [2021/04/09(金) 21:04:50.47 ID:v0s3XxNT0.net] >>159 シートを余計に食うけど場合によってはそれもひとつの有効手段だよね。 あまり見せたくなければVerryHiddenとかにしてしまえばいい訳だし。 >>158 使い処によると思うよ。使い方が単純でスピードが速い方がいいならそれでいいと思う。 ただ、これはあくまで「俺が」なんだけど実はあまり配列が好きじゃないんだ。 だからと言うわけでもないんだけどある程度大きなプログラムを組むときは 配列を使うこともあるにはあるけど、2次元配列の代わりにプロパティだけのエンティティクラス作って それをコレクションやディクショナリに詰め込んで使ったり、 レコードセットを使ったりすることもあるし、 3次元では上記したような仕組みのものやそういった仕組みを持つクラスを作って、 それをまたコレクションやディクショナリにいれたりするように作ったりとか。 何でこんなまどろっこしいことするのかと言えば、要素と言うか項目やレコードの追加や データ抽出が楽なんだよね。 シート足していいと言うなら先程の>>159 の人の案も有りだと思う。 削除系は使えないけどシートにはその気になればSQLが投げられるから 抽出や計算、変換、加工とかする必要があるならかなり楽に作れることもあるからね。
162 名前:デフォルトの名無しさん [2021/04/09(金) 21:29:44.17 ID:H0DC02Cp0.net] 三次元配列は単純に頭がしんどい 三次元空間の様にそれぞれの次元が同じ重みを持っているなら仕方ないけど、 それ意外なら行列の二次元+シート一次元、のように分けたほうがスッキリすると思う
163 名前:デフォルトの名無しさん mailto:sage [2021/04/09(金) 21:34:45.69 ID:VGCoQhdKa.net] 省略したら値渡しでしよ 再帰かけるときには値渡しにしないと、いろいろ都合がある
164 名前:デフォルトの名無しさん mailto:sage [2021/04/09(金) 21:37:45.95 ID:VGCoQhdKa.net] >>161 賛成、エクセルのシート使うよね
165 名前:デフォルトの名無しさん mailto:sage [2021/04/09(金) 21:50:51.12 ID:v0s3XxNT0.net] >>162 これな 実はVB.Netの場合は省略するとByVal(値渡し)で 旧VB6やVBAの場合は省略するとByRef(参照渡し)で 両方やってる人はよく間違えるんだよね。 再起の場合は確かにどれを反映させてどれを反映させないか結構大事になるけど、 まぁ基本デフォルト使わないで明示的に書くだろうからあまり気にしなくてもいいかもね。
166 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 00:28:07.23 ID:xAikY8XJ0.net] みんなありがとう >>160 VBAは基本の参考書を読んで一通り分かったつもり でもクラスは上級者すぎて分からないや 一応自作のオブジェクトという理解でいる 色々案を考えてくれてありがとう、もう少し勉強してからそのあたりも試してみる
167 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 06:57:57.98 ID:+Fv9eRvVa.net] シートに書き出すととピポットにできるから ピポットなら何重にも次元が増やせるし 処理もはやい ピポットとvbaを組み合わせると、 けっこうはやい
168 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 08:02:59.36 ID:GLiDRYw80.net] >>165 頑張って クラスはObject指向言語だと必須だけどVBAでは無理して知ってる必要もないから気が向いたときに覚えればいいと思うよ とは言ってもクラス自体はそんなに難しいものじゃないんだけどね。よく、ひとつの纏まった機能を他のモジュールに書くよね。 あれを標準モジュールの変わりにクラスモジュールに書けばクラスの出来上がり。 後は他のオブジェクト使うときと同じようにNewして変数に入れて、変数名.メソッド名、変数名.プロパティ名とか書けば使えるよ。 どっちかっていうと考え方と使いどころに慣れるまでがちょっと大変かもね。 それ以上の多態性とかデザインパターンとかの知識を身につけるころには他の言語やってるだろうから 今そんなに深く考えることもないと思うよ。
169 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 09:30:59.12 ID:ASUPMck3M.net] >>165 VBAの範疇ならクラスは忘れてもいいと思う コンストラクタに引数も持てないし継承もできないから普通にユーザー定義型と操作ルーチンをモジュールにまとめるのとたいして変わらんし
170 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 10:08:24.05 ID:+Fv9eRvVa.net] エクセルというクラスを使いこなせば ビジネスなら十分 エクセル以上のobject作るのは無理だから なんつてセカンドオニオンでした
171 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 15:51:59.07 ID:duTza7EGd.net] 自分もクラスで挫折して今はユーザー定義型で幸せです
172 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 16:02:42.86 ID:4ha6UGTxp.net] 自分もユーザー定義にした途端お金が入って彼女が出来ました。今ではとっても幸せです。
173 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 17:05:30.13 ID:eY7Q/L5k0.net] そうかい
174 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 20:22:47.19 ID:mgDf3XRg0.net] >>170 プロパティとかコンストラクタとかあとは鯛焼きの型とかいきなり説明しだすから分かりにくいんだよな
175 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 20:23:09.87 ID:mgDf3XRg0.net] 最初はクラス内の変数と関数だけでプロシージャ内のコードがこれだけ簡潔書けるようになります程度でいいのに
176 名前:デフォルトの名無しさん [2021/04/10(土) 20:31:08.56 ID:u4vdYafN0.net] EXCELvbaで、クラスってどういう時に使うのでしょうか ゲームのように細かいオブジェクトが多数ある状態なら分かりますが、 表の状態になったデータだと、今ひとつピント来ないです 社員classや顧客classを作るのでしょうか
177 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 20:42:21.31 ID:r9QO1mE4M.net] 無理に使う必要は無い。 「使わなくては!」と閃く状況が来るときまで。
178 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 21:10:26.00 ID:2jN52YXT0.net] >>175 よく使うけど毎回書くのが面倒な処理がある時 DB接続とかUIAutomationとか長げぇよってやつ
179 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 21:22:16.81 ID:GLiDRYw80.net] >>175 どう使うかを決めるのも自分。 だからクラスそのものより 考え方や使いどころに慣れるまで そっちの方が大変だって言ったんだよ。 まぁ表であればあくまで俺であれば、 項目をプロパティにして 1レコードをクラスにして、 それをコレクションやディクショナリに 登録して使うよ。前記したけどね。
180 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 22:23:34.34 ID:duTza7EGd.net] オレ知ってる! クラスってニューして使うんだよな!
181 名前:デフォルトの名無しさん [2021/04/10(土) 23:22:47.33 ID:kj/emQZa0.net] エクセルでガントチャートを作りたく極力簡単な方法を探しています。 (手順が少なく、エクセル苦手でも理解しやすい) 自力で探したところ ttps://excel-master.net/cells-worksheets-control/gantt-chart-3/ の「条件付き書式でガントチャートをつくる」が一番簡単な気がしましたが より簡単な方法があったらご教授いただきたく。 windows板で尋ねようかと思いましたがエクセル専用スレが無いため 詳しい人が多そうなこのスレにお邪魔しました。
182 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 23:41:30.33 ID:KgXo78Rva.net] 要望は何回もやり直したほうがよいよ さいしょは相手も自分もよくわかってないから Ver3ぐらいでようやく完成する
183 名前:デフォルトの名無しさん mailto:sage [2021/04/11(日) 00:00:57.05 ID:0+LhiyyI0.net] >>180 あ、これ、俺は苦手だわ WBS作ろうとするとどうしても 簡単に作ることより分かり易くする方に 力入れちゃうから多分そのリンク先に 載ってることよりややこしい数式にしてしまう ま、WBSなんて基本、予定線と実績線、 あと遅れそうになった時のワーニング色と 遅れた時のアラート色、 あと遅延リカバリ用の枠付けとくくらいだから 大したもんじゃないからまぁ頑張って。 こういうの作るときにもっと大事なのは 見積もりとそれに対するする人員と期間の 配分だから、そっちも任されているなら そっちに作業の80%くらい割り振って 考えた方がいいよ。
184 名前:デフォルトの名無しさん [2021/04/11(日) 02:17:20.23 ID:x6o0gjqGd.net] 馬鹿ばっかのスレ
185 名前:デフォルトの名無しさん mailto:sage [2021/04/11(日) 02:27:18.88 ID:C7VIYXjZa.net] ガントチャートだとあんまり工程管理にならないんだよ やってみるとわかるけど 8割がた遅延する、というか遅れてないと進捗がわからないだよ 1、そもそもスタートしていなかった? これがいちばんおおい 2、深刻で致命的なもんだいが、見つかるとはいちばん最後 だから
186 名前:デフォルトの名無しさん mailto:sage [2021/04/11(日) 10:19:59.88 ID:Gib6KHmfM.net] >>180 そのガントチャートで問題ないならそれが一番簡単だと思う ただ>>184 が言うような日程管理をしたいならもうちょい作り込むなり専用アプリを使ったほうがいい
187 名前:デフォルトの名無しさん mailto:sage [2021/04/11(日) 11:13:40.17 ID:udnt6yH0p.net] 質問です 今後このスレ こう言ったEXCELのとか 旧VB6とか許容すんの? 古参なら今までどういったことが 有ったか覚えていると思うけど
188 名前:デフォルトの名無しさん mailto:sage [2021/04/11(日) 11:43:22.55 ID:TwIBijR2M.net] 質問者はワークシートでの作り方はある程度想像がつくけどVBAの知識がある人ならよりスマートな方法を知っているかもしれないと考えてここで聞いたんだろうし、 それに対してワークシートの機能でできることはVBA使うよりワークシートの機能でやった方がいいってのは極めて妥当で健全な回答だろう そんなことでいちいちスレ違い警察さんが出動しなくていいよ
189 名前:デフォルトの名無しさん mailto:sage [2021/04/11(日) 12:04:02.09 ID:0+LhiyyI0.net] >>187 そう 許容するのね?
190 名前:デフォルトの名無しさん [2021/04/11(日) 12:41:42.70 ID:WBicdlML0.net] excelのOnTime関数をPowerPointで使うこと出来ないよね?同じ機能を持った関数ってある?
191 名前:デフォルトの名無しさん mailto:sage [2021/04/11(日) 12:55:23.83 ID:0+LhiyyI0.net] >>189 無いからAPIで行うらしい https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1396587403
192 名前:デフォルトの名無しさん mailto:sage [2021/04/11(日) 13:01:24.60 ID:J2w1eWX20.net] Excelから呼び出せないのか 起動中のソフトを検索するワード関数をExcelから呼び出してるの見かけたことあるけど
193 名前:デフォルトの名無しさん [2021/04/11(日) 14:13:05.18 ID:WBicdlML0.net] >>190 ありがとう まったく理解できないけど、もっと楽な方法ないのかなー
194 名前:デフォルトの名無しさん [2021/04/11(日) 15:30:39.63 ID:VuRQUus/0.net] vb.netでdllとか作った方が早いような
195 名前:デフォルトの名無しさん [2021/04/11(日) 20:16:20.16 ID:MoadxaFG0.net] >>180 スレ作ればいいだろ 厚かましいにも程がある
196 名前:デフォルトの名無しさん mailto:sage [2021/04/11(日) 21:10:22.11 ID:LXnW0jT40.net] Python, Julia, Ruby などで使う、Jupyter Lab に、ガントチャートは無いのか?
197 名前:デフォルトの名無しさん [2021/04/11(日) 21:40:30.24 ID:VuRQUus/0.net] >>196 あることはある https://cafe-mickey.com/python/plotly-tutorial-6/ でも結局死ぬほどカスタマイズすることになるから、EXCELで作るのが一番マシ
198 名前:デフォルトの名無しさん mailto:sage [2021/04/11(日) 23:13:09.15 ID:rV+Er0Dj0.net] 業務とはかけ離れた腕自慢スレになりつつあるなここは
199 名前:デフォルトの名無しさん [2021/04/11(日) 23:26:48.43 ID:ZRspFCij0.net] >>180 です。スレ違いな質問に回答くださってありがとうございました。 >>187 さんのご推察どおりここの先生方を最も頼りにしております! 残念ながら任されているのはエクセル上の作業のみであり 人員期間の配分は担当外ですが コレが一番スマートだと確信できました。 これで安心して作業に入れます。感謝します。
200 名前:デフォルトの名無しさん mailto:sage [2021/04/11(日) 23:52:08.05 ID:Omw3/P/WH.net] >>197 昔から、質問の答えが出た後に別の方法を書き込む競争はやってた
201 名前:デフォルトの名無しさん [2021/04/12(月) 00:09:38.61 ID:zgwaoc/v0.net] いつものあいつだな
202 名前:デフォルトの名無しさん [2021/04/12(月) 02:49:52.91 ID:Bvz5U6oCM.net] まだ引っ掛かる馬鹿がいるのか
203 名前:デフォルトの名無しさん mailto:sage [2021/04/12(月) 09:23:22.30 ID:H+Y94TUB0.net] 回答者さん同士で競争とか知恵袋と同じじゃんか 無駄にスレの無駄遣い
204 名前:デフォルトの名無しさん mailto:sage [2021/04/12(月) 10:17:02.71 ID:5VvoR6W20.net] 無駄な書き込みを無駄にスレに書き込んでスレを無駄に使うことはスレの無駄遣いだと書き込むことはスレの無駄遣いかもしれない
205 名前:デフォルトの名無しさん mailto:sage [2021/04/12(月) 10:35:19.07 ID:0gH2bD5Aa.net] 無駄な努力が、むくわれるのさ
206 名前:デフォルトの名無しさん mailto:sage [2021/04/12(月) 10:49:33.17 ID:0gH2bD5Aa.net] VLookupをつかったのは無駄な努力だったな やめときゃよかった
207 名前:デフォルトの名無しさん mailto:sage [2021/04/12(月) 10:56:04.87 ID:0gH2bD5Aa.net] これをマクロでどうにかなりませんか そういってわたされたのがVLookupが山のように貼り付けられた エクセルシートだった うまくと動くけと突然とまるw けっきょくforループの検索に代えた とここまで書いておもいだしたが 去年、メンタル悪化で退職した同僚がいたけど のこしていってのはやはりVLookupの山だったな 動かないVLookupで退職するまえに本スレにご相談ください
208 名前:デフォルトの名無しさん mailto:sage [2021/04/12(月) 12:12:04.06 ID:8dcLaG4EM.net] Excel初心者はVLookupしか知らないから 何でもこれでやろうとして自爆する傾向があるね
209 名前:デフォルトの名無しさん mailto:sage [2021/04/12(月) 12:24:31.30 ID:H+Y94TUB0.net] そのVlook関数はマクロ経由なのかが気になる
210 名前:デフォルトの名無しさん mailto:sage [2021/04/12(月) 12:42:14.50 ID:HPbAbv3kH.net] 池の女神は言いました あなたが落としたのはVLOOKUPですか、HLOOKUPですか いいえ私が落としたのはXLOOKUPです
211 名前:デフォルトの名無しさん mailto:sage [2021/04/12(月) 13:02:43.22 ID:A3OoULtt0.net] 質問です >>209 の言う VlookupとHlookupの頭文字は バーティカル(垂直)とホライズン(水平) なのは分かるんですがXlookupの頭文字の Xってなんですか? EXCELの質問でスレ違いなのは 重々承知していますが このスレにいる方々の知識の豊富さに縋らせてください 考えると夜も眠れない有様です
212 名前:デフォルトの名無しさん mailto:sage [2021/04/12(月) 13:25:12.45 ID:QkakYyyta.net] >>210 クロス
213 名前:デフォルトの名無しさん mailto:sage [2021/04/12(月) 13:30:51.45 ID:A3OoULtt0.net] >>211 クロスのスペルってCROSSではないんですか? それともX_JAPANの「エーックス」のクロスですか? 分かりません><
214 名前:デフォルトの名無しさん mailto:sage [2021/04/12(月) 13:34:07.13 ID:X9TSjYQR0.net] XmasのX
215 名前:デフォルトの名無しさん mailto:sage [2021/04/12(月) 13:36:54.52 ID:MyLZJXYdp.net] 向こうではCrossとかChristmasをXで省略するから、だと思う
216 名前:デフォルトの名無しさん mailto:sage [2021/04/12(月) 13:41:07.52 ID:A3OoULtt0.net] >>213 >>214 やっと分かりました 今日からぐっすりと眠れそうです ありがとうございました
217 名前:デフォルトの名無しさん mailto:sage [2021/04/12(月) 15:02:08.77 ID:3rdXwFWw0.net] >>215 死ねよ
218 名前:デフォルトの名無しさん mailto:sage [2021/04/12(月) 17:28:11.89 ID:H+Y94TUB0.net] バツルックアップじゃないの?? 事務のオバチャンにそう聞いたけど
219 名前:デフォルトの名無しさん mailto:sage [2021/04/12(月) 19:56:57.26 ID:UqVxKohHa.net] とんこつととんかつの違いはなんですか そういう質問をうけたときがあったなぁ
220 名前:デフォルトの名無しさん mailto:sage [2021/04/12(月) 20:02:02.68 ID:HPbAbv3kH.net] とんかつ とんかち
221 名前:デフォルトの名無しさん mailto:sage [2021/04/12(月) 22:40:18.25 ID:6cC4Cv/z0.net] マジレスするとExtraやExtendのX
222 名前:デフォルトの名無しさん mailto:sage [2021/04/13(火) 12:25:16.60 ID:XNPY+hAHa.net] ガントチャートの欠点は 遅れの検出がおそいだよね 期限が過ぎないと遅れることがわからない これでは手遅れですよ
223 名前:デフォルトの名無しさん mailto:sage [2021/04/13(火) 12:40:10.17 ID:5GJi7nDK0.net] >>221 あ、そうなんだ EXCELの数式だったら予定線より実績線が 二日くらい前になったらワーニングで黄色、 予定線以降になったら赤とかにしとけば ワーニングに入った時点でリカバリ案とか 会議で話し合えるのにね。
224 名前:デフォルトの名無しさん mailto:sage [2021/04/13(火) 12:54:32.74 ID:mzxN/X4qM.net] 期限過ぎる前に進捗率がヤバくなればリスケで仕切り直し いつまで経っても期限が過ぎることは無い
225 名前:デフォルトの名無しさん mailto:sage [2021/04/13(火) 13:24:50.99 ID:5GJi7nDK0.net] >>223 本当にありそうで怖いわ!
226 名前:デフォルトの名無しさん mailto:sage [2021/04/13(火) 17:28:26.59 ID:XNPY+hAHa.net] 開始日でだいたいわかる おおくのばあいはまともにスタート出来てないからw 人がいない、資料がそろってない、仕様がきまってない だも スタートできなきゃゴールするわけがない
227 名前:デフォルトの名無しさん mailto:sage [2021/04/13(火) 20:57:49.87 ID:5GJi7nDK0.net] >>225 開発あるあるだなw そうか、確かにVBAだと後ろが伸びるだけになるかも知れないね。 他のある程度大きいシステムになると ・客先から上がって来ない要件定義 ・客先だから強く言えないチームのリーダー ・差し迫る納期 ・焦りが出てきてイラつく俺ら。それを宥めるリーダー この辺からが違うところかな ・システム間の連携や他システムとの連携のため伸ばせない納期 ・更に焦る俺ら。宥めきれなくなるリーダー ・上がって来る要件定義、血眼で設計書を作る俺ら ・時間がなくて客先との対面レビューのはずが回覧レビューになる設計書 ・PGしながら単体テストケース作りながら単位テストしながらエビデンス取る俺ら ・超える納期、無くなる休日、伸びまくる勤務時間、倒れる仲間 ・覆る要件定義、設計種ミス発覚、他の嶋から助っ人入るも焼石に水、発狂する助っ人 ・何とかSTまで終了。飛ばされるリーダー、バグだらけの成果物、昇天する俺ら 最悪こんな感じかな。
228 名前:デフォルトの名無しさん [2021/04/13(火) 21:11:48.26 ID:QqfAiqTvM.net] >>225 開発あるあるだなw そうか、確かにVBAだと後ろが伸びるだけになるかも知れないね。 他のある程度大きいシステムになると ・客先から上がって来ない要件定義 ・客先だから強く言えないチームのリーダー ・差し迫る納期 ・焦りが出てきてイラつく俺ら。それを宥めるリーダー この辺からが違うところかな ・システム間の連携や他システムとの連携のため伸ばせない納期 ・更に焦る俺ら。宥めきれなくなるリーダー ・上がって来る要件定義、血眼で設計書を作る俺ら ・時間がなくて客先との対面レビューのはずが回覧レビューになる設計書 ・PGしながら単体テストケース作りながら単位テストしながらエビデンス取る俺ら ・超える納期、無くなる休日、伸びまくる勤務時間、倒れる仲間 ・覆る要件定義、設計種ミス発覚、他の嶋から助っ人入るも焼石に水、発狂する助っ人 ・何とかSTまで終了。飛ばされるリーダー、ハゲだらけの社員、昇天する俺ら 最悪こんな感じかな。
229 名前:デフォルトの名無しさん mailto:sage [2021/04/13(火) 21:15:01.18 ID:5GJi7nDK0.net] うーん、何か接続がおかしいのかな 他のスレに誤爆になってこのスレでも2回載ってしまった すまんこ
230 名前:デフォルトの名無しさん [2021/04/13(火) 21:34:03.40 ID:QqfAiqTvM.net] うーん、何か接続がおかしいのかな 他のスレに誤爆になってこのスレでも2回載ってしまった おまんこ
231 名前:デフォルトの名無しさん mailto:sage [2021/04/13(火) 21:38:41.78 ID:5GJi7nDK0.net] >>229 おいw
232 名前:デフォルトの名無しさん mailto:sage [2021/04/14(水) 07:51:01.50 ID:EILUghab0.net] ウンコマクロ
233 名前:デフォルトの名無しさん mailto:sage [2021/04/14(水) 19:17:03.44 ID:hXL/FQf4a.net] まあ。そんなんだ
234 名前:デフォルトの名無しさん mailto:sage [2021/04/14(水) 19:29:05.82 ID:jCprHRHj0.net] EXCEL VBAは好きだし凄く肌に合ってると思うけど、案件単価がちょっとなぁ
235 名前:デフォルトの名無しさん mailto:sage [2021/04/14(水) 19:47:31.92 ID:kMGrei9fM.net] EXCEL VBAが肌に合う様な奴が案件単価とか生意気。
236 名前:デフォルトの名無しさん [2021/04/14(水) 20:39:37.17 ID:E4KyUeCU0.net] 一般事務が仕事中に覚える→結婚・退職→主婦の傍ら有り余る時間で糞みたいな単価で受注 まぁ、悪い事でもなんでもないんだけどね、うん
237 名前:デフォルトの名無しさん mailto:sage [2021/04/14(水) 20:45:27.19 ID:ijCB3EYv0.net] あたまが鉛のようにおもい
238 名前:デフォルトの名無しさん mailto:sage [2021/04/14(水) 20:47:48.07 ID:cTgQ8ZPt0.net] 1時間で作れるような案件が高いわけない
239 名前:デフォルトの名無しさん mailto:sage [2021/04/14(水) 20:52:06.82 ID:ijCB3EYv0.net] 冷戦時代日本がロケットのことでロシアに教えをこうたとき 一言ジャイロに問題があるといって 100億ぐらいもって去っていったそうな
240 名前:デフォルトの名無しさん [2021/04/14(水) 21:21:01.64 ID:tTtaKpUk0.net] VBA Seleniumdriveで driver.ExecuteScript ("XXXX") でonclickをクリックするとモーダルコンテンツが表示されます。 コンテンツ内のXpathをクリックしてもボタンを押すことが出来ないんですが、 SendKeys "{TAB}", Trueで該当のボタンをクリックする以外に 要素を指定してクリックする方法ってありますか?
241 名前:デフォルトの名無しさん mailto:sage [2021/04/14(水) 22:43:58.06 ID:bsTwIiw80.net] 下記「やりたいこと」のようにhtmlから抽出したいのですが、 下記「前提」があって、どうしたらいいのか分かりません。 なにか方法ありますでしょうか? --- やりたいこと --- 下記htmlにおいて、"ヘッダ"のすぐ次に存在しているtableタグ内の項目1,2、要素1,2を取得したい --- 前提 --- @"ヘッダ"は特定できる Atableは特定できない ・tableのidや要素から特定できない ・tableの数から特定できない(取得したいtableが何個目なのか分からない) --- html例 --- ・・・ <h2>ヘッダ</h2> <table> <tr><th>項目1</th><th>項目2</th></tr> <tr><td>要素1</td><td>要素2</td></tr> </table> ・・・ --- プログラム例(Microsoft Internet Controls、Microsoft HTML Object Libraryは参照設定済み) --- Dim objIE As New InternetExplorer objIE.Navigate "***" Do While objIE.Busy = True Or objIE.ReadyState <> READYSTATE_COMPLETE DoEvents Loop For Each obj In objIE.Document.getElementsByTagName("h2") If InStr(obj.innerText, "ヘッダ") > 0 Then ヘッダは見つけることができるが、この後どうしたらいいのか・・・ End If Next obj
242 名前:デフォルトの名無しさん mailto:sage [2021/04/14(水) 23:08:27.54 ID:mIFbuL/UH.net] >>240 <HTML>タグか<BODY>タグで全体のソースを取り込んで、あとは文字列として処理
243 名前:デフォルトの名無しさん mailto:sage [2021/04/15(木) 01:36:52.92 ID:E+h/Uieza.net] VBAでやる意味あんの?
244 名前:デフォルトの名無しさん mailto:sage [2021/04/15(木) 02:03:12.55 ID:Un6DIa9Z0.net] >>241 >>242 ありがとうです。 もう少し考えます。。
245 名前:デフォルトの名無しさん mailto:sage [2021/04/15(木) 06:20:29.14 ID:5JoH8OD60.net] >>240 jQuery なら、2重ループで、 <h2 id="id-1">ヘッダ</h2> <table><tbody> <tr><th>項目1</th><th>項目2</th></tr> <tr><td>要素1</td><td>要素2</td></tr> </tbody></table> <table><tbody> <tr><th>項目3</th><th>項目4</th></tr> <tr><td>要素3</td><td>要素4</td></tr> </tbody></table> $( function ( ) { let table = $( '#id-1' ).next( ); //次の兄弟要素 // table > tbody > tr を、1行ずつ処理する $( table ).children( ).children( ).each( function ( index, row ) { // 1列ずつ処理する $( row ).children( ).each( function ( index_2, col ) { console.log( `${ index }行 ${ index_2 }列`, col.textContent ); } ); } ); } ); 出力 0行 0列 項目1 0行 1列 項目2 1行 0列 要素1 1行 1列 要素2
246 名前:デフォルトの名無しさん mailto:sage [2021/04/15(木) 06:53:10.31 ID:r2UxJQfIM.net] >>244 VBAの構文に変換してくれ
247 名前:デフォルトの名無しさん mailto:sage [2021/04/15(木) 11:25:51.10 ID:c60l0/FJ0.net] >>244 VBAに対してHTMLの集約やメソッドチェーンが使える言語をぶつけてくるのは卑怯だと思うの
248 名前:デフォルトの名無しさん mailto:sage [2021/04/15(木) 12:05:58.59 ID:nvZZu+k0a.net] スクリプトぐらいなら良くねの
249 名前:デフォルトの名無しさん mailto:sage [2021/04/15(木) 12:18:14.12 ID:ivOr0/mk0.net] >>244 結局総当りか まあそうだよね
250 名前:デフォルトの名無しさん [2021/04/15(木) 16:07:09.80 ID:MUSbI6ab0.net] 質問です。 今は下記のようなコードとvlookupを組み合わせて連続で請求書を印刷しています。 一つのジョブにまとめて印刷するにはどのようにしたらよいでしょうか? Sub 連続印刷() Dim i As Integer Dim LastRow As Integer Worksheets("請求書").Select With Worksheets("データ") For i = 3 To 5 Range("d1").Value = .Range("A" & i).Value Range("n1").Value = .Range("A" & i + 1).Value i = i + 1 ActiveSheet.PrintOut Next End With End Sub
251 名前:デフォルトの名無しさん mailto:sage [2021/04/15(木) 17:29:43.21 ID:c2wrGnlaM.net] >>249 vlookup部分もVBA化して組入れれば一つのJOBに出来るよ
252 名前:デフォルトの名無しさん mailto:sage [2021/04/15(木) 17:46:43.97 ID:BAka9uDVM.net] >>249 3つぐらいなら請求書シートを必要分コピーして各々値を入れて複数シートを一気に印刷するしか思い付かない
253 名前:デフォルトの名無しさん mailto:sage [2021/04/15(木) 17:53:55.45 ID:c2wrGnlaM.net] 請求書シートも複数有るなら、それをFor Nextで繰り返すぐらいだろうね
254 名前:デフォルトの名無しさん mailto:sage [2021/04/15(木) 19:09:26.62 ID:pI0uqt930.net] UI Automationの質問てここでいいの? VBAでゆっくりムービーメーカー4のキャラクター切り替えをやりたいんだけど、 うまくいかず。 キー操作をWindowsに送ることでごまかしている。 ”追加してシーク”ボタンを押すだけならこんな感じでできるんだけど、 Set iCnd = uiAuto.CreatePropertyCondition(UIA_NamePropertyId, "追加してシーク") Set elmYukkuri_Button = elmYukkuri_timeline.FindFirst(TreeScope_Subtree, iCnd) Dim InvokePattern As IUIAutomationInvokePattern Set InvokePattern = elmYukkuri_Button.GetCurrentPattern(UIA_InvokePatternId) ボタンじゃなくてコンボボックスでボタン内容が切り替わるときはどうすればいいんだろう?
255 名前:デフォルトの名無しさん [2021/04/15(木) 21:08:32.60 ID:fGNDJEoP0.net] >>249 俺もそれ使ってたわ 100セットとか印刷するとコピー機占領するからすごい迷惑なんだよね。 色々あって、vbaは逆に使わなくなった 方法はは>>251 にかなり近くて、 ・シートを連番で用意しておく ・シート名は「3」〜「5」 ・vlookupのキーはシート名にする Range("d1").Valueには、 .Range("A" & シート名).Value Range("n1").Value には、.Range("A" & シート名+ 1).Value のように、予めシート名を引っ張ってvlokup部分は完結させておく 後はシート「3」〜シート「5」を選択し、印刷するだけ。ジョブは一つになるし、vbaも不要になる シート内容が変更になる時は、vbaを使って連番のシートを再作成すると良い
256 名前:デフォルトの名無しさん mailto:sage [2021/04/15(木) 22:20:13.95 ID:8+4wzY1VH.net] 直接印刷せずPDFにすればいいじゃん PDFなら大量のファイルを1回のジョブで一気に印刷できるぞ
257 名前:デフォルトの名無しさん [2021/04/15(木) 22:56:26.48 ID:fGNDJEoP0.net] >255 PDFに出力する時はvbaで制御できないんじゃ
258 名前:デフォルトの名無しさん mailto:sage [2021/04/15(木) 23:42:15.25 ID:rzqCvIH40.net] >>253 ここで良いけど、 UIAutomationとムービーメーカー4両方知ってるレアな人じゃないとわからないと思うぞ。 俺は前者しかわからんからあてずっぽうで言うけど、 FindFirstじゃなくてFindAllして中身を調べれば良いんじゃないの?
259 名前:デフォルトの名無しさん mailto:sage [2021/04/16(金) 04:48:18.88 ID:aO0hqHGi0.net] >>257 とりあえずごまかしながら作ったのがこんなやつ https://youtu.be/3RApNTTEkIs ソースとかほしい?