!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part58
https://mevius.5ch.net/test/read.cgi/tech/1542577644/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
Excel VBA 質問スレ Part59
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ d2a3-A3MQ)
2019/02/09(土) 15:12:30.70ID:3lTArmdf0549デフォルトの名無しさん (ワッチョイ 9fa2-IBRN)
2019/02/28(木) 07:09:57.92ID:syDDbQ630 自分はstopとローカウルィンドウ派だな
550デフォルトの名無しさん (ワッチョイ ffdd-r++/)
2019/02/28(木) 07:10:06.15ID:3O1mZe4/0 >>546
OK押すのメンドいし、押したら消えるし。
Printならイミディエイトウィンドウにどんどん溜まっていくから比較しやすいし。
VBE上でCtrl+Gで呼び出せる。
コード書くときは常に表示してるな。
他にもいろいろ便利に使えるからGGってみて。
OK押すのメンドいし、押したら消えるし。
Printならイミディエイトウィンドウにどんどん溜まっていくから比較しやすいし。
VBE上でCtrl+Gで呼び出せる。
コード書くときは常に表示してるな。
他にもいろいろ便利に使えるからGGってみて。
551デフォルトの名無しさん (アウアウウー Sa9b-fNI3)
2019/02/28(木) 07:28:40.77ID:/X5EyKzha debug.printなら開発画面を見ない他の使用者が
気付かないで済む
気付かないで済む
552デフォルトの名無しさん (ドコグロ MM6b-dMaL)
2019/02/28(木) 08:31:53.34ID:3CdGs56rM >>540
ちょっと本格的にやるなら…
https://blogs.yahoo.co.jp/yangzh_jp/26557113.html
注意!
中にも書いてあるけど使用時にコードを改変するから使うならバックアップはちゃんと取ること
ちょっと本格的にやるなら…
https://blogs.yahoo.co.jp/yangzh_jp/26557113.html
注意!
中にも書いてあるけど使用時にコードを改変するから使うならバックアップはちゃんと取ること
553デフォルトの名無しさん (スップ Sd3f-IK5z)
2019/02/28(木) 12:28:10.25ID:wbPQJw42d554デフォルトの名無しさん (スップ Sd3f-IK5z)
2019/02/28(木) 12:32:41.06ID:wbPQJw42d555デフォルトの名無しさん (アウアウウー Sa9b-zhdC)
2019/02/28(木) 12:33:37.47ID:qWkUq+5ha >>553
まああくまで傾向だな
システム開発に絶対はないから大まかに語るしかない
しかしまあプログラマって柔軟性がないから何か意見を言ったら必ず特殊な状況を想定して反論しようとする人が出てきて面倒くさいな
まああくまで傾向だな
システム開発に絶対はないから大まかに語るしかない
しかしまあプログラマって柔軟性がないから何か意見を言ったら必ず特殊な状況を想定して反論しようとする人が出てきて面倒くさいな
556デフォルトの名無しさん (JP 0H4f-j5yB)
2019/02/28(木) 13:23:20.67ID:qor22oN3H 柔軟性がある人は出世するからね
557デフォルトの名無しさん (ブーイモ MMbf-0snV)
2019/02/28(木) 13:59:45.70ID:TjDXn6TQM558デフォルトの名無しさん (アウアウクー MM0b-VAd9)
2019/02/28(木) 14:20:36.03ID:x4ZPjfd7M 考慮すべき場面とするべきでない、しても意味がない場面の判断ができないとも言える
559デフォルトの名無しさん (JP 0H4f-j5yB)
2019/02/28(木) 14:36:57.48ID:qor22oN3H だから日本は開発が遅いんだよ
アジャイルでやれ
アジャイルでやれ
560デフォルトの名無しさん (ワッチョイ f7ce-uydA)
2019/02/28(木) 14:57:38.31ID:7AaSmpPf0 想定される状況なんか結局は本人にしか分からないし、説明すんのもめんどくさい
まあ本人が気付いてないこともあるけど
まあ本人が気付いてないこともあるけど
561デフォルトの名無しさん (ドコグロ MM6b-dMaL)
2019/02/28(木) 17:57:19.76ID:3CdGs56rM >>555
決めつけで語って指摘されたら逆ギレかよ w
決めつけで語って指摘されたら逆ギレかよ w
562デフォルトの名無しさん (ワッチョイ 9fa3-+f+8)
2019/02/28(木) 18:42:40.55ID:jqfgz8pY0 ーーここまで型変換関数なしーー
身内が意味がわかるっていうなら変換関数抜きにしてもいいかもしれない、けどコンテキスト的に関数噛ませたい
身内が意味がわかるっていうなら変換関数抜きにしてもいいかもしれない、けどコンテキスト的に関数噛ませたい
563デフォルトの名無しさん (アークセー Sx0b-Yt/p)
2019/02/28(木) 18:45:13.08ID:OctLDBwCx Debug.Assertも割とよく使う
564デフォルトの名無しさん (ワッチョイ f7ce-uydA)
2019/02/28(木) 21:21:18.29ID:7AaSmpPf0 Variant使わなきゃいい
565デフォルトの名無しさん (ブーイモ MM1b-9NtP)
2019/02/28(木) 22:12:12.40ID:TWIU4lxdM566デフォルトの名無しさん (アークセー Sx0b-Yt/p)
2019/02/28(木) 23:20:59.71ID:JVzuLoidx Variant型がないとそれはそれで不便
実行時にならないと変数の保持データの参照型やデータ構造が決定できないような関数を定義するときには必須
Object型では限界があるし、多態性とか考えたら特に
実行時にならないと変数の保持データの参照型やデータ構造が決定できないような関数を定義するときには必須
Object型では限界があるし、多態性とか考えたら特に
567デフォルトの名無しさん (アウアウエー Sadf-hSmr)
2019/03/01(金) 00:53:35.24ID:oijdm3qva VBAにもInterfaceがあるの知らない人かな
568デフォルトの名無しさん (スップ Sd3f-IK5z)
2019/03/01(金) 08:24:19.03ID:KSyELWIpd だから意識して使うぶんには良いんだよ。
Variant配列で高速化は良くやるだろ。
あるいはあえていろんな型を受け付ける関数を作る場合とか。
俺はInteraceはあまり使わんね。
同じプロパティを持ったクラスを複数作ってグループとして使う場合でもそこまでしなくて良いだろと考える。
Variant配列で高速化は良くやるだろ。
あるいはあえていろんな型を受け付ける関数を作る場合とか。
俺はInteraceはあまり使わんね。
同じプロパティを持ったクラスを複数作ってグループとして使う場合でもそこまでしなくて良いだろと考える。
569デフォルトの名無しさん (アウアウウー Sa9b-zhdC)
2019/03/01(金) 08:58:16.79ID:IB7Yh9y1a プログラムの基本的な良い習慣を実践すればVariantなんてそう使うことはない
使うとしてもシートIOなど僅かな用途だけだから業務ロジックまで影響することはまずない
使うとしてもシートIOなど僅かな用途だけだから業務ロジックまで影響することはまずない
570デフォルトの名無しさん (ワッチョイ 9f90-W5e4)
2019/03/01(金) 09:03:46.13ID:BWIoX5Sk0 プロ雑談者どものくだらん蘊蓄語り合いなんぞどうでも良いから質問者の方々は
遠慮なさらずにどうぞ〜
遠慮なさらずにどうぞ〜
571デフォルトの名無しさん (ブーイモ MM3b-sBsz)
2019/03/01(金) 12:55:03.48ID:3XNO5Z9qM コードって色々書く場所あると思うんですけど、ある程度共通の切り分けってあるんですか?
フォームにはあまりややこしいものはかかないで標準モジュールを使うとか。
逆にフォームで書けるものは複雑でもそこで終わらせたほうがいいとか。
今迷ってるのはシート1のデータを加工してシート2のデータにマージさせる場合どこに書けばいいんだろうってことです。
そのシートごとに別けるとバラけて解りにくくなるしみたいな感じです。
フォームにはあまりややこしいものはかかないで標準モジュールを使うとか。
逆にフォームで書けるものは複雑でもそこで終わらせたほうがいいとか。
今迷ってるのはシート1のデータを加工してシート2のデータにマージさせる場合どこに書けばいいんだろうってことです。
そのシートごとに別けるとバラけて解りにくくなるしみたいな感じです。
572デフォルトの名無しさん (ドコグロ MMdb-hSmr)
2019/03/01(金) 13:04:09.15ID:SCR8DJeBM 所詮VBAだしどうでもいいよ
VBAの可読性・保守性を高める唯一の指針があるとしたら、極力VBAを書かないでワークシートの機能を活用することかな
VBAの可読性・保守性を高める唯一の指針があるとしたら、極力VBAを書かないでワークシートの機能を活用することかな
573デフォルトの名無しさん (JP 0H4f-j5yB)
2019/03/01(金) 13:26:59.89ID:HgS5037SH >>571
標準モジュールに Sub MergeSheet1To2 とか作ってCallすれば、他人が処理部を見なくても「このボタンを押すとマージされるんだなぁ」と想像ができる。
自分はフォーム内は処理に使うデータのチェックくらいにしてる。
標準モジュールに Sub MergeSheet1To2 とか作ってCallすれば、他人が処理部を見なくても「このボタンを押すとマージされるんだなぁ」と想像ができる。
自分はフォーム内は処理に使うデータのチェックくらいにしてる。
574デフォルトの名無しさん (ワッチョイ 9f01-IBRN)
2019/03/01(金) 14:04:11.91ID:+h/xS+gL0 フォームモジュールって細々としたイベントのプロシージャであふれちゃって見にくい
だからできるだけ標準モジュールに切り分けてる
例えばフォーム上の複数のTextBoxに全く同じ入力規則を設けたい時なんかは
TextBox・KeyCode・Shiftを引数とするプロシージャを標準モジュールに書いて使い回ししてる
さっきもそういうの書いてた
だからできるだけ標準モジュールに切り分けてる
例えばフォーム上の複数のTextBoxに全く同じ入力規則を設けたい時なんかは
TextBox・KeyCode・Shiftを引数とするプロシージャを標準モジュールに書いて使い回ししてる
さっきもそういうの書いてた
575デフォルトの名無しさん (アウアウウー Sa9b-zhdC)
2019/03/01(金) 17:47:45.49ID:jYXMQwAma576デフォルトの名無しさん (スップ Sd3f-IK5z)
2019/03/01(金) 18:53:01.98ID:KSyELWIpd >>571
そのフォームで完結させたい時はフォームに全部書く。
汎用的なのは標準モジュール、汎用的でなくてもいろんな所から使い回す場合も標準モジュールだな。
シートモジュールにはシートのイベントプロシージャ以外書かないのが基本だけどそのシートのイベントプロシージャと一緒にしたい理由でシートモジュールに書くこともある。
意味論というか、何処に書くかは内容で決める。その方が後でコード見る時に視認性も良くなる。
そのフォームで完結させたい時はフォームに全部書く。
汎用的なのは標準モジュール、汎用的でなくてもいろんな所から使い回す場合も標準モジュールだな。
シートモジュールにはシートのイベントプロシージャ以外書かないのが基本だけどそのシートのイベントプロシージャと一緒にしたい理由でシートモジュールに書くこともある。
意味論というか、何処に書くかは内容で決める。その方が後でコード見る時に視認性も良くなる。
577デフォルトの名無しさん (アウアウウー Sa9b-fNI3)
2019/03/01(金) 20:10:20.22ID:9ceAGmrya 俺ならスコープで書く場所変えてる
578デフォルトの名無しさん (ワッチョイ d783-nvQ/)
2019/03/01(金) 20:18:09.30ID:S/p2I5Nx0 シート1だけでしか使わない関数はシート1
その関数の中で使う関数で他でも使う汎用関数は標準モジュール
シート1のデータを加工ってあるが、それが将来にでも他のシートでも使いそうならその加工関数は汎用化して
標準モジュール。 シート1でしか使わないのならその加工関数はシート1に書く
その関数の中で使う関数で他でも使う汎用関数は標準モジュール
シート1のデータを加工ってあるが、それが将来にでも他のシートでも使いそうならその加工関数は汎用化して
標準モジュール。 シート1でしか使わないのならその加工関数はシート1に書く
579デフォルトの名無しさん (ワッチョイ 9f7c-L+km)
2019/03/01(金) 21:39:17.32ID:41cCIQF20 上級者の人がどう使っているかなんとなく解ったような気がします。とりあえず
【クラスモジュール】汎用性のある関数
【標準モジュール】 大きな処理
【シートモジュール】【フォーム】極力使わないが他と絡まない短いコードなら完結しても良い
という感じで試してみようと思います。
あとは関数名の最後に呼び出しする関数がある場所を付けてみようと思います。
何をやりたいかで構成も変わると思うのでそこらへんも加味しながら試してみます。
参考になりました、ありがとうございます!
【クラスモジュール】汎用性のある関数
【標準モジュール】 大きな処理
【シートモジュール】【フォーム】極力使わないが他と絡まない短いコードなら完結しても良い
という感じで試してみようと思います。
あとは関数名の最後に呼び出しする関数がある場所を付けてみようと思います。
何をやりたいかで構成も変わると思うのでそこらへんも加味しながら試してみます。
参考になりました、ありがとうございます!
580デフォルトの名無しさん (アウアウクー MM0b-VAd9)
2019/03/01(金) 22:34:27.56ID:KieDV9lDM ここに上級者なんていないぞ
581デフォルトの名無しさん (ワッチョイ bf8c-9NtP)
2019/03/01(金) 22:48:58.94ID:eQhW3/JV0 >>579
関数名の最後になにを付けるって?
関数名の最後になにを付けるって?
582デフォルトの名無しさん (アウアウウー Sa9b-zhdC)
2019/03/01(金) 23:05:06.38ID:jYXMQwAma また一人、道に迷ってしまった
やっぱりVBAで勉強するのは非推奨ダナ
やっぱりVBAで勉強するのは非推奨ダナ
583デフォルトの名無しさん (ワッチョイ ffda-3oSp)
2019/03/01(金) 23:30:05.02ID:zWZoP6hm0584デフォルトの名無しさん (アークセー Sx0b-Yt/p)
2019/03/02(土) 01:21:31.95ID:Po9hNmd9x >>579
汎用性のある関数を記載する場所だけど、VBAの仕様ではクラスモジュールではなく標準モジュールの方が都合が良いよ
何故なら自作のクラスモジュールに記述した関数を呼び出す場合、その自作クラスのオブジェクトのインスタンスを生成した後にそのオブジェクトのメソッドとして書くという手間が要る
つまりマシンメメモリの無駄食いになるしコーディング量も増える
標準モジュールならば関数名を書くだけで呼べるので余程気楽
適当にググったときに出てくる、OOP原理主義のJavaプログラマあたりが言うところの「汎用性のある関数はクラスに」っていう考え方は、VBAには当てはまらないので注意だよ
汎用性のある関数を記載する場所だけど、VBAの仕様ではクラスモジュールではなく標準モジュールの方が都合が良いよ
何故なら自作のクラスモジュールに記述した関数を呼び出す場合、その自作クラスのオブジェクトのインスタンスを生成した後にそのオブジェクトのメソッドとして書くという手間が要る
つまりマシンメメモリの無駄食いになるしコーディング量も増える
標準モジュールならば関数名を書くだけで呼べるので余程気楽
適当にググったときに出てくる、OOP原理主義のJavaプログラマあたりが言うところの「汎用性のある関数はクラスに」っていう考え方は、VBAには当てはまらないので注意だよ
585デフォルトの名無しさん (ワッチョイ f7ce-uydA)
2019/03/02(土) 02:50:08.40ID:eoNuxzNL0586デフォルトの名無しさん (ワッチョイ 9fa2-IBRN)
2019/03/02(土) 03:08:30.41ID:vHLv5v7t0 >>585
数式タブ→数式の表示
数式タブ→数式の表示
587デフォルトの名無しさん (アークセー Sx0b-Yt/p)
2019/03/02(土) 09:24:48.87ID:Po9hNmd9x588デフォルトの名無しさん (アウアウウー Sa9b-zhdC)
2019/03/02(土) 09:34:34.03ID:heck9gfNa ワークシート関数の何が良いかというと副作用がないことだよ
ぶっちゃけ重要なのはそこだけ
それ以外ではセル内にだらだら式を書くと醜いなどデメリットしかない
なのでVBAで普通に副作用がない関数を書けばいい
副作用のない関数ならVBAからもセル内式からも使いやすい
しかもセル内式と違って見やすく管理しやすい
ぶっちゃけ重要なのはそこだけ
それ以外ではセル内にだらだら式を書くと醜いなどデメリットしかない
なのでVBAで普通に副作用がない関数を書けばいい
副作用のない関数ならVBAからもセル内式からも使いやすい
しかもセル内式と違って見やすく管理しやすい
589デフォルトの名無しさん (アークセー Sx0b-Yt/p)
2019/03/02(土) 09:47:47.22ID:Po9hNmd9x VBAの方が見やすくて管理しやすくてワークシート関数は見にくいって図式が成り立つかどうかは正直処理を書くやつのスキル次第だけどな
ワークシート関数は必ず内部スコープが()で括られるリスト形式だから、処理構造が簡潔に可視化できるメリットがあるとも言えるわけだし
ワークシート関数は必ず内部スコープが()で括られるリスト形式だから、処理構造が簡潔に可視化できるメリットがあるとも言えるわけだし
590デフォルトの名無しさん (ワッチョイ bf8c-9NtP)
2019/03/02(土) 10:15:37.68ID:VydunwR60 自分は>>572とほぼ正反対のやり方でやってきた
シートは使い捨てのデータとちょっとした設定情報を置いたり、あとは結果を出力する場所としてしか使わないな。
使い捨てのは別だけど、ツールとして繰り返し使うブックのシートに関数はほぼ書いてない。
シートは使い捨てのデータとちょっとした設定情報を置いたり、あとは結果を出力する場所としてしか使わないな。
使い捨てのは別だけど、ツールとして繰り返し使うブックのシートに関数はほぼ書いてない。
591デフォルトの名無しさん (アウアウウー Sa9b-zhdC)
2019/03/02(土) 10:26:10.19ID:heck9gfNa592デフォルトの名無しさん (アウアウエー Sadf-hSmr)
2019/03/02(土) 10:34:03.78ID:1SfH4HCRa593デフォルトの名無しさん (アウアウウー Sa9b-zhdC)
2019/03/02(土) 10:46:06.68ID:heck9gfNa >>592
そもそもセル名前自体が管理しにくいので論外
セル名と数式の関係性がパッと見てわからないし
セル名と数式がひも付けられて管理されてると言われなきゃ後任が気付かない
VBA関数ならこの関数名はこの定義って誰でも一目でわかる
本来の出力でない余計なカラムはノイズになって邪魔
名前で管理したい項目が増えたらノイズだらけになってなにを説明したい表なのかわからなくなる
そもそもセル名前自体が管理しにくいので論外
セル名と数式の関係性がパッと見てわからないし
セル名と数式がひも付けられて管理されてると言われなきゃ後任が気付かない
VBA関数ならこの関数名はこの定義って誰でも一目でわかる
本来の出力でない余計なカラムはノイズになって邪魔
名前で管理したい項目が増えたらノイズだらけになってなにを説明したい表なのかわからなくなる
594デフォルトの名無しさん (ワッチョイ 7f0d-+O5F)
2019/03/02(土) 10:57:15.96ID:ZJ+HN4z+0 visual studioに慣れ切ってしまってるのでVBAエディタがマジで苦手・・・
595デフォルトの名無しさん (ドコグロ MMdf-hSmr)
2019/03/02(土) 11:26:41.59ID:PSsyx6QoM596デフォルトの名無しさん (アウアウウー Sa9b-zhdC)
2019/03/02(土) 11:40:34.50ID:heck9gfNa >>595
こ文脈でループを回すの意味がわからないしどっから出てきて何を意味してるんだ?
こ文脈でループを回すの意味がわからないしどっから出てきて何を意味してるんだ?
597デフォルトの名無しさん (ワッチョイ f7da-3oSp)
2019/03/02(土) 13:55:25.27ID:WupyvY1Q0 話変わるがセルのコピーとか移動したときに条件付き書式が壊れてやたら重くなって直すの苦労したことある
598デフォルトの名無しさん (ワッチョイ 9f2f-nxCI)
2019/03/02(土) 15:18:36.62ID:EfeqCtIS0 お前らまず、
ワークシートの機能を活用する
というのをどういうことかちゃんと合わせてから話してくれるか
ワークシートの機能を活用する
というのをどういうことかちゃんと合わせてから話してくれるか
599デフォルトの名無しさん (アークセー Sx0b-Yt/p)
2019/03/02(土) 18:22:41.70ID:BmvnLX83x >>598
ワークシートの機能ってのはワークシートの機能一般のことでしかないだろ
ワークシートの特定の機能を想定して話をしてるんじゃない
ワークシートの機能を使えば事足りる処理をわざわざVBAのスクラッチでやろうとするのは車輪の再発明の極みだという話
ワークシートの機能ってのはワークシートの機能一般のことでしかないだろ
ワークシートの特定の機能を想定して話をしてるんじゃない
ワークシートの機能を使えば事足りる処理をわざわざVBAのスクラッチでやろうとするのは車輪の再発明の極みだという話
600デフォルトの名無しさん (ワッチョイ ffda-3oSp)
2019/03/02(土) 19:24:09.91ID:PK2Geudt0 ワークシートって言いすぎww
Withでまとめたくなってきたわ。
Withでまとめたくなってきたわ。
601デフォルトの名無しさん (JP 0Hdf-lo0V)
2019/03/02(土) 19:30:50.79ID:6n8BrDHBH With ワークシート
.の機能ってのは
.の機能一般のことでしかないだろ
.の特定の機能を想定して話をしてるんじゃない
.の機能を使えば事足りる処理をわざわざVBAのスクラッチでやろうとするのは車輪の再発明の極みだという話
End With
.の機能ってのは
.の機能一般のことでしかないだろ
.の特定の機能を想定して話をしてるんじゃない
.の機能を使えば事足りる処理をわざわざVBAのスクラッチでやろうとするのは車輪の再発明の極みだという話
End With
602デフォルトの名無しさん (ワッチョイ bf8c-9NtP)
2019/03/02(土) 20:23:41.79ID:VydunwR60 ワークシートの機能って単独のワークシート関数で実現できることなの?
それをVBAでやるのは確かに馬鹿らしい。
そうじゃないならVBAのほうがいいな。
それをVBAでやるのは確かに馬鹿らしい。
そうじゃないならVBAのほうがいいな。
603デフォルトの名無しさん (ワッチョイ 9f2f-nxCI)
2019/03/03(日) 01:17:47.50ID:5kU0Dorz0 >599
だからワークシートの機能一般ってなんのことを言ってるの?
セルの計算式?
計算式用のワークシート関数?
Application.WorksheetFunction?
だからワークシートの機能一般ってなんのことを言ってるの?
セルの計算式?
計算式用のワークシート関数?
Application.WorksheetFunction?
604デフォルトの名無しさん (ワッチョイ f7b0-VAd9)
2019/03/03(日) 03:16:39.28ID:1gVEOeax0 VBA以外のExcelで出来ること全てだろ
理解力低過ぎないか?
理解力低過ぎないか?
605デフォルトの名無しさん (ワッチョイ bf68-W5e4)
2019/03/03(日) 11:57:08.93ID:XBWTxj+a0 なんでVBAを外すのか分からない
このスレにいる連中ならワークシートにはイベントも含まれるという感覚の方が普通でしょ
このスレにいる連中ならワークシートにはイベントも含まれるという感覚の方が普通でしょ
606デフォルトの名無しさん (ワッチョイ ffda-3oSp)
2019/03/03(日) 12:44:05.38ID:87SKey7q0 シートを方眼紙だと思っている人の視点での機能一般だろう。
ここの人たちは、クラスモジュールの1つくらいの感覚かもしれんが。
ここの人たちは、クラスモジュールの1つくらいの感覚かもしれんが。
607デフォルトの名無しさん (ワッチョイ 377c-vuRV)
2019/03/03(日) 14:18:18.29ID:ilhG1tLW0 そこはかとなく臭うというか湧き出るダサさが嫌い
608デフォルトの名無しさん (アウアウウー Sa9b-fNI3)
2019/03/03(日) 18:57:15.36ID:dGd12yAna EXCELの全ての機能のうちVBAを除いた残りってことじゃね
609デフォルトの名無しさん (アークセー Sx0b-yUTo)
2019/03/03(日) 19:26:33.74ID:2dKZwCIHx エクセルのオブジェクトモデルでメソッドが提供されてるような機能をわざわざVBAでスクラッチするなって意味もあるんじゃね
ListObjectオブジェクト(テーブル)の存在や機能を知らずに、同一列内のセル数式ほコピーの機能を自作するような話だろ
ListObjectオブジェクト(テーブル)の存在や機能を知らずに、同一列内のセル数式ほコピーの機能を自作するような話だろ
610デフォルトの名無しさん (ブーイモ MM3b-hSmr)
2019/03/03(日) 20:55:07.59ID:C10iXUczM 初心者です。わかる方いましたらお教えください。
IE.Visible = False
として、
IE.Quitが何らかの理由で実行されなかったり、それを書かなかった場合
どうなってしまうんでしょうか…?
バックグラウンドでずっとフワフワといるんでしょうか?
見方もよくわからないタスクマネージャーで見てみるとアプリケーションとしてはたぶん起動されていませんでした…
IE.Visible = Falseとした場合はもしかして特に閉じる指示が必要ないのでしょうか…?
IE.Visible = False
として、
IE.Quitが何らかの理由で実行されなかったり、それを書かなかった場合
どうなってしまうんでしょうか…?
バックグラウンドでずっとフワフワといるんでしょうか?
見方もよくわからないタスクマネージャーで見てみるとアプリケーションとしてはたぶん起動されていませんでした…
IE.Visible = Falseとした場合はもしかして特に閉じる指示が必要ないのでしょうか…?
611デフォルトの名無しさん (ワッチョイ f7ce-uydA)
2019/03/03(日) 21:00:52.17ID:sl8Y8jOC0 >>610
バックグラウンドでずっと動き続ける、が正解
ちゃんと起動してないのはコードがおかしいかタスクマネージャの見方がおかしい
そこをTrueに変えるだけでちゃんとIEのウィンドウが表示されるか確認
バックグラウンドでずっと動き続ける、が正解
ちゃんと起動してないのはコードがおかしいかタスクマネージャの見方がおかしい
そこをTrueに変えるだけでちゃんとIEのウィンドウが表示されるか確認
612デフォルトの名無しさん (ブーイモ MM3b-hSmr)
2019/03/03(日) 21:44:32.70ID:C10iXUczM613デフォルトの名無しさん (ワッチョイ 3791-IK5z)
2019/03/04(月) 09:46:01.18ID:TvaJY4yu0 関数使うかVBA使うかも内容で決める。
関数だと物凄く重くなることがある。
Sumproductとかを多用した場合とか、複数シートの集計を1日の集計としてさらに1ヶ月分の集計するとか。
自動計算を切れば良いんだけど、運用で微妙だね。
それに昔、銀行の仕事で大量のデ―タとSumproductのせいで1回の計算でさえいつまでたっても終わらないことがあった。
その時はVBAに書いたら5秒で終わった。
関数だと物凄く重くなることがある。
Sumproductとかを多用した場合とか、複数シートの集計を1日の集計としてさらに1ヶ月分の集計するとか。
自動計算を切れば良いんだけど、運用で微妙だね。
それに昔、銀行の仕事で大量のデ―タとSumproductのせいで1回の計算でさえいつまでたっても終わらないことがあった。
その時はVBAに書いたら5秒で終わった。
614デフォルトの名無しさん (ブーイモ MM1b-9NtP)
2019/03/04(月) 10:53:05.90ID:RuY9YBtCM ワークシート関数を関数と表現するのってUSBメモリをUSBと呼ぶのと同様にアレな感じ
615デフォルトの名無しさん (ワッチョイ 178e-4jKm)
2019/03/04(月) 10:55:32.34ID:TFGUk6BN0 その違和感を持てる知識がない頭が残念な人なんだろ
616デフォルトの名無しさん (JP 0H4f-j5yB)
2019/03/04(月) 11:15:22.83ID:gwy/L6iPH WorksheetFunctionプロパティで呼ぶもの(sumとかvlookupとか)がワークシート関数
VBAでしか使えないもの(CIntとかInstrとか)がVBA関数
上記と自作関数をまとめて関数
VBAでしか使えないもの(CIntとかInstrとか)がVBA関数
上記と自作関数をまとめて関数
617デフォルトの名無しさん (ワッチョイ bf68-W5e4)
2019/03/04(月) 11:25:35.49ID:vFn2j9Kt0 >VBA関数
標準関数だろう
エクセルの場合はVBA標準関数とでも言うべきか
>自作関数
ユーザー定義関数という名称がある
まぁ俺は関数としか呼ばんけどな、ハハハ
vbaでワークシート関数使う時はそう呼ぶ
標準関数だろう
エクセルの場合はVBA標準関数とでも言うべきか
>自作関数
ユーザー定義関数という名称がある
まぁ俺は関数としか呼ばんけどな、ハハハ
vbaでワークシート関数使う時はそう呼ぶ
618デフォルトの名無しさん (JP 0H4f-j5yB)
2019/03/04(月) 11:45:46.92ID:gwy/L6iPH619デフォルトの名無しさん (ワッチョイ 3791-IK5z)
2019/03/04(月) 14:30:16.31ID:TvaJY4yu0 関数とVBAと対比させてるのに勘違いする奴がいるとはとても思えないが。
いたらそいつはアホだよ。
いたらそいつはアホだよ。
620デフォルトの名無しさん (ワッチョイ 178e-4jKm)
2019/03/04(月) 14:32:37.46ID:TFGUk6BN0 >>619
馬鹿が恥の上塗りに来ましたよ、と
馬鹿が恥の上塗りに来ましたよ、と
621デフォルトの名無しさん (ワッチョイ 3791-IK5z)
2019/03/04(月) 14:57:43.98ID:TvaJY4yu0 >>620
あらら、アホが恥の上塗りに来たよw
あらら、アホが恥の上塗りに来たよw
622デフォルトの名無しさん (ワッチョイ bf68-W5e4)
2019/03/04(月) 15:02:35.15ID:vFn2j9Kt0 vbaだし何でもええやろ
どうせ大事に至ることはない、争う程の事ではない
どうせ大事に至ることはない、争う程の事ではない
623デフォルトの名無しさん (ワッチョイ 178e-4jKm)
2019/03/04(月) 15:28:20.01ID:TFGUk6BN0624デフォルトの名無しさん (ブーイモ MM1b-9NtP)
2019/03/04(月) 16:20:08.03ID:RuY9YBtCM 「文脈上USBメモリのことであるとわかるときはUSBでいい」
「そもそもそんな呼び方普段からするなよ」
「そもそもそんな呼び方普段からするなよ」
625デフォルトの名無しさん (アウアウクー MM0b-VAd9)
2019/03/04(月) 18:20:48.65ID:FDpjfwBmM わかるかどうか判断するのは読み手側だからな
書く側が勝手に略すのは読ませる気がないんだろう
書く側が勝手に略すのは読ませる気がないんだろう
626デフォルトの名無しさん (ワッチョイ 37e6-W5e4)
2019/03/04(月) 23:23:23.24ID:dF1M3atd0 そういえばCD-ROM2をロムって呼んでたやついたな
これSUPER CD-ROM2だから
これSUPER CD-ROM2だから
627デフォルトの名無しさん (ワッチョイ 178e-XA5H)
2019/03/05(火) 00:24:00.61ID:YDI1bFmR0 ID:TvaJY4yu0みたいな馬鹿がメンテできなくなるVBAを作る
628デフォルトの名無しさん (ワッチョイ bf68-W5e4)
2019/03/05(火) 00:37:29.46ID:yUBkGE+g0629デフォルトの名無しさん (アウアウエー Sadf-vuRV)
2019/03/05(火) 03:34:27.88ID:VDry4yCPa 馬鹿には無理
630デフォルトの名無しさん (ワッチョイ d709-nvQ/)
2019/03/05(火) 05:56:45.90ID:pou1Iepn0 >>628
見てきたけど、なんかすげえめんどくさそう。出来ることも見新しいことってほとんどないじゃん
普通のWin32APIとかやったことあるのか。そっち勉強した方が遥かにまし。 VBAでもやれるから
見てきたけど、なんかすげえめんどくさそう。出来ることも見新しいことってほとんどないじゃん
普通のWin32APIとかやったことあるのか。そっち勉強した方が遥かにまし。 VBAでもやれるから
631デフォルトの名無しさん (アウアウエー Sadf-hSmr)
2019/03/05(火) 07:48:42.24ID:VSxyPtP8a いやMacとかOffice Onlineで使えることに意味があるんだろ
まあOffice Online使うくらいならGSuite使うという企業が殆どだろうけどw
まあOffice Online使うくらいならGSuite使うという企業が殆どだろうけどw
632デフォルトの名無しさん (ワッチョイ bf68-W5e4)
2019/03/05(火) 08:12:27.21ID:yUBkGE+g0 >>628
はこういう事だった
誰も使ってないのね
https://qiita.com/y__na_ka_ya_ma/items/2575e79248978ff7828d
>>629
自己紹介乙
>>630-631
もちろんやれることは同じ
jsで書ける事自体がメリット
googleSpreadsheetのマクロを移植する時に使える
一生に一回もないと思うけどな
はこういう事だった
誰も使ってないのね
https://qiita.com/y__na_ka_ya_ma/items/2575e79248978ff7828d
>>629
自己紹介乙
>>630-631
もちろんやれることは同じ
jsで書ける事自体がメリット
googleSpreadsheetのマクロを移植する時に使える
一生に一回もないと思うけどな
633デフォルトの名無しさん (アークセー Sx0b-yUTo)
2019/03/05(火) 08:56:53.06ID:K5flI6jox Win32APIとOffice JavaScriptAPIどっちを勧めるかと聞かれたら今なら後者かな
後者の案件あるのか知らんが
後者の案件あるのか知らんが
634デフォルトの名無しさん (アウアウウー Sa9b-zhdC)
2019/03/05(火) 12:20:11.68ID:IGhfqt8ja そもそも全くの別物を比較してどうすんねん
635デフォルトの名無しさん (エムゾネ FFbf-IK5z)
2019/03/05(火) 12:44:55.98ID:bZMGULjeF636デフォルトの名無しさん (エムゾネ FFbf-IK5z)
2019/03/05(火) 12:47:21.71ID:bZMGULjeF637デフォルトの名無しさん (エムゾネ FFbf-IK5z)
2019/03/05(火) 12:51:32.81ID:bZMGULjeF638デフォルトの名無しさん (ワッチョイ bf68-W5e4)
2019/03/05(火) 13:01:00.32ID:yUBkGE+g0639デフォルトの名無しさん (ワッチョイ 178e-4jKm)
2019/03/05(火) 13:14:26.63ID:YDI1bFmR0 ID:bZMGULjeF
マジモンのアスペルガーのキチガイ
マジモンのアスペルガーのキチガイ
640デフォルトの名無しさん (ワッチョイ bf68-W5e4)
2019/03/05(火) 13:18:51.34ID:yUBkGE+g0 jsアドインもう少しぐらい使われてるのかと思ったけど、
誰も使ってないようで安心した
誰も使ってないようで安心した
641デフォルトの名無しさん (ワッチョイ 377c-nl/e)
2019/03/05(火) 13:32:20.37ID:YOwkwz810 Excel Python API とかも Excel.js Office.js とかと同じ扱いになる悪寒
642デフォルトの名無しさん (ワッチョイ bf68-W5e4)
2019/03/05(火) 13:36:30.59ID:yUBkGE+g0643デフォルトの名無しさん (ワッチョイ 3791-IK5z)
2019/03/05(火) 20:23:23.29ID:ruLmgCaM0644デフォルトの名無しさん (ワッチョイ 3791-IK5z)
2019/03/05(火) 20:34:12.08ID:ruLmgCaM0645デフォルトの名無しさん (ワッチョイ bf68-W5e4)
2019/03/05(火) 20:39:11.81ID:yUBkGE+g0 逆引き系辞典はネットあると本当に使わない
646デフォルトの名無しさん (ワッチョイ ff2c-hSmr)
2019/03/05(火) 21:11:49.71ID:WmyrgrGT0 会社で異動になった人が作ったマクロの稀に出るバグを直そうと頑張っています。
ちょっと怪しいかなと思ったプロシージャがあるので見にくく長いと思うのですが見て頂けませんか?
勉強しながらの初心者です。
Sub wait(IE As InternetExplorer)
Const リトライ = 2
Dim IEDOC As HTMLDocument
Dim ReCount As Long,i As Long
Do
«略»
Set IEDOC = IE.Document
«略»
Loop While IEDOC Is Nothing
If IEDOC.frames.Length < リトライ Then
ReCount = リトライ
Else
ReCount = IEDOC.frames.Length
End If
For i = 0 To ReCount
Do While IE.Busy Or IE.readyState <> READYSTATE_COMPLETE
DoEvents
Loop
Next
End Sub
このあとすぐに書き込みに参ります
ちょっと怪しいかなと思ったプロシージャがあるので見にくく長いと思うのですが見て頂けませんか?
勉強しながらの初心者です。
Sub wait(IE As InternetExplorer)
Const リトライ = 2
Dim IEDOC As HTMLDocument
Dim ReCount As Long,i As Long
Do
«略»
Set IEDOC = IE.Document
«略»
Loop While IEDOC Is Nothing
If IEDOC.frames.Length < リトライ Then
ReCount = リトライ
Else
ReCount = IEDOC.frames.Length
End If
For i = 0 To ReCount
Do While IE.Busy Or IE.readyState <> READYSTATE_COMPLETE
DoEvents
Loop
Next
End Sub
このあとすぐに書き込みに参ります
647デフォルトの名無しさん (ワッチョイ ff2c-hSmr)
2019/03/05(火) 21:26:50.63ID:WmyrgrGT0 オレンジの部分がIE.Busy = Trueという風に教科書通りになっていないのですがこれで大丈夫なのでしょうか
上手いことちゃんとなっているか調べようとやってみましたが私には難しかったです
そして水色の部分なのですが、フレーム数を取得してその数だけ念の為回しておくという感じでしょうか
フレームがいくつかあると取得のたびにIE.BusyがTrue,Falseに切り替わると聞いたのでそのためで合っていますか
それよりもさっき調べて出てきた
'完全にドキュメントが読み込まれるまで待機する
Do Until IE.document.ReadyState = "complete"
DoEvents
Loop
ではダメなのでしょうか、別物でしょうか
ざっとみておかしい部分はありますか?
図々しくすみません
https://i.imgur.com/DQxGNB5.jpg
上手いことちゃんとなっているか調べようとやってみましたが私には難しかったです
そして水色の部分なのですが、フレーム数を取得してその数だけ念の為回しておくという感じでしょうか
フレームがいくつかあると取得のたびにIE.BusyがTrue,Falseに切り替わると聞いたのでそのためで合っていますか
それよりもさっき調べて出てきた
'完全にドキュメントが読み込まれるまで待機する
Do Until IE.document.ReadyState = "complete"
DoEvents
Loop
ではダメなのでしょうか、別物でしょうか
ざっとみておかしい部分はありますか?
図々しくすみません
https://i.imgur.com/DQxGNB5.jpg
648デフォルトの名無しさん (ワッチョイ ff2c-hSmr)
2019/03/05(火) 21:32:38.87ID:WmyrgrGT0 どういうマクロかと言うと、IEを開いてリンクボタンをいくつか押して文字を引っ張ってきてIEを閉じるというのを何度か繰り返すものです。
リンク先を正しく閉じられていないまま次の回転に入っていることが稀にあるのです
リンク先を正しく閉じられていないまま次の回転に入っていることが稀にあるのです
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 【悲報】日本人「日本が中国と戦争になったら世界中の国が応援してくれるぞ!」 [616817505]
- 小野田経済安保相「すぐに経済的威圧するところへの依存はリスク」😲 [861717324]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 【ほんこん悲報】吉本新喜劇の中国公演が中止に! [523957489]
