17/08/17 23:29:45.34 Fn2cTqwk0.net
ふだんプログラミングはExcelのVBAがほとんどでこれならかなり本格的なこともできるスキルがあります。
ところでJavascriptに興味を持ちメモ帳でJavascriptをはじめました。
これでExcelVBAのようにコード書くときにインテリセンスで入力補助ができるツールってないんですか?
メモ帳だから当然そんなのできません。
Javascriptの入門書はいつくか読んでますがExcelVBAのようなインテリセンスが使える開発環境のことには全くふれていません。
815:デフォルトの名無しさん
17/08/18 00:33:09.65 SqU1frnT0.net
JavaScriptスレでどうぞ
816:デフォルトの名無しさん
17/08/18 00:52:10.12 fGYkVGPpr.net
ふつーにVSでいいんじゃね?
817:デフォルトの名無しさん
17/08/18 02:47:26.07 2Rkfa1Rx0.net
うむ
818:デフォルトの名無しさん
17/08/18 06:08:15.32 Pl3jF8BM0.net
フリーのテキストエディタなんて腐るほど調べりゃ出てくるだろ
819:デフォルトの名無しさん
17/08/18 06:32:04.53 fGYkVGPpr.net
>>805
インテリセンスはどうすんの?
820:801
17/08/18 06:47:56.97 r9Ad8ntQ0.net
>>802
いや、ここに居座る。
>>803
VSってVisual Studioですかね?かなり本格的なツールと思いますが
Javascriptでインテリセンスだけできたらいいのですがシンプルなツールはないものでしょうか?
というよりJavascriptやってる人の使用ツールの使用率みたいな円グラフはないでしょうか?
あとExcelVBAでよくやるブレークポイントを使ってF8のコマ送りや実行途中で変数の値を見るのって
Javascriptで使うツールでもできるんですかね?
821:デフォルトの名無しさん
17/08/18 06:56:08.49 uergmdKS0.net
回答率が低い方で聞くのは時間の無駄では?
NGにするから何でもいいけど
822:デフォルトの名無しさん
17/08/18 07:07:24.51 k8zOSHbua.net
>>806
javascriptサポートしてるやつは出てくるんじゃねえの?
使ったことないけど
出ないならvsとか使えばいいじゃん
823:デフォルトの名無しさん
17/08/18 07:14:13.91 r9Ad8ntQ0.net
なんだよ、ここじゃ教えてくれないのです?
824:デフォルトの名無しさん
17/08/18 07:15:23.14 r9Ad8ntQ0.net
/ ̄ ̄ ̄ ̄ ̄\
/ \
/ ヽ
/ ̄\ l \,, ,,/ | そりゃないよ
,┤ ト | (●) (●) | かあちゃん!
| \_/ ヽ \___/ |
| __( ̄ | \/ ノ
ヽ___) ノ
825:デフォルトの名無しさん
17/08/18 07:17:18.70 r9Ad8ntQ0.net
>>809
VSは会社で気軽にインストールできないじゃん
826:デフォルトの名無しさん
17/08/18 07:28:46.83 sIEj8B6D0.net
必要なら出来るだろ
827:デフォルトの名無しさん
17/08/18 07:30:00.10 k8zOSHbua.net
TR取れないくんはgetElementByTagName("TR")は試したのかよ
828:デフォルトの名無しさん
17/08/18 07:36:13.08 fGYkVGPpr.net
>>812
そこなんだよ、問題は。
じゃ、テキストエディタは気軽にインスコできるのかっつーと、インテリセンス実現するためには、やれプラグインだなんだって追加する必要が出てくる。
ソフトのインストール申請は1回で済ませたいよね。
となると、なんだかんだでVSが最良の選択肢になる。
配布元がMSなのも安心だし。
HTMLやCSSも入力補完できるからね。
入れておくとめちゃ便利でっせ、旦那。
829:デフォルトの名無しさん
17/08/18 08:07:29.86 k8zOSHbua.net
TeraPadは便利そうだけどvbscriptが標準でサポートされてないのがつらい
830:デフォルトの名無しさん
17/08/18 08:21:16.51 6b7crCYjx.net
Notepad++とか軽くていいぞ
申請通りやすいかどうかは分からんが
831:デフォルトの名無しさん
17/08/18 08:32:10.11 MkY1nhvU0.net
TeraPad は、サロゲートペア(4バイト文字)のような、
ユニコードに新しく採用された漢字は、? に変換されてしまう
中国の「深圳」みたいな漢字
832:デフォルトの名無しさん
17/08/18 08:34:34.23 Jk1oT0GC0.net
スレタイも読めない馬鹿はスルーで
833:デフォルトの名無しさん
17/08/18 09:27:19.77 r9Ad8ntQ0.net
>>819
こんな掲示板のルールは守る必要がない。
そもそも20年くらい前のインターネット創始期にリアル世界からバーチャル世界への人々の続々の初参加で
みんなが気軽に参加さえできればどこでもいい掲示板がたまたまここだっただけで
まるで自分のアイデアで発明して作り上げた掲示板と勘違いした管理人が有名になったことも利用して年収数億円にもなった
そんなずるいアホの作ったルールを守る必要あるか?
834:デフォルトの名無しさん
17/08/18 09:32:23.59 vyx+pdak0.net
IDEがダメならVSCにすりゃ良いだろ
デバッグ機能使えるし、エディタ扱いだから軽い
835:デフォルトの名無しさん
17/08/18 09:37:07.95 r9Ad8ntQ0.net
>>821
それはあちらのスレでもだれかが言ってたvisual studio codeですか。
評判よさそうなので使ってみます。
836:デフォルトの名無しさん
17/08/18 09:39:00.89 r9Ad8ntQ0.net
あと最重要なことを忘れていた。
Excel VBAのF2で呼び出せるオブジェクトブラウザは上級者ならこの便利さは涙ものだと思うけど
これに相当するものはJavascriptでも使えるんですよね?
たいていのツールならJavascriptでのオブジェクトブラウザは見れる仕様になってるの?
837:デフォルトの名無しさん
17/08/18 09:39:54.13 AHP5pPkPp.net
visual studio codeはフリーで商用利用も可能だったはず
838:デフォルトの名無しさん
17/08/18 11:46:40.85 Jk1oT0GC0.net
>>820
ルール無用な俺格好いい!w
839:デフォルトの名無しさん
17/08/18 11:49:00.60 4NPjN4uFd.net
VSCかー、使ってみようかな
今までVSとVBEでしかプログラム書いたことないや
840:デフォルトの名無しさん
17/08/18 11:56:09.72 WOYUy8950.net
>>820
>まるで自分のアイデアで発明して作り上げた掲示板と勘違いした管理人
何かの著書で、自分のオリジナルじゃないと言い切ってたけど。
841:デフォルトの名無しさん
17/08/18 11:58:21.04 pqZlgJQex.net
>>820
ヒュー
スゲー承認します。
が提案は却下でーーす
842:デフォルトの名無しさん
17/08/18 12:26:45.40 fGYkVGPpr.net
>>820
> こんな掲示板のルールは守る必要がない。
相手してくれる人がいるんならそれでいいんじゃね。
相手したくないやつはスルーするだろうし。
843:デフォルトの名無しさん
17/08/18 12:44:31.00 r9Ad8ntQ0.net
しかもそいつはYoutube動画のすべてのサムネイルで
自分のカバみたいなデカい顔を恥ずかしげもなくデカデカとのせてる。
URLリンク(www.youtube.com)
これが許させるのはイケメンだけではないか?
勘違いもはなはだしい。
844:デフォルトの名無しさん
17/08/18 12:57:32.20 r9Ad8ntQ0.net
動画の内容も幼稚。
こんな低レベルのことしか考えれないのにしゃべるな!というレベル。
例えばプログラミングついての動画見てよ。
URLリンク(www.youtube.com)
コピペが最良とか言ってて、こんなんやってたら共同作業でプログラングやってたらめちゃめちゃになる。
このレベルじゃデザインパターンとかリファクタリングのことを全く知らないしろうとだとわかる。
この人さっぱりプログラミングできないのは明らか。
言語の見解としてCOBOLはやる人がいないからチャンスかも、というのもそれは違うだろ。
845:デフォルトの名無しさん
17/08/18 13:20:37.36 SqU1frnT0.net
はいはいかっこいい
846:デフォルトの名無しさん
17/08/18 13:55:05.43 HoFsfG3Ua.net
>>831
まあ、どうでも良いんだがjavascriptは詳しくないからなあ。
有用な回答が得られるかっていうと知らんということでjavascriptのスレよりは難しいんじゃないか?
ところでググることぐらいはしてるんだろうね。
OmniSharpが使えるエディタならなんでもいけるかも。
あと、マイナーかもしれんがScite4がいけるかも。
AutoItで使ってるからjavascriptはどの程度使えるかは分からんが。
847:デフォルトの名無しさん
17/08/18 14:04:26.04 HoFsfG3Ua.net
>>814
うん、DOMの構造を調べて求めるデータがgetElementsByTagname("TR")の何番目なのかや、実際にはその子どもや孫の可能性もあるからその何番目かっていうのを簡易ツールで調べて欲しいんだがね。
テーブルの場合、連続した番号にならないことも多いから何個飛ばしかが分かれば取ってこれると思うんだけど。
848:デフォルトの名無しさん
17/08/18 15:07:33.11 pqZlgJQex.net
>>831
スゲー承認します
849:デフォルトの名無しさん
17/08/18 17:40:24.80 AdXlT0dS0.net
TR取れない君です
>>790に書いてますが取得は出来てます
3サイト程試したので理解は出来ているかと思います
昨日はcellに出力まで出来ました。
Set colTable = htmlDoc.getElementsByName("oppai")
Dim el As IHTMLElement
For Each el In colTable
Set colTH = el.getElementsByTagName("th")
Set colTD = el.getElementsByTagName("td")
i = 2
Cells(i, "B") = colTD(2).innerText
Cells(i, "C") = colTD(3).innerText
Cells(i, "D") = colTD(4).innerText
Next el
後はA列に記載のURLから順に情報を取得して上のcellに格納していくのと
MSXML2.XMLHTTPやMSHTML.HTMLDocument化です
A列に記載のURL(B2からB101)から順に情報を取得して上のcellに格納の
具体的なコードを教えて頂けないでしょうか
850:デフォルトの名無しさん
17/08/18 17:41:43.48 AdXlT0dS0.net
A2からA101の間違いです
851:デフォルトの名無しさん
17/08/18 17:55:29.64 MkY1nhvU0.net
>>798
1つのドメインにつき、1日1回までにしておかないと、業務妨害で逮捕されるぞ。
同じサイトへ、しつこくアクセスするなよ
普通のサイトは、ツールでのアクセスは認めていないから
robots.txt に、検索エンジンのクローラー(ロボット)に対する、命令が書いてあって、
それに従わないアクセスは、業務妨害で逮捕される
852:デフォルトの名無しさん
17/08/18 20:31:07.04 AdXlT0dS0.net
>>838
えっ1日に2回サイトにアクセスすると逮捕って日本の法律?
じゃあスクリプト組んで商品買ってるやつみんな逮捕されてんの
コードの書き方書いてるやつやソフト屋も幇助で逮捕されてるんだ
ちなみに取りに行くの海外サイトなんだけど同じなの?
国際指名手配とかになると困るんだけど
853:デフォルトの名無しさん
17/08/18 20:35:27.71 50s8GsCc0.net
岡崎図書館アクセス事件か
854:デフォルトの名無しさん
17/08/18 20:42:49.44 uergmdKS0.net
>>839
大丈夫だよ
>>838はちょっと頭がおかしいだけ
855:デフォルトの名無しさん
17/08/18 23:15:13.61 b4AgNHol0.net
>>840
> 岡崎図書館アクセス事件か
wikiを見てみると、1秒に1アクセスは「常識的で礼儀正しい」って世間の認識のようだね
男性の作成したクローラの動作
このクローラは、同時には一回しかリクエストを送らず、受信後に間隔をおいてから次のリクエストを送信していた
(1秒に1アクセス程度に調整)。これはクローラの動作としては「常識的」「礼儀正しい」程度のものであり、
応答を待たずに過大なアクセスを行うことで高負荷にさせる攻撃用のプログラムと異なる動作であった。
男性の業務妨害の強い意図が認められないとして起訴猶予処分となった
856:デフォルトの名無しさん
17/08/18 23:45:49.18 tsIqQuRu0.net
>>798
1日に500URLの取得が場合によってはサーバーの稼働を妨害していると見られる場合があるので
注意したほうがいいぞ、2回目で通報はないだろうけどな
857:デフォルトの名無しさん
17/08/19 00:40:39.77 vs90uVQG0.net
>>841 >>843
OKです
例えばですが同一サイトの目的の個別ページに100アクセスするのと
1アクセスになるのかわからないけど根こそぎリンクたどっていくのとどっちがいいのでしょうか
前者のやり方はググっても同じやり方の参考になるサイトがなくてコードを希望しました
後者なら似た感じのがあったので自分でも作れそうです
欲しい情報のほとんどが各ページ10字程度のTD1ケ所だけです
素人考えで該当のページから必要な部分だけ抜いたほうがいいのかなって思ったんですがどっちがいいのでしょうか
858:デフォルトの名無しさん
17/08/19 04:41:34.88 lWDfsp6Na.net
サーバーの性能、サイトやデータの構成、取得の目的とか書かないの?
859:デフォルトの名無しさん
17/08/19 08:16:52.16 y9n8lCwp0.net
転売ヤーかなんかか?こいつ
860:デフォルトの名無しさん
17/08/19 09:53:56.58 OPyAj3On0.net
必要な情報は提供せず、こちらが知りたいことだけ教えろ!
これがこのスレの質問者のデフォ
861:デフォルトの名無しさん
17/08/19 10:50:30.19 4AkL572wa.net
>>847
教えても例もしないゴ�
862:~クズが多すぎるな 特に「具体的なコード教えて」君は人としてのレベルの低さがすけて見えて気持ちが悪いわ
863:デフォルトの名無しさん
17/08/19 12:32:35.39 9KU7ntuJ0.net
岡崎図書館事件では、逮捕されている。
第三者機関である裁判所から、逮捕状も取れている
裁判所だから、警察などの行政執行機関じゃなくて、司法の判断で、ほぼ有罪になる。
単に、起訴猶予処分にしたというだけ
1秒に1回なら、アクセスしても無罪というのは、
無罪になるために、こういうのが常識ですよって広めただけで、
実際には、逮捕状も取れている
robots.txt に従っていないと、相手のサイトが訴えるのは自由だから、
各社の検索エンジンは、1日1回しかアクセスしない
864:デフォルトの名無しさん
17/08/19 12:34:28.91 qVAbDdKi0.net
>>849
オンラインゲームでチート反対って言ってる人?
865:デフォルトの名無しさん
17/08/19 13:55:26.61 8yrvVjZy0.net
詳細を知れば作り方によって回避できるのではないか
URLリンク(ja.wikipedia.org)
866:デフォルトの名無しさん
17/08/19 13:55:32.82 stRE+6ELa.net
>>836
そこまで分かってて何で組めんの?
基本的な問題で躓いてるみたい。
君はどういう方針で組んでるの?
普通はそういうサンプル組めたらURLを変数に置き換えて、指定のURLを引数にして4つのデータを取得するプロシージャ作ると思うんだが。
Function Get4Data(strURL As String) As String()
Dim strData() String
.
.
.
Get4Data=strData
End Function
Sub MainProc()
Dim strData() As String
Dim i As Long
Dim j As Long
For i=2 To 102
strData=Get4Data(Cells(i,1).Value)
For j=0 To 2
Cells(i,j+2).Value=strData(j)
Next j
Next i
End Sub
4つのデータに意味を意識するならユーザー定義型を返すプロシージャにしてメインでは配列の利点を使わない。(jを使わない)
この辺は趣味の問題だと思うけど。
なお、スマホから打ってるからコードには間違いが有るかも。
867:デフォルトの名無しさん
17/08/19 13:57:02.56 9KU7ntuJ0.net
別に反対とは言わないけど、
相手のサイトが、業務妨害で訴えるのは自由だから、逮捕されるよってだけ
コンビニのアイスクリームのケースに入って、写真を撮っただけで逮捕されてる
被害額は、0円なのにw
気持ち悪くて、客に出せないから、アイスクリームを全部捨てましたって
相手は、何とでもできる。
無傷でも、被害額を請求できる
868:デフォルトの名無しさん
17/08/19 14:07:36.79 8yrvVjZy0.net
>>853
なぜ脅したがるのか知らんがクローラーでなければ問題ないし
先にrobot.txtの内容を見る処理書けばいいだけだから
869:デフォルトの名無しさん
17/08/19 14:16:21.11 stRE+6ELa.net
岡崎図書館の場合は図書館側に問題があって、プログラムでアクセスした時にそれが顕在化したということだったと思うが。
ただし、プログラムでのアクセスはサーバーをダウンさせることもあり得るわけでそれはアクセスの程度問題であるということ、過度なアクセスはサーバー側にとっては迷惑であるということ、不正アクセス防止法は意図しなくても問えるということは、留意する必要があるだろう。
要は無断でのアクセスは迷惑になるから気をつけてってこと。
そういう意識があって、でもそれほどアクセスが有るわけじゃ無いから連絡はしなくても良いだろうという判断ならそれもありじゃないかとも思う。
これが全く気にもせず、人のことはどうでも良いと考える人ならもう教えないし、プログラム組むのも辞めた方が良いと思う。
そういう人のプログラムって動けばOKの独りよがりプログラムになって周りが迷惑になりがちだから。
870:デフォルトの名無しさん
17/08/19 14:25:11.26 8yrvVjZy0.net
そのためのrobot.txtだし
871:デフォルトの名無しさん
17/08/19 14:25:27.42 8yrvVjZy0.net
s
872:デフォルトの名無しさん
17/08/19 14:33:28.32 stRE+6ELa.net
仕事でWebから情報取って来るプログラムを作ったときは客にその旨を説明し、先方には実際のプログラムのソースコードと一緒にどういう手順でアクセスするかの説明を提示して貰った。
先方と言っても会社は違うけど客の会社の関連会社で情報取って来るプログラムもその会社関連の仕事の中の一部だったわけだけど。
先方が承諾することは分かってたけど一応報告すべきってことで。
>>839
そういうわけで手順を踏んで許可を取れば問題ないから幇助には当たらない。
873:デフォルトの名無しさん
17/08/19 15:26:44.64 s/7RraD70.net
無断でのアクセスって何のことだろう?
874:デフォルトの名無しさん
17/08/19 15:56:14.31 qGabhzqpH.net
全部MDISのせい
Librahack氏はMDISに慰謝料を請求してもいいレベルだと思うね
875:デフォルトの名無しさん
17/08/19 16:13:25.46 YttHcr520.net
同じコードで実行してもできる時と反応がない時とあるんだけどなんで?
876:デフォルトの名無しさん
17/08/19 16:51:19.94 8l5l37FKr.net
>>861
必要な情報は提供せず、こちらが知りたいことだけ教えろ!
これがこのスレの質問者のデフォ
らしいですよ。
877:デフォルトの名無しさん
17/08/19 18:01:00.40 s/7RraD70.net
もうすぐ停電が起こる
878:デフォルトの名無しさん
17/08/19 18:37:05.55 lbryh9n10.net
>>849
> 1秒に1回なら、アクセスしても無罪というのは、
> 無罪になるために、こういうのが常識ですよって広めただけで、
> 実際には、逮捕状も取れている
不起訴になってるじゃん
前例ができたから、今後は逮捕されることもないでしょ
879:デフォルトの名無しさん
17/08/19 18:47:22.47 qVAbDdKi0.net
岡崎図書館不起訴になったのか
じゃあ問題無しだな。一時間に一回ぐらいのクロールなら余裕だろう
880:デフォルトの名無しさん
17/08/19 22:27:39.50 vZgN9gzSa.net
>>861
その同じコードをさらせよって意味だよ
日本語わかるよな
881:デフォルトの名無しさん
17/08/19 22:32:40.39 +zJz2sC40.net
>>862
逆に言うと
その程度の脳みそだから教えてもらわないとわからないってことなんだろうな
低レベルな質問するやつほど
自分の環境言わなかったりコード提示しないイメージ
882:デフォルトの名無しさん
17/08/19 23:39:23.73 8yrvVjZy0.net
>>861
ネット関係ではよくあると思うが
883:デフォルトの名無しさん
17/08/20 05:28:39.28 C1zPHqEG0.net
>>853
> コンビニのアイスクリームのケースに入って、写真を撮っただけで逮捕されてる
> 被害額は、0円なのにw
そういう思考回路の時点で、お前も同じレベルのキチガイだ
884:デフォルトの名無しさん
17/08/20 08:32:07.00 1pFA1rOB0.net
被害額0円でも女子トイレに入っただけでも逮捕されることあるけどな
885:デフォルトの名無しさん
17/08/20 09:23:54.53 B8YXLqYv0.net
>>861
コードが間違ってるから
886:デフォルトの名無しさん
17/08/20 10:22:38.45 fQYf1WJRM.net
>>853
それが被害額ゼロ円だと思ってる時点でお察しだよ
887:デフォルトの名無しさん
17/08/20 11:34:29.55 xnxdM6Sy0.net
初心者ですいません。教えてほしいです。
シートが2枚あり、1枚目のシートの特定セルに「デリ」と入力後、
2枚目シートの特定セルにデリと入力されるのを作ってるのですが1枚目のC13のは反映されるのですが、C14以降が反映されません
ご教授お願いします
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim name As Variant
Dim linenm As Integer
For i = 13 To 52
If Intersect(Target, Cells(i, 3)) Is Nothing Then
Exit Sub
Else
'デリがもし記載されていれば
If Cells(i, 3).Value = "デリ" Then
'デリが記載の名前をnameに代入
name = Cells(i, 3).Offset(0, 1).Value
'ワークシート(シフト)で、nameに代入されている名前の行数を取得
linenm = Application.Match(name, Worksheets("シフト").Range("A1:A60"), 0)
Worksheets("シフト").Cells(linenm, 2).Value = "デリ"
End If
End If
Next i
End Sub
888:デフォルトの名無しさん
17/08/20 13:16:25.67 hXI6dDhp0.net
>>873
ここがおかしい
targetがcells(14,3)だとループから即抜けて終わる
For i = 13 To 52
If Intersect(Target, Cells(i, 3)) Is Nothing Then
Exit Sub
Else
以下のように書き換える
…
Dim linenm As Integer
'範囲外だったら終了
If Intersect(Target, range(Cells(13, 3),cells(52,3))) Is Nothing Then
Exit Sub
endif
'メイン処理
For i = 13 To 52
…
こうすれば何をしているかわかりやすいと思う
889:デフォルトの名無しさん
17/08/20 13:17:04.87 hXI6dDhp0.net
で、更に言うと、スコープの関係でWorksheet_Changeから別シートは触れ無くないか?
以下はエラーになる気がする
Worksheets("シフト").Cells(linenm, 2).Value = "デリ"
以下のようにすると動くと思う
'worksheet1
Private Sub Worksheet_Change(ByVal target As Range)
'無限ループを抑制する
Application.EnableEvents = False
'この時点で選別する
If Intersect(target, Cells(i, 3)) Is Nothing Then
Exit Function
Else
'標準モジュールに投げる
foo (target)
End If
Application.EnableEvents = True
End Sub
'標準モジュールの内容
Function foo(ByVal target As Range)
Dim i As Integer
Dim name As Variant
Dim linenm As Integer
'範囲外だったら終了
If Intersect(Target, range(Cells(13, 3),cells(52,3))) Is Nothing Then
Exit Sub
endif
'メイン処理
For i = 13 To 52
…
890:デフォルトの名無しさん
17/08/20 14:44:51.18 Qs6CySsIa.net
>>875
874理解しました。
なるほどです。
外出中なので検証できませんが、
changeイベントはシート1の値を対象で
イベントが発生すればifを実行
ifでシート1にデリが記載されていれば
シート2にデリを入力
というのは不可能なんでしょうか、、
帰ったらやってみます。
891:デフォルトの名無しさん
17/08/20 18:50:52.94 1pFA1rOB0.net
できるよね
Worksheets("シート2").Cells(linenm,2).Value = "デリ"
892:デフォルトの名無しさん
17/08/20 18:56:54.50 hXI6dDhp0.net
すまんかった、普通に間違えてたわ
893:デフォルトの名無しさん
17/08/20 22:03:48.69 xnxdM6Sy0.net
>>878
今戻って書き直したら正常に動作しました。
ありがとうございます。
別件の質問なんですが、
worksheet_changeは
セルの値を削除した際には対応していないのでしょうか。
うまくいかない・・。
894:デフォルトの名無しさん
17/08/20 22:23:57.13 4PP/aROC0.net
>>879
どう言う手順でセルを削除してるのか知らんが、ブレークポイント置いても止まらんのならそうなんだろ
削除の手順変えるか他のイベントを当たれ
895:デフォルトの名無しさん
17/08/20 22:27:23.10 hXI6dDhp0.net
>>879
削除ってDELETEキーの事?
それとも行削除?
どっちにしても取得できたけど
Private Sub Worksheet_Change(ByVal Target As Range)
Debug.Print Target.Row
End Sub
896:デフォルトの名無しさん
17/08/20 22:32:57.93 ikiDo2Le0.net
>>846
余った金で買ってるですら時間かけれなくて基本放置メインの優待株なのにちまちま転売なんて時間ないですよ
休みは家族サービスしなきゃなんないし
暑いなかヨドバシ並んだり労力に合わないこと無理
>>845
いや初心者なんでほんと申し訳ないが相手のサーバーの性能とか構成とかどうやって調べるの?
知りたいしやり方具体的に教えてほしい
自分で貼ったコードは今は理解出来てるけど
初心者からすると3日前ならポカーン
正直debug→sellsなんて簡単な事すらわからないレベルが初心者ですw
>>852
ありがとうございます
変数の置き換え等がまさに知りたかった事です
改変出来るサイトが見つけられず完全にお手上げでした
お酒入ってるんで明日試してみます
質問ですが456行目の...はなにか入るかのでしょうか?それともこのままでしょうか?
tb3のみの取得の場合でもこれでいけるのでしょうか?
897:デフォルトの名無しさん
17/08/21 00:12:17.86 yLjCptZM0.net
>>879
おそらくその削除行為で↓のNothing が成り立って終わっている
>If Intersect(Target, range(Cells(13, 3),cells(52,3))) Is Nothing Then
898:デフォルトの名無しさん
17/08/21 02:11:48.51 7jIbvv4Ra.net
>>880
>>881
>>883
解決しました‼
無事作りたいのできました。ありがとうございます‼
899:デフォルトの名無しさん
17/08/21 10:14:11.43 WASZaGRQ0.net
>>884
どう解決したか書けよハゲ
900:デフォルトの名無しさん
17/08/21 12:19:06.20 EyA7fO9yr.net
すまぬ。助けてほしい。
シート上にActiveコントロールのボタン配置します。
なぜか、勝手に大きくなったりちいさくなったりして堪らん。
解決策ありますか?
別件でもうひとつ。
シート右クリックメニューにコマンド追加してます。(マクロで追加)
端末によって、改ページシート表示時なら、コマンド表示されるけど、標準表示時は標準されない。
何が原因ですかな。標準表示でだしたいの。
901:デフォルトの名無しさん
17/08/21 12:42:03.35 a8XpI6K5M.net
>>886
後者に関しては
Cellって名前のCommandBarを取得して変更してると思うけど
改ページと標準で名前はどちらもCellだけど実体は別々のCommandBarだから
改ページの方だけしかメニュー追加できてないんだろう
ついこないだ自分も全く同じ現象にハマった
そのことも加味して作ってるサンプルググれば出てくるよ
出先だから細かいことは書けん
902:デフォルトの名無しさん
17/08/21 12:44:17.85 yLjCptZM0.net
>>886
右クリックしてコントロールの書式設定→プロパティ
セルに合わせて移動するがサイズ変更しないを選択
903:デフォルトの名無しさん
17/08/21 13:44:10.34 EyA7fO9yr.net
>>887
たすかる。あとは、さがしてみるよ!
904:デフォルトの名無しさん
17/08/21 13:46:53.82 EyA7fO9yr.net
>>888
ためしてみるよ。
ファイル開くたびにミリ単位に小さくなる。開放されたい。
905:デフォルトの名無しさん
17/08/21 14:35:20.65 yLjCptZM0.net
>>890
URLリンク(answers.microsoft.com)
それでもだめならグループ化すれば治る場合もあるらしい
906:デフォルトの名無しさん
17/08/21 14:42:45.59 EyA7fO9yr.net
>>891
おう!。たすかります。
907:デフォルトの名無しさん
17/08/21 20:36:29.86 F/qAyFl80.net
変数のウォッチ式を見ていると、変数の中身が勝手に変わるという現象に遭遇しました
以下のコードのどこかに問題があると思います。問題を絞り込み切れませんでした
直前にIEで「メモリを使い切りました」というエラーが出た場合に起こる頻度が高い気がしています
(このマクロは、IEから落とした巨大なデータに対して処理をかけるものです)
PCをしばらく動かしてからマクロを走らせると、何度やっても
特売コード名 = ""
のところで勝手に変数が書き換わります
再起動直後には変わる事はありません
IEのエラーに原因があるのでしょうか?
また、他に見るべきところなどはあるのでしょうか
マクロの内容は
・マクロファイル自体はマクロだけです
・データファイルをopenし、フィルターを掛けて新ブックにコピー、保存
これを繰り返しています
コードは以下です
Set 特売コードリスト = ThisWorkbook.Worksheets("list")
リスト最終行 = 特売コードリスト.Cells(Rows.Count, 1).End(xlUp).Row 'この時点で変数「リスト最終行」にはdoubleの140が格納されている
'特売コードのタイトル設定
For i = ヘッダ列数 + 1 To 最終列 Step 7
特売コード = RIファイル.Sheets(1).Cells(ヘッダ行数 - 1, i).Value * 1 '特売コードはlongの13桁です(JANコードです)
特売コード名 = "" '何故かここで変数変数「リスト最終行」が「特売コード」の値になります。13桁なのでものすごい量の処理になってしまいます
'以降、他の処理
Next
908:デフォルトの名無しさん
17/08/21 20:44:14.03 WASZaGRQ0.net
>>893
変数の中身が変わってるって事は、どこかで代入してるってことだな
変数の宣言はどこでしてる?
909:デフォルトの名無しさん
17/08/21 20:48:40.29 F/qAyFl80.net
>>894
宣言は型も指定して、最初にまとめてしてます。
しかし宣言を削除しても変わりませんでした
代入は、していません。
ステップインで以下の行を実行すると、「リスト最終行」という全く関係ない変数の値が変わっています
可変変数かと思いましたが、一体何なんでしょうか
特売コード名 = "" '何故かここで変数「リスト最終行」が「特売コード」の値になります。13桁なのでものすごい量の処理になってしまいます
また、コードの最初に以下の高速化を入れていますが、関係あるでしょうか(もちろん最期に解除しています)
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
910:デフォルトの名無しさん
17/08/21 21:01:33.61 UpqFzRYS0.net
>>895
コードを切り出す時に本当は関係ある所を
関係ないと思い込んでいる可能性があるから
コード全体を何処かにアップした方が早く解決すると思う
911:デフォルトの名無しさん
17/08/21 21:04:30.96 F/qAyFl80.net
>>896
ありがとうございます
社外持ち出し禁止のファイルなので、もう少し再現性のある部分を整理してみます
912:デフォルトの名無しさん
17/08/21 21:21:28.12 WASZaGRQ0.net
>>895
long型の変数なら何らかの形で代入処理してないとあたいは変わらんはずだがな
自作関数にbyrefで渡したりしてねーかな
まあ、何にせよ上の人が言ってるようにもう一度全体を見直そう
913:デフォルトの名無しさん
17/08/21 21:23:33.08 WASZaGRQ0.net
個人的には最終列の取得方法が怪しいと見ているが
914:デフォルトの名無しさん
17/08/21 21:41:38.22 F/qAyFl80.net
>>898
参照みたいというのは、私も感じました
しかし本当にこの行だったのです
特売コード名 = "" '何故かここで変数「リスト最終行」が「特売コード」の値になります
何度やっても結果が参照だか可変変数だかコード内の改行「 _」にしか見えなかったのですが、絶対に違うのです
メモリが書き換えられているのか、ポインタがぶっ飛んでいるのが、そこまで調査する能力はありません
同僚に「顔青白いけど大丈夫か!?」と言われました。
明日もう一度試してみます
915:デフォルトの名無しさん
17/08/21 21:43:58.48 F/qAyFl80.net
>>899
そうですね、もう何が怪しくてもなんでもいいです
最終行を取得せずに直接140を入れてみるテストをしてみます
916:デフォルトの名無しさん
17/08/21 22:46:20.73 WASZaGRQ0.net
>>901
ちなみに最終列はどうやって取得しとるん?
forで使うときにobjectから引っ張ってきてるのか、その前に変数に代入してるのか
917:デフォルトの名無しさん
17/08/21 22:55:53.80 F/qAyFl80.net
>>902
プロンプトでデータファイルを指定し、開いた直後に最終行列を取得しています
もちろんこの際にキャンセルなどの処理は行っておらず、普通に選択しています
若干うろ覚えですが、以下のはずです
'dataファイルを指定
Set data = Workbooks.Open(Application.GetOpenFilename("Microsoft Excelブック,*.xls?"))
'最終行列
最終行 = data.sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
最終列 = data.sheets(1).Cells(ヘッダ行数, Columns.Count).End(xlToLeft).Column
918:デフォルトの名無しさん
17/08/21 23:16:57.21 AMZKW1PT0.net
わざと宣言をIntegerに変えてエラーが出ないかどうか
919:デフォルトの名無しさん
17/08/21 23:24:15.17 AMZKW1PT0.net
宣言を削除しても、ってことは Option Explicit はなし?
Dim 最終行, 最終列 As Long
のように最後だけに As ○○ ってしてないか?
920:デフォルトの名無しさん
17/08/21 23:38:13.41 F/qAyFl80.net
>>905
>宣言を削除しても、ってことは Option Explicit はなし?
そのあたり纏めてです
>Dim 最終行, 最終列 As Long
それもないです、というか宣言あてもなくても変わりません
921:デフォルトの名無しさん
17/08/22 02:30:22.28 UcqKMUBs0.net
日本語の変数名ってどうなのかな
仮に全角の空白がコード中にあると見つけるのは厄介なんだよね
922:デフォルトの名無しさん
17/08/22 07:30:25.87 IrcFtIiG0.net
>>907
解決方法としてはVBEからコードをエクスポートして
記号を表示できるテキストエディタで開くとか
923:デフォルトの名無しさん
17/08/22 08:46:12.95 efKhXBAh0.net
変数名が日本語なのがバグの原因、に100ペリカ
924:デフォルトの名無しさん
17/08/22 11:48:53.83 EWbmYfD4d.net
たまにしか日本語使わないがそんなことでトラブったことはないな
925:デフォルトの名無しさん
17/08/22 13:57:55.46 bO04JkUdM.net
ie制御系の本てあんまりないよね。ネットでちまちま調べながらやってるけどエラーがおこってその原因を調べるのも一苦労。数百回のループの中で99%成功一度だけエラーとか読み込み関係だと思うんだけど、こうすれば絶対防げるとかあるんかね。
926:デフォルトの名無しさん
17/08/22 14:17:54.96 BcNwm5wtH.net
>>911
なんのためにIEを制御したいのかわからないけど、データ取得が目的ならIEを制御するという
方法をやめて、直接HTMLを取得して解析する方法にするとか。
927:デフォルトの名無しさん
17/08/22 14:32:57.14 3oFcm+Eea.net
変数が日本語で不具合でたことはないな
怪しいのは、変数の方をちゃんと指定してないんじゃないかなってとこ
最初の方でdoubleが入ってるって言ってたよね
~.Columnの参照持ってきちゃってるとかね
longで型指定してみたら
928:デフォルトの名無しさん
17/08/22 14:52:26.20 bO04JkUdM.net
>>912
エクセルから値をコピー→会社のシステム(ie)のテキストボックスにペースト→サーチボタン押す→チェックボックス押す→リストボックスから選ぶ→決定ボタン押す
てのを毎日数百件。
こんなのはスクリプトでも手作業でもなく、エクセルアップロードして終わりとかにして欲しいんだけど。
929:デフォルトの名無しさん
17/08/22 15:03:25.63 X7Tz7Bl60.net
>>914
ブラウザ側で、jsとか使ってcsv読み込めるようにした方が早そう
930:デフォルトの名無しさん
17/08/22 15:31:32.03 BcNwm5wtH.net
>>914
RubyやPythonを使えるなら、すぐ作れそうだけどね
頑張って
931:デフォルトの名無しさん
17/08/22 19:14:59.94 mRcKPRVe0.net
ブラウザのコンソール使えばサイト変更せずに何でもできるよな
あれすげー好き
932:デフォルトの名無しさん
17/08/22 19:32:43.17 j7l9pWc0a.net
>>914 とりあえず>>791のツールを使ってみ。 そうすれば自動的にどういうコード書けば良いかわかる。
933:デフォルトの名無しさん
17/08/22 19:53:03.47 j7l9pWc0a.net
>>836
とりあえず、>>745と合わせてプログラムを類推して、ツッコミどころを順々に修正しながら8つのパターンで組んでみた。
たぶん、5つ目のサンプルでB2からB101まで取得データを書き込めると思う。
ただし、実際にはTHタグが何個あるかわからないのでIE上でF12キーを押して問題のテーブルを表示させてTHが何個あるかを確認して修正すること。
現在のプログラムはTHが3個、TDの2番目からデータを取得する前提で組んでいる。
(0始まりでTHは0、1、2なのでTDの2番目は全体で4番目)
URLリンク(pastebin.com)
934:デフォルトの名無しさん
17/08/22 19:59:15.08 Gbnbr+eX0.net
>>914
クソみたいな作業だなw
ご愁傷様
935:デフォルトの名無しさん
17/08/22 20:14:43.78 j7l9pWc0a.net
>>893
コード示してあるけど、変数宣言部分が無く、また変数名から変数の型も類推できない。
これでは変数がどうなっているのかわからない。
変数に日本語使うのは自分ならしないけど、それよりも変数名から型が分からないのはほかの人も困らないか?
特売コード名=""のところと書いてあるが、デバッグ時に黄色になっているのはその次の行?
この行が黄色になっているならその前の行の実行でリスト最終行が変化したことになる。
下に変更してDebug.Print Typename(特売コード名)のところにプレークポイント置いて実行してみるとか。
For i = ヘッダ列数 + 1 To 最終列 Step 7
特売コード = RIファイル.Sheets(1).Cells(ヘッダ行数 - 1, i).Value * 1 '特売コードはlongの13桁です(JANコードです)
特売コード=123
Debug.Print リスト最終行
特売コード名="ABC"
Debug.Print リスト最終行
Debug.Print Typename(リスト最終行)
Debug.Print Typename(特売コード)
Debug.Print Typename(特売コード名)
特売コード名 = "" '何故かここで変数変数「リスト最終行」が「特売コード」の値になります。13桁なのでものすごい量の処理になってしまいます
'以降、他の処理
Next
936:デフォルトの名無しさん
17/08/22 20:24:31.59 fju/pSre0.net
>>915
>>916
VBA以外やった事ないんだよね。ie操作はエラーになった時の原因や対処がブログとか個人の質問回答とかで情報少なくて決定版みたいなの見つけにくいんだけど、別言語は充実してる?
>>918
ありがとう。でも会社のパソコン外部ネットワークにつながらなくてUSBとかの持ち込みもだめなんだよ。
一応ieの部品に対して行って欲しい処理自体はできてるから、ループ中に止まりにくい方法調べてみます。
937:デフォルトの名無しさん
17/08/22 20:35:39.11 fju/pSre0.net
>>920
クソ&クソ作業。
皆当たり前のようにやってる。自分もだけど、プログラミング的な知識無いと、そのやり方に疑問を持つのすら難しい。
938:デフォルトの名無しさん
17/08/22 20:57:35.78 1JK3C2LQ0.net
ExcelからIEを操作せずにバッチスクリプトでcURLやWgetみたいなHTTPクライアントを使ったらいいと思うけど
外部ネットワークにアクセスできなくて追加インストールもできないとなるといろいろ詰んでるね
Powershellが使えるならそれほど苦労せずスクリプト化できるよ
URLリンク(docs.microsoft.com)
939:デフォルトの名無しさん
17/08/22 20:59:25.09 yhGjK5+g0.net
>>923
なるほど。
うちの職場も無駄な作業が多いけどみんな疑問をいだかないことに対してなんてアホの集団なんだろうと思ってたけど
「プログラミング的な知識が無いとやり方に疑問を持てない」のが原因だったか。
これで疑問が氷解した。
あと1つこの職場で学んだことだが
せっかく自分が自動化するVBAのツールをつくって何人かにそのツールをあげても「使ってくれない」。
これは便利なのが嫌い」なのではなくて「自分が作ったツールじゃないからなにをしているかがさっぱりわからないから怖くて使えない」からだということだ。
940:デフォルトの名無しさん
17/08/22 21:01:25.05 yhGjK5+g0.net
だから完全なるアホの集団ではないのかもしれないが、やっぱりアホの集団にはかわらない。
そんな周りの人たちの心理がわかる自分は天才だということだ。
941:デフォルトの名無しさん
17/08/22 21:39:28.52 RSpbi9dUa.net
>>922
クリップボードとかSendkeysとか使って無いだろうな?
特にSendkeysは危険。
絶対使うべきじゃない。
分かって使うなら良いけど。
あと、Domを使ってるならクリック時にsubmitでなくClick使ってる場合は注意。
submitは送受信前提だから直後はIEがBusyになるけど、Clickは送受信前提じゃないから(と俺は思ってるけど別の理由かも)いっぱく置いてBusyになることがある。
つまり、Busyチェック時にはかからず、チェック抜けてからBusyになることがある。
俺の場合はClickの時だけチェック前に300msくらいSleepしておく。
942:デフォルトの名無しさん
17/08/22 22:07:32.73 Gbnbr+eX0.net
>>927
やっぱスリープ入れるべきかな
なんとなくスマートじゃない感じして抜いても動くように作ろうとしてんだけどうまく行かん
943:デフォルトの名無しさん
17/08/22 22:56:13.57 3iMCLjz4a.net
>>928
そのページの
944:作りによる部分は有るからね。 submitでさえSleep入れる必要があるかもしれない。 遷移した後で少し待ってからさらに遷移する場合とかもあるし、どうしてもそのページに合わせる部分は有るでしょう。
945:デフォルトの名無しさん
17/08/22 22:57:24.09 vl5o4wqs0.net
>>919
凄く作り方の参考になるし完璧な説明です
ありがとうございます。
<TABLE>
<TR>
<TH>Title1</TH>
<TD>DATA1</TD>
</TR>
<TR>
<TH>Title2</TH>
<TD>DATA2</TD> 取得すべき最初のデータ
</TR>
<TR>
<TH>Title3</TH>
<TD>DATA3</TD> 取得すべき2番目のデータ
</TR>
.
.
.
<TR>
<TH>Title9</TH>
<TD>DATA9</TD>
</TR>
</TABLE>
-------------------------------------------
この構造の場合、下記はどのようになるのでしょうか?
TABLE群 -> colTable(0)
TR群 -> colTable(0).childNodes
TH群 -> colTable(0).childNodes.Item(0).childNodes(0番目~2番目)
TD群 -> colTable(0).childNodes.Item(0).childNodes(3番目~11番目)
946:デフォルトの名無しさん
17/08/23 00:05:41.99 FdVTMyW1a.net
>>930
その場合は複数のTRがTABLEから見て子どもでしょ。
だからTRは最初のchildNodes.Item()の括弧の中が2番目からカウントアップ。
で、TDはそれぞれのTR内で常に2番目なのでchildNodes.Item(カウントアップ).childNodes.Item()の括弧の中は2番目。
各番目は0始まりだから2番目ってことは1ってことね。
この場合はcolTRも使わない。(Set colTR =で始まる文がいらない。)
Cells(i, 2).Value = colTable(0).childNodes.Item(1).childNodes.Item(1).innerText
Cells(i, 3).Value = colTable(0).childNodes.Item(2).childNodes.Item(1).InnerText
Cells(i, 4).Value = colTable(0).childNodes.Item(3).childNodes.Item(1).innerText
多分、こんな感じ。
947:デフォルトの名無しさん
17/08/23 08:10:00.16 EgpJbwY2a.net
全くの素人です
質問させてください
A1=1の場合タブの色を赤
A1=2の場合タブの色を青
としたくて
A1にはsum関数で数式を組んでるんだが1や2になっても反映されない
手入力で数値を入れるかセルをダブルクリックしてエンターを押すと反映される
何故でしょうか。
948:デフォルトの名無しさん
17/08/23 08:11:08.70 OKqU/Ui90.net
>>932
実際に何をやったの?
949:デフォルトの名無しさん
17/08/23 08:15:41.26 RC4smTF3a.net
>>932
イベントが間違ってる
そんなん条件付き書式でよくね?
950:デフォルトの名無しさん
17/08/23 08:18:48.53 EgpJbwY2a.net
コードは
private sub worksheet_change(ByVal
target as range)
If target.address〈〉"A1" then exit sub
If Target = "1" then Activesheet.Tab.ColorIndex = 9
If Target = "2" then Activesheet.Tab.ColorIndex = 3
End Sub
初心者ですのでここはこうした方がいいなどアドバイスいただけると幸いです
951:デフォルトの名無しさん
17/08/23 08:29:58.52 OKqU/Ui90.net
>>935
エラーになる
952:デフォルトの名無しさん
17/08/23 08:33:36.33 EgpJbwY2a.net
>>934
シートのタブ色変更なんですが条件付き書式でできますか?
953:デフォルトの名無しさん
17/08/23 08:36:18.74 OKqU/Ui90.net
>>932
どちらでも変わったけど
A1=SUM(1)
A1=SUM(2)
954:デフォルトの名無しさん
17/08/23 08:47:09.36 13NrMZgc0.net
>>925
それはお前が信用されてないからでわw
955:デフォルトの名無しさん
17/08/23 08:49:04.48 13NrMZgc0.net
>>937
条件付き「書式」なんだから、そういう事をするための物だよ
956:デフォルトの名無しさん
17/08/23 09:21:19.41 +0TvjQ0a0.net
>>935
"1"と"2"の両脇の"外したら動かないか?
957:デフォルトの名無しさん
17/08/23 10:06:33.42 zci6CT9Ca.net
>>935
色が変わったあとに1,2以外が入っても戻らない
958:デフォルトの名無しさん
17/08/23 10:15:50.03 EgpJbwY2a.net
>>940
ご教示下さい
959:デフォルトの名無しさん
17/08/23 10:23:11.79 EgpJbwY2a.net
>>941
動きませんでした
960:デフォルトの名無しさん
17/08/23 10:24:44.20 EgpJbwY2a.net
>>942
A1の数字は一定期間ごとに変化するんですがそれには対応できないということになりますか?
961:デフォルトの名無しさん
17/08/23 10:47:29.53 N2QxNW8Oa.net
>>937
ごめんタブか
962:デフォルトの名無しさん
17/08/23 11:13:45.38 yxvWLKA00.net
>>935
そもそも
Target.addressって絶対参照が返ってくるんじゃなかったっけ?
でもそれなら手入力でも反映されない気がするなぁ
あと、たとえばB1のセルを変更してA1の計算結果が変わったとしても
A1の数式を変更したわけじゃないから
targetにはB1が渡されるだけじゃない?
全部予想ですまん
963:デフォルトの名無しさん
17/08/23 12:01:09.88 QSg8qhxn0.net
>>935
Worksheet.Change イベント (Excel)
URLリンク(msdn.microsoft.com)
>セルが再計算時に変更されると、このイベントは発生しません。シートの再計算をトラップするには、Calculate イベントを使用します。
964:デフォルトの名無しさん
17/08/23 13:56:51.41 EgpJbwY2a.net
>>948
ありがとうございますどう組んでいいかわからないので
Worksheet_change
calculateを調べてみます
965:デフォルトの名無しさん
17/08/23 18:51:26.23 Rd2CDMDCM.net
A1セルの数式を変えていいならユーザー定義関数でできる
例えばA1に=Sum(B1:B2)と定義してるなら標準モジュールに
Function XXX(R As Range) As Double
Dim Result As Double
Result = Application.WorksheetFunction.Sum(R)
Select Case R
Case 1: ActiveSheet.Tab.ColorIndex = 9
Case 2: ActiveSheet.Tab.ColorIndex = 3
End Select
XXX = R
End Function
を定義してA1セルを=XXX(B1:B2)に書き換えればいい
966:950
17/08/23 18:54:14.54 Rd2CDMDCM.net
すまんちょっと間違えてたわ
Function XXX(R As Range) As Double
Dim Result As Double
Result = Application.WorksheetFunction.Sum(R)
Select Case Result
Case 1: ActiveSheet.Tab.ColorIndex = 9
Case 2: ActiveSheet.Tab.ColorIndex = 3
End Select
XXX = Result
End Function
967:デフォルトの名無しさん
17/08/24 01:43:32.58 gFPKAoW/0.net
>>935
ちなみに<> を半角にして、"A1" を "$A$1" にしたら変わったぞ
968:952
17/08/24 02:23:07.38 gFPKAoW/0.net
>>935
もしA1に=SUM(B1:B2) ってなっているなら
If Cells(1, 1) = "1" Then ActiveSheet.Tab.ColorIndex = 9
If Cells(1, 1) = "2" Then ActiveSheet.Tab.ColorIndex = 3
これだけでいけた Target は変更(入力)した場所が入っているから
969:デフォルトの名無しさん
17/08/24 05:57:45.02 H9WPuZGK0.net
SUMとしか言ってないので後だしっぽいが
=SUM(Sheet2!B1:B2)は考えなくていいかな
970:デフォルトの名無しさん
17/08/24 21:45:58.84 fiG1XOAx0.net
>>925
じゃあ関数ならわかるだろうと思って、
IFだらけのクソ長い関数作ってやったわ。
それもわからんて言われたけど。
当たり前か。
971:デフォルトの名無しさん
17/08/24 22:13:24.34 H9WPuZGK0.net
そのツールでやってるのは上司も知ってる?
それでも使わない?
何かあれば責任の所在は明らかなのに
972:デフォルトの名無しさん
17/08/24 23:00:01.92 q91vBAgZ0.net
ADOでエクセル上にあるテーブルに接続していますが、
テキストデータを追加したり、更新したりすると先頭にシングルクォテーションが付いてしまいます。
これは仕様だと思いますが、付かないようにする方法ないでしょうか?
後から消すって方法は無しでお願いします。
973:デフォルトの名無しさん
17/08/25 01:43:07.95 KTLmtMM0r.net
>>914
> エクセルアップロードして終わりとかにして欲しいんだけど。
システムへの大量レコードのアップロードって、ミスした時が大変なのよ。
アップロードするファイルを間違えたりするやつが必ずいるから。
場合によっては、システムを停めて修正しなければならなくなる。
なので、コピペによる数百件の手入力は言わば安全策。
派遣スタッフが多い職場でありがちだよね。
というわけで、手入力作業をIE制御で自動で行うツールはどうしても必要になるんだけど、エラートラップ(例外処理)をきちんと作り込まないと逆に使いづらくなるので要注意。
974:デフォルトの名無しさん
17/08/25 02:02:02.49 jgB7N/LP0.net
>>957
コードは?
975:デフォルトの名無しさん
17/08/25 06:46:28.19 eH4j8CdN0.net
>>957
元データに入ってる、というオチではない?
976:デフォルトの名無しさん
17/08/25 07:59:18.90 s9vD7wq8M.net
>>958
> アップロードするファイルを間違えたりするやつが必ずいるから。
そんな奴はコピペでも間違えたファイルからコピペするだろ w
977:デフォルトの名無しさん
17/08/25 08:16:24.76 fNT5yRt6a.net
大量のデータをエクセルでやるのに無理がある
978:デフォルトの名無しさん
17/08/25 08:39:54.31 ZY8b+JLd0.net
>>962
エクセルだと無理ってことはアクセス使えってこと?
余計に問題が増えそうだが
979:デフォルトの名無しさん
17/08/25 11:34:23.91 9EHfqskZd.net
>>958
なるほど
レコード数に関係なく一定の手間でできるとなると、一瞬で大量のエラーを発生させるやつが出てくるな
980:デフォルトの名無しさん
17/08/25 12:46:59.96 4kzNGnM2a.net
>>956
そういう責任問題はマクロや関数使わなくても同じ話。
というか、コンピューター使ってる時点で駄目だろ。
最後は何やってもお前のコンピューターの使い方が悪いという話になる。
981:デフォルトの名無しさん
17/08/25 12:55:04.81 4kzNGnM2a.net
>>958
それはそういうシステム作った奴が悪い。
いくらでも規定のフォーマットじゃなければ受け付けないシステムは作れるだろ。
CSVなんかでもカンマ区切りじゃなくて普通ならどうやってもキーボード入力出来ない文字で区切るなんてやるし。
それで区切ってなければ1行のデータ数不正で受け取らないなんて簡単。
それ以外にもチェック項目入れてEXCEL上で出力編集できるプログラム組めば良いし。
982:デフォルトの名無しさん
17/08/25 13:18:40.53 11RxMW0L0.net
>>966
データの中身が間違っているものをアップロードしてしまうことを言ってるんじゃないだろうか
983:デフォルトの名無しさん
17/08/25 14:22:18.70 jgB7N/LP0.net
正しいデータを入れなおして直るならいいんだけど
取り返しのつかないミスで業務に支障がでたら知らん
984:デフォルトの名無しさん
17/08/25 15:30:41.90 7eimf3NdH.net
>>958
データのバリデーションが足りてないだけでしょ
985:デフォルトの名無しさん
17/08/25 16:19:40.23 YOvDFOChp.net
バックアップを取ってリカバリしないの?
986:デフォルトの名無しさん
17/08/25 18:19:08.43 ljcbkcPnp.net
>>958
ウチの会社にもいましたわ、こんな事やらかす人達。
所詮、人間がやる事ですけど。
987:デフォルトの名無しさん
17/08/25 18:24:10.85 KTLmtMM0r.net
>>966
フォーマットの問題じゃないんだよね。
アップ済みのファイルを再度アップしてしまったり、修正前のファイルをアップしたりとか、フォーマットに問題はないのでシステムは受け付けてしまう。
その辺をリカバリできるシステムにしようとするとまた莫大な金がかかるので、上はなかなか動かない。
それによってどのくらいのコスト削減あるいは利益が見込めるのか、まずは数字出さないと話も聞いてもらえないよ。
988:デフォルトの名無しさん
17/08/25 22:45:26.71 jbJbRr/0a.net
>>972
???
後からでも受け付けるようにするだけだろ。
別に難しくないだろ。
後からアップしたのでデータ上書きすれば良い。
もちろん戻れるように履歴取る必要は有るけど。
989:デフォルトの名無しさん
17/08/25 23:17:31.65 11RxMW0L0.net
>>973
たぶんキーが無いんじゃない?
990:デフォルトの名無しさん
17/08/26 07:13:30.51 vvYv5Hier.net
>>973
働いたことないの?
991:デフォルトの名無しさん
17/08/26 07:22:16.86 vvYv5Hier.net
>>974
一応、ファイルのフォーマットにはユニークなカラムはあるんだけどね。
システム側では、そのカラムはキーになってない。。。と思われ。
さすがにシステムの仕様まではわからない。
992:デフォルトの名無しさん
17/08/26 09:32:33.78 5dccF0/k0.net
>>931
ありがとうございます。
あれから色々試しましたがいくつか問題点があります。
問題1
Dim el As IHTMLElement を削除するとTDが取得出来ず、table丸ごとの取得となります。
問題2
Dim htmlDoc As HTMLDocument を削除するとエラーが出ます。
問題3
7番目のサンプルを実行するとこの部分がエラーをおこします。
objDOM.body.innerHTML = objXML.responseText
問題1についてtableデータ丸ごとでも取得後必要箇所を抜き出せばいいので用は足せます。
変わらなければそのままいこうと思っていますが相手サーバーへの負担は増えるのでしょうか?
問題2について削除しなければ問題ありませんがxml化時に下記3箇所をどのように記載を変更すればいいでしょうか?
Dim htmlDoc As HTMLDocument
Set htmlDoc = objIE.document
Set colTable = htmlDoc.getElementsByName("oppai")
問題3について下記の("htmlfile")が原因かと思ったのですがこのままでいいでしょうか?
それとも何かのシート名を入れるのでしょうか?
Set objDOM = CreateObject("htmlfile")
毎度すいませんがよろしくお願い致します。
993:デフォルトの名無しさん
17/08/26 13:59:12.95 1Xp/S2sl0.net
>>958
>システムへの大量レコードのアップロードって、ミスした時が大変なのよ。
>アップロードするファイルを間違えたりするやつが必ずいるから
人間は、必ず間違うから、絶対に回復機能が必要。
普通は、バックアップ・スナップショット機能で、前の状態へ戻れる
銀行では、アルバイト3人が、同じデータを入力する。
3人とも同じ金額の時だけ、合格
バリデ、validation
994:デフォルトの名無しさん
17/08/26 14:10:14.30 1Xp/S2sl0.net
>>977
JavaScript の、jQuery でやれば?
Groovy, Ruby でも良いし
何で、VBA でやる?
VBAには、クロージャがあるのか?
最初から、ライブラリが揃っている言語を、使えば良いだけ
995:デフォルトの名無しさん
17/08/26 14:14:47.08 svByvDEZ0.net
>>978
>銀行では、アルバイト3人が、同じデータを入力する。
どこの銀行だよwww聞いたことないわwww
996:デフォルトの名無しさん
17/08/26 15:49:08.64 O53zOlu10.net
データを2人で入力してチェックするのは割りと普通
URLリンク(www.noc-net.co.jp)
重要な奴なら3重チェックもあるんじゃね
997:デフォルトの名無しさん
17/08/26 16:55:31.30 azDqTcfP0.net
>>972
>アップ済みのファイルを再度アップしてしまったり、修正前のファイルをアップしたりとか、
間違ったと気づいた時点でオペレータ自身が元に戻せるような仕組みを作るのはそれほど難しくないよ
手動でExcelを修正するステップやその前のステップを含めてシステム化するのが理想ではあるだろうけどね
ただ100~300万くらいのお金を莫大な金と言ってるんであれば自力で頑張るしかない
担当が変われば元の木阿弥だし、本来機械にやらせるべき仕事を人間がやってることによる逸失利益を加味したら安い買い物
998:デフォルトの名無しさん
17/08/26 17:26:45.76 O53zOlu10.net
>>982
要件も確認しないうちから
> 間違ったと気づいた時点でオペレータ自身が元に戻せるような仕組みを作るのはそれほど難しくないよ
とか言うアホ営業 w
999:デフォルトの名無しさん
17/08/26 17:45:46.64 6HYM9FnY0.net
在庫と直結するようなシステムだと現物が関わるからタイミングによっては取り戻すの大変だしね。
1000:デフォルトの名無しさん
17/08/26 17:49:54.05 azDqTcfP0.net
>>983
ははは、言いたいことはわかるけどそれは客が要件をすべて決めると思ってるやつの発想
費用に応じて提供出来る内容を変えてあげればいいだけ
そういう調整が出来ない人ばっかりだと苦労するよね
まあそこは論点じゃなく莫大な費用がかかると思ってるのは解決方法の選択肢が見えてないだけで
思ってるほどの費用がかからない方法も有るよってことよ
VBAのかわりにスクリプト書くだけなら100万もいらんし
1001:デフォルトの名無しさん
17/08/26 17:55:27.18 azDqTcfP0.net
>>984
それは今でも発生しうる業務フローの問題でしょ?
誰かが確認するっていうステップが必要なだけで1件1件コピペ入力しなきゃいけないのとは別問題
確認が必要ならそのフローをシステムに取り込んであげればいい
機械で自動確認できるほうが楽だけどそれは必須じゃないじゃん
1002:デフォルトの名無しさん
17/08/26 17:56:27.22 azDqTcfP0.net
Excel関係ない気がするからこの辺にしとくわ
1003:デフォルトの名無しさん
17/08/26 18:39:24.64 O53zOlu10.net
>>985
> まあそこは論点じゃなく莫大な費用がかかると思ってるのは解決方法の選択肢が見えてないだけで
だから要件も見えてないのに選択肢が見えるわけないだろ w
>>984の件も数件なら後追いで修正できるけど1万件とかになると破綻するとかあるだろうし
1004:デフォルトの名無しさん
17/08/26 19:30:25.78 qX5fc/S5a.net
株かなにかで金額間違えてニュースになったな
1005:デフォルトの名無しさん
17/08/26 19:42:35.36 eHXsO5oX0.net
あれはトレーダーによる入力だからそれ自体が一次情報
複数人による入力対象ではない
1006:デフォルトの名無しさん
17/08/26 21:03:15.65 F72uLJPi0.net
いつから問題の対象が
複数人による入力
に限定されるようになったんだ
1007:デフォルトの名無しさん
17/08/26 22:10:58.71 eHXsO5oX0.net
さあ
1008:デフォルトの名無しさん
17/08/27 02:42:06.83 L7AzHdYH0.net
>>914が
> こんなのはスクリプトでも手作業でもなく、エクセルアップロードして終わりとかにして欲しいんだけど。
と書いた時から、サーバ側も巻き込んだシステム全体の話になってしまって
このスレの範疇を越えるものになったんだろうな
それは多分「単純作業をVBAでなんとかしたい」と思ってただけの>>914にとって
「そんなことを議論されても俺にはどうしようもない・・・」と思ってると思う
1009:デフォルトの名無しさん
17/08/27 09:42:07.86 M71tiO6/0.net
ほ
1010:デフォルトの名無しさん
17/08/27 10:41:40.78 hneRKt3Sa.net
>>993
そもそもは>>958が手入力を安全策とか言い出したことからだろ。
手入力なんて全く安全策じゃないし、コンピューターを使う以上、安全性を追求しすぎると本末転倒になるという話。
1011:デフォルトの名無しさん
17/08/27 12:36:10.64 9rRkVsmFa.net
銀行でバイトに入力させるとかないだろ
1012:デフォルトの名無しさん
17/08/27 12:40:26.06 LjjEWylk0.net
>>996
あるよ。金融業だけど、新規口座の個人情報入力は子会社の派遣君がやってた。
チェックは正社員がやる。
振込処理なんかはもちろん、絶対にないw
1013:デフォルトの名無しさん
17/08/27 12:40:42.78 LjjEWylk0.net
次
Excel VBA 質問スレ Part50 [無断転載禁止]?2ch.net
URLリンク(mevius.2ch.net)
1014:デフォルトの名無しさん
17/08/27 13:14:20.45 EGaKBA6h0.net
>>998
乙
1015:デフォルトの名無しさん
17/08/27 13:34:20.02 rBvqwKY30.net
ぬるぽ
1016:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 62日 11時間 19分 6秒
1017:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています