Excel VBA 質問スレ Part68
■ このスレッドは過去ログ倉庫に格納されています
!extend:checked:vvvvv:1000:512 ↑同じ内容を2行貼り付ける ExcelのVBAに関する質問スレです コード書き込みや作成依頼もOK ※前スレ Excel VBA 質問スレ Part67 https://mevius.5ch.net/test/read.cgi/tech/1593104489/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured >>85 上手く質問できなくて申し訳ありません。 全体的な単語の一つ一つの意味が知りたかったのです。 お手隙ならばで構わないのですが、 https://www.fe-siken.com/kakomon/30_haru/pm02.html この問題の設問3の重みパラメータというのがどう作用して出力Zの値になるのか教えて頂けないでしょうか。 あ、すみません。問題よく読んでませんでした。 これについてはレス直後理解しました。 ごめんなさい( ;ᯅ; ) >>84 これで出来ました ありがとうありがとうありがとううううううううーー >>91 内容も読まずに書くなよクズ。SQLのことだろうが。 ここで質問したらダメだったみたいですね 該当スレとかあるのでしょうか >>88 これをどこで聞けばいいのかもわからなかったらFE受かるの難しいよ… VBA勉強しはじめて、ようやくOutlook連携とかzip圧縮とかやり始めたんだけど Excelそのものの操作に関する情報と比べて、参考に出来る情報の質も量もガクッと落ちた気がする やっぱ話題のpythonに切替えたほうが悩まずやれるのだろうか 質も量も、っていうのはノンプログラマーの自分が探せる範囲って意味です 目の前に答えが書いてあっても理解できない、答えだと気付けない これが「馬鹿には無理」の意味 何をしたいかによるけど、Windowsの操作の自動化っていう範疇ならPowerShellおすすめ Comオブジェクトも使えるよ なにがおかしいの? Sub func() Dim url As String: url = "https://e-hentai.org/g/1727798/1fbe77a0a2/" ; Dim buffer As String: buffer = "" Dim objLinks As Object Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = False objIE.navigate (url) Do While objIE.Busy Or objIE.readyState <> READYSTATE_COMPLETE DoEvents Loop Call WaitFor(3) ' wait for 3 seconds objLinks = objIE.document.getElementsByClassName("gdtm").outerHTML Cells(1, 1).Value = objLinks objIE.Quit Set objIE = Nothing End Sub Function WaitFor(ByVal second As Integer) Dim futureTime As Date: futureTime = DateAdd("s", second, Now) While Now < futureTime DoEvents Wend End Function >>102 Dim objLinks As String >>105 データをダウンロードするだけならブラウザを使わずに直接ネットアクセスした方が早くて簡単 色んな方法があるけどXMLHTTPとかWinHttpRequestとか調べてみ >>106 ありがとうございます 'JavaScriptを実行しFormを送る処理 objIE.Navigate "JavaScript:doAction('/文字列')" みたいなことしないとアクセスできないサイトのデータが取得したいのですが 他に方法ありますか? >>107 Form送信は単純なHTTPアクセスで代替できるケースが多いから、これもブラウザを使う必要はない てか、WEBの構造はVBA関係ないし エクセル2010です。 上書き保存時にすべてのシートでA1セルを選択するようにしたいのですが、 Ctrl+S時とボタンのクリックイベントで挙動が違うことにハマってます。 1枚目シートにactiveXコントロールのボタンを配置し、VBAの構成は以下です。 1. シートモジュール : ボタンのクリックイベントにThisworkbook.saveだけを書いています。 2. ThisWorkbookモジュール : beforeSaveイベントで3を呼び出し。 3. 標準モジュール : 全シートのA1セルを選択するSubプロシージャ。ForEachでまわすだけ。 Ctrl+Sの際は2→3でうまくいきます。 ボタン押下の場合は、1→2→3と流れてはいるものの、なぜか各シートがactivateされなず、activeSheet.Range("A1").Selectが働きません。 1のクリックイベントから直接3を呼び出すのは、うまく行きます。 何故このような挙動になるのか分からず数日ハマってます。 どなたか、ご教示よろしくお願いします。 >>110 for i= activeworkbook.worksheets.count to 1 step -1 apprication.goto activeworkbook.worksheets(i).range("a1") next i activeworkbook.save スマホ打ちだから綴りミスはあるかも >>110 For eachで全シート回してるならActivateしなくても、 sh.Range("A1")で行けないか? >>112 間違えたsh.Range("A1").Selectだわ >>110 働かないという場合の原因で以下のことを調べてみ 1.実は働いていたがその後に別の動作をしたため働いていないように見える 2.働こうとしたが、なんらかの異常が出て失敗している 3.その処理が実行されていない(on errorやifの条件、イベント発生していないなど) >>105 漏れは、yahoo のログインとか、 Ruby, Selenium Webdriver で、ブラウザを自動操作してる 単純なダウンロード・スクレイピングなら、RubyのNokogiri。 外部コマンドなら、curl, wget Application.EnableEvents=Falseしてるとか? “>-1”&i て書いたときに >-2, >-3... っていうふうに比較値が意図せず負に進むんだけど正の値に足したい場合ってどうすれば良いでしょうか。 >>117 VBAの挙動の問題 -を文字列、1を数値として認識してる そもそも、-1をダブルクォーテーションで括ってるのは文字列として-1を認識させたい時のみにするのが基本 なので、ダブルクォーテーションを取ってやれば意図通り動くはず へー、そんな挙動するんだ。知らなかった >-11 >-12 >-13 になると思ってたよ >>113 activeじゃないシートはselectできないと思うが >>110 Forの中身が間違ってるとか別のブックを見てるとか ほんとに選択したいシートが選択されてるか確認した? >>118 クォーテーション外してやってみたけど上手くいかないです... 初心者なんで拙いですが、一応自分で書いたものをのせます。 既出のデータを整理して2次元チャートを作成する目的です。 Dim cnt As Integer Dim x As Long Dim y As Long x = 0 y = 0 For x = 0 To 10 For y = 0 To 10 cnt = WorksheetFunction.CountIfs(Range("B2", Range("B2").End(xlDown)) "<=" 0 + x, Range("B2", Range("B2").End(xlDown)) ">= -1" & x, Range("C2", Range("C2").End(xlDown)) "<= 0" & y, Range("C2", Range("C2").End(xlDown)) ">= -1" & y) Cells(x , y) = cnt Next y Next x いつも人任せだな… そのcountifの引数の中身が自分の意図した内容かなんで確認しないの? もう30過ぎて勉強もなぁ…って手が進まない VBAを知識をパンパンに詰め込んでああこれねって感じでカタカタと打ち込んでプロシージャ作りたいもんだわ 考えることを人に丸投げしてるだけで勉強は関係がない 人に丸投げというかネットで拾ったものの組み合わせでいつも何とかしてしまう 知識がほとんど入らない 異動希望出してるしなぁ エクセルの指定列から3列コピーしてその4列目に挿入して貼り付けた後セルに入ってる値を消すコードをRangeじゃなくてCellsでやりたいです。 clmtar=10 10〜13列をコピー 14列目に挿入 14〜17列目のセルの値クリア。 >>127 コピー後の値を消すの? 元通りになるだけだと思うけど >>126 愚痴る暇があったら入門書かって1ページでもいいから読んでろ >>129 すんません…なんか職場でおばちゃんがあれも作ってとか調子こいてるだけで こりゃまた愚痴だわ これぞ!っていう入門書ありますかね イチからガチで鍛えてみるかな >>126 なんとかできてるならそれも実力のうちなのだと思うよ 楽しい、自分ならこうしてみたい、こうしたらどうなるのだろう とかがないならそこまでだけど ネットで検索 プロシージャを組み合わせたり簡単なところをイジる 出きたと思ったら会社のメルアドにプロシージャ貼り付けたテキスト送る 会社で組み合わせる UserFormのボタンに割り当て これでごまかしつつやってきた 圧倒的な知識が欲しいなぁと >>130 それすら他人に頼るようじゃいつまでたっても進まない 今までどおり困ったら初心者ですとか勉強中ですとかで知識ないアピールで人にやらせて突っ込まれたら謎の正当化とどうでもいい言い訳で誤魔化してやっていくんだろうな ネットで調べてなんとかなってしまう時代のせいだよね 俺は悪くない そういう人が増えてきたからあんまり教えないようにしてる >110です。 書き込み後にいろいろググったところ、いくつかのサイトで コードからの保存はbeforeSaveイベントが正常に働かない旨の記載がありました。 今回の事象もこれに当たるのかなと考えています。 そんな訳で、ボタンでの保存はenableEventsをfalseにして別処理にしました。 回答くださった皆様、ありがとうございました。 別にここで聞いても答えなんて返ってこないし期待してないのでご安心を 足し算がわかりませんとか言われても入門書でも読めとしか言えないよな 入門書を紹介すると今度はどこで買えばいいか聞いてくるよ すみません。ちょっと長くなってしまうのですがTreeViewをいじっているうちに分からない事があったので教えて下さい。 TreeViewの子ノードをD&Dでリストボックスにコピーする動作を作っていたのですが、ドラッグ開始時点のSelectedItemを取得しようとすると1度子ノードをクリックした上でD&Dを行う必要がありました。 その為、既定引数のIPOS,yPOSを使ってHitTestをSelectedItemに代入しようとしました。 しかしそれが上手く動作せず色々調べた結果、 xとyに*15をすると言う記述を見つけ試してみたところ、思い通りの動作を得られました。 しかしながらこの15はなんの15なんだ。他の環境ではこの数値は変わるのか。変わるならば何を元に算出すれば良いのだろうか。 という疑問が浮かびました。 お手数をお掛け致しますがお分かりになる方がいらっしゃいましたらご教授頂けませんでしょうか。 Windows標準のシステム解像度だとピクセルとTwipsの比率が1:15だからってスタックオーバーフローに書いてあった c言語のdefineに相当する文法は無いですか? constだと違和感がありますので >>148 助かります ありがとうございました という事は使用環境次第では正常に動作しない場合も有り得るって事なのですね。対策を検討してみます。 >>149 どこに違和感があるのかを言わないと案を出せません >>128 コピー後挿入したら隣に3列追加されてセルの長さもコピーした3列と同じになりますよね? >>152 幅を一緒にしたいなら最初からそう書けば良かったのに >>149 あなたが思っているC言語のdefineの使い方は、コンパイラが置換するもので、定数の概念とは少し違いますよ? 列の挿入なんてあちこちに影響するから、やりたがる理由がわからない。 自分の操作と同じ手順を踏みたいだけなんだろうね プログラマではない素人感覚 超初心者なんだけど 配列の中から指定値の近似値の座標を検索するのにいい感じの方法はないでしょうか (以下、以上、完全一致全て含めての近似値) >>161 for eachで比較対象値と指定値を全て比較して、結果出力してその中でMIN関数使えば >>161 前もってソートした配列作って二分探索か、 配列の値-指定値の絶対値が最小になる値を探す 指定値と配列値の差分を絶対値にして比較した場合、 指定値が5だとして 配列 差分(ABS) 4 1 7 2 となり、最小の差分は1とわかる 座標を知りたいので指定値(5)-差分(1)=4となり、配列の中から4を検索して座標を調べればいいのかなって思ってたんだけど 絶対値で出てくると5-1か5+1どっちを検索すればいいか不明じゃないですか? そこらへんを解決する方法があれば聞きたいです ひとつに絞りたいならお前がルールを決めればいい お前に決定権がないなら保護者に聞け ExcelVBAのフレームワークってないんですか? PHPやJavascriptはまずフレームワーク覚えるもんだと思うのですが VBAだとそういうのが見当たらなくって・・・ 見よう見まねで結構大掛かりなマクロを作った 情シスには程遠い事務の部署で 改善賞1万円 うーんもうちょい欲しかった オフイスを便利に使うためのお手軽言語でフレームワークの勉強とかやってたら非効率な上に大したメリットもない フレームワークという意味ではVBAそのものがVB6のOffice向けフレームワーク さらに言えばExcel向けに特化したものがExcelVBA 他のOfficeソフトにもそれぞれのVBAがある >>167 一つに絞りたいというか最も近しい値を知りたいのです 指定値が5のとき、配列が4と7なら4を、3と6なら6の座標を調べたい 1万行は超えるから総なめはちょっと… >>172 パソコンにとっては「たった」1万行だよ 総舐めが一番簡単だし、開発時間も含めれば一番早い >>172 は? 質問は4と-4だろ? もう俺が決めてやるよ -4にしろ、はい解決 セルを弄くり回すとかじゃなくて配列のまま総舐めするなら1万行ぐらいすぐ終わるでしょう 指定した値aの近似値が欲しいなら If a-x<=Array(i) And a+x>=Array(i) Then とかで引っ掛かる奴を引っ張り出すなりなんなりすりゃあ良い 近似値の範囲が不定で最も近い値を探すって言うならRank関数とかLarge関数とかSmall関数使うのも手 >>168 各オブジェクトに多数のイベントが設定されているでしょ windowsのプログラミングはイベントドリブンが基本 ブックが開いた、ボタンが押された、マウスが動いたなどのイベントに対するコードを書いていけばアプリケーションが完成する すみません今宿題でこれやってるんですけど打ち込んでもなにも出ないのですがなぜでしょう ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる