Excel VBA 質問スレ Part70
レス数が950を超えています。1000を超えると書き込みができなくなります。
!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 この「いつものあいつ」はperlスレで釣りしてたあいつだろ
回答がないと別ID自分に回答するクズだぞ
IDをコロコロ変えていることで気付け ここに若い人はいないと思われ
定年退職した60〜70のジジババ様がメインの予想 >>854
煽り体制なさ杉
ゴミは無視して自分のやりたいことをしておけば良い 令和生まれの赤子が常駐してたらマジでびびるしこんな言語をやるべきじゃないと諭すレベル 答えたい人は答えて無視したい人は無視すればいいのに
「俺が気にくわないからお前らも答えるな!」ってガキ大将かなんか? >>859
支え合ってる人たちが気に入らない
という社会に馴染めない方の怨嗟
vbaという単語を知ってるだけでも見込みはあるのに、どうしてそうなったのか 定年したジジババだらけだったら異常だろ
多分30〜50代あたりのPC世代だね ウィンドウズ95を25で迎えた人間は50歳行ってるよ Lbound関数がどうもうまく出来ないのでお知恵を拝借させてください。
--------------------------------------------------------------------
【VBA標準モジュール】
Option Explicit
Function F_Test(wRange As Range) As Integer
F_Test = LBound(wRange)
End Function
--------------------------------------------------------------------
【ワークシート】
A列は別に何でも良くて,例えば以下のとおり。
A1セル 10
A2セル 11
A3セル 12
A4セル 13
--------------------------------------------------------------------
B1に =F_Test(A1:A3) の数式で「3」という答えが欲しい。
その他,A1:A4なら「4」,A2:A3なら「2」という感じ。
要は引数の配列の添字の数が欲しい。
Functionの引数部分をVariantに変えて
Function F_Test(wRange As Variant) As Integer にしてもうまく行きませぬ。 すみません。 LとUを間違えました。
× LBound
○ UBound
配列がありません とか #VALUE! になってしまいます。 >>867
F_Test = wRange.Count
>>868
横長だとアレでソレ
そういや関数には単純にセルの数を返す方法ってないんかね >>868
>>869
なんと!
ありがとうございます。
配列 サイズ で検索すると Ubound関数を紹介するサイトばかりで,何のことはない count でOKとは! >>869
セル数は一発では求まらないね
WorksheetFunction.COUNTA + WorksheetFunction.COUNTBLANK
とか、
UBound(1) * UBound(2)
とか工夫が必要 自分がわかっている事を、相手に伝えられない
、いっしゅの病気だと思っておいてね >>870
ウォッチ式に「wRange」入れると中が見れる
「+」押してそれっぽい奴探せばok
めんどい事しなくても、大体は元々用意されている
>>871
ありがとう
まぁ今まで気づかなかったぐらいだし、まぁ無くてもいいっちゃいいんだけど Sub Func()
Dim objIE As InternetExplorer
Set objIE = New InternetExplorer
objIE.Visible = True
objIE.Navigate "https://www.aguse.jp/"
Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE
DoEvents
Loop
objIE.Document.getElementById("url").Value = "99.9.9.9"
objIE.Document.getElementsByClassName("btn1").Click
End Sub
なぜ、クリック処理の所でエラー発生するのでしょうか? >>874
getElementsByClassNameは配列を返すから(同じクラスを持つ要素の配列が返る) IDがあるならgetElementByIDの方が良いぞ
classのまま一つ目をclickするなら
objIE.Document.getElementsByClassName("btn1")(0).Click CSSっぽく指定できて最初の要素を返してくれるquerySelectorもオヌヌメ >>875~877
ありがとうございます。
クリックできました >>870
だって配列じゃないからな
変に用語使わず素直に range 個数 とかでググった方がいいよ
上のレスにあるgetelemetsby系のメソッドも返すのは配列じゃなくてコレクション MapだのArrayだの機能入れりゃいいだけなのに入れない
どういうつもりだこいつら VBAは既に終わった過去の技術
移行を促すために意図的に使いづらくされることはあっても、改善されることはない そこにある幸せを制限されてる
上から目線で苦しめられてる
悔しくて泣く Office365でしか動かないVBAV2作るぐらいなら他の言語使うわな だったらそうすればって別に俺たちはマイクロソフトじゃねえけど Office365には既にOffice Scriptsがあるからそこはとっくに解決済み
あとはVBAを弾圧していくだけや VBAからJavaScript書くと
予約語は[]で括らなければいけなかったり
Callbynameで指定しなければいけなかったり
色々めんどくさい
Jqueryだって使えるか分からない
そもそもJavaScriptなんてWebで
クライアント周りで使うもんだから
わざわざEXCELの言語で使う用途が
よく分からない
まだクラッシックASP辺りで
VBSと組み合わせて使うなら納得もいくけど
そんな難しいもんじゃないから
必要に駆られたときに覚えれば十分だろう だから若者はVBに興味示さない
VB=高齢者のプログラミングだからでしょ? jqueryでExcel.Applicationを操作出来るように拡張するのか
夢が広がるね EXCELで簡単にプログラム組むことが出来るからな
VBと言うのをVBSのこと言ってるのかVB.Netのこと言ってるのかVBAのこと言ってるのか知らんが
EXCELで楽したくてVBAから入る若い人は多い。
VBA覚えた人がVB.NetやってC#やってそこからWeb系に入って初めてJavaScriptをHTMLやCSSと一緒に覚える人なんてザラ。 >>893
完全に俺
経理だけど、vbaで楽してC#でゲーム作って、
jsでクラウドツールのサイト自体書き換えて勝手に機能追加したりphpでスクレイピングしたり
年中プログラム書いてるわ。楽しい >>890
VBAでjs使うのは、一つは動的なサイトのスクレイピングする時
htmlだけの操作でしんどい時は、jsでclick辺りさせるだけでサクサク進む事がある
ってかこれ以外でjs書くことはほぼ無いと思う。
jquery使えない時は無理やりappendかなんかしてたけど、もうやり方も忘れたな
色々試している内にchromeのコンソールにぶっこむのが一番楽って結論にたどり着いた Ruby で、Selenium Webdriver, Nokogiri で、
スクレイピング・ブラウザの自動操作する時にも、
JavaScript, jQuery を使える
埋め込みRuby・ERB を使えば、どんなファイルにも、
<%= 式 %>, <% 式 %> で、Rubyの式を埋め込める
a.html.erb, b.js.erb みたいに、
HTML, JavaScript ファイル内に、Rubyの式を埋め込める >>896
Ruby馬鹿は>>712のような嘘を書いて逃げる馬鹿 そんな事よりさ、おぢーさん達は加齢臭の処理ちゃんとしてくれよ
若者に失礼だと思わね?プンプンプンプンさ >>896
何でEXCELの利点であるシートやフォームを使わないの?
バカなの?死ぬの? くっせぇーなマジで
パソコンまで加齢臭プンプンなんじゃねーのか爺さん達よ? 5chは加齢臭ジジイの巣窟ですよ。
子供は他所で遊んだ方が良いですよ。 >>870
それはVariantの2次元配列にRange.Valueを代入して高速化を行う場合の話で、単に行数求める場合に使うのは筋が違う。
Dim varRng As Variant
varRng=wRange.Value
F_TEST=Ubound(varRng,1)
というか、Ubound使うなら引数をRangeにするのが間違い。
Function F_Test(wRange As Variant) As Integer
F_Test = UBound(wRange,1)
End Function
として、呼び出す時に
Debug.Print F_TEST(sht.Range("A1:A3").Value)
とする。 標準モジュールにcsvFile関連に関わるコードをまとめようと思ってます。
フォームABCと3つありそれぞれのTextBoxの文字列を使用するのですが、引数にフォームを渡すと後でモジュールの引数?を見た時にどのフォーム?ってなるんですが、なんか分かりやすい方法ありますか? >>904
あれ?
EXCELのFormってNameプロパティ持って無かったっけ? あわしろ氏は、Microsoft固有の言語は覚えないほうが良いと言ってた。 >>907
必要に迫られて覚えたもなにも、中学か高校で習うだろ普通。 >>909
.netもMS固有の言語みたいなもんだが、普通に色んな職場で使われとるやん 学習しなくても最初からできる天才タイプもたまにいるよマジで そもそもマイクロソフト固有の言語ってなんやねん
みんな既成の言語や他社製品を買収して、それを手直しした物ばっかやん microsoft固有の言語って今どきある?
VBAとかBATとか、失われゆくものだけでしょ。
そりゃ今から時間をかけて覚えるのはもったいないわ。
他の言語使える人なら、VBAなんてわざわざ学習する時間をかける必要もなく、それなりのマクロは組めると思うけど。 あまいわ、Excel独自のルール知らないとまともなVBA組めんわ
表示形式とかその辺もそうだし。 >>917
それは言語の問題ではなくAPIの問題かと 環境に左右されないコード書く仕事なんてそうそうないだろ
何やるにしても調査と学習は必要だわ VBAは覚えてからでなければ組めないほど難しいとも思えん
目的の動作に必要な部分だけを検索すれば初心者でもすぐ出きるとおもう
自分で考えないで質問ばっかりすりから覚えられないんじゃねーの A:まず顧客名XXの行、商品とかいてある列のデータをとります
B:()
このざま
けしてとっつきやすくはない みんなすまん
最近Ruby信者やあわしろ教信者がこのスレに多発するようになったのはひょっとすると俺のせいかも知れない
ぶっちゃけ始めるのにいい言語て何 part4
https://mevius.5ch.net/test/read.cgi/tech/1615612545/
このスレでVBA推ししてたから
変な狂信者達がこのスレにうろつき出すようになったのかも知れない
そうだとしたらマジですまんかった ユーザーフォームで行の選択位置を変えるボタン▲▼がクリック数と一致しない問題があったんだけど
あんまり早くクリックするとダブルクリックイベントに持って行かれるという記事見て目から鱗だったわ はい、頭大丈夫か、いただきました〜。
ごっつあんです。 >>929
理由を知ってるからそう思えるのであって意外と分からんもんよ >>931
常識だろ
コピペしかしない頭が弱い奴にはわからんだけ
そういう頭の弱い奴はWindowsの仕組みすらろくに把握していない
アイコンをダブルクリックする操作から類推する頭がない はい、常識だろ、いただきました〜。
ごっつあんです。 良く考えてよ、そんなにVBAが楽だったらそこらじゅうでエキスパートが溢れ帰ってるわ >>938
言えるぞ
そいつは世の中馬鹿だらけという当たり前のことを知らん馬鹿なのか? あわしろ氏から見たらお前もバカの一人にすぎないのだが。 ttps://ja.asuka.io/whois/126.31.241.3
の”SoftbankBB ABUSE”を取得したいと思っているのですが、どのようにすればいいのでしょうか?
Dim objIE As InternetExplorer
Set objIE = New InternetExplorer
--省略--
objIE.Document.getElementsByClassName("whois-result") >>937
そんな。。。いきなしベストアンサー出さなくても。
みんなさ、もうちょいもて遊んでよ(笑) Ruby のnokogiri でスクレイピングして、
CSS セレクター・正規表現で、2つマッチした
require 'open-uri'
require 'nokogiri'
url = "そのURL"
doc = Nokogiri::HTML( open( url ) )
element = doc.at_css( '#result-126_31_241_3 > span' ) # id の直下のspan
re = /^role:/ # 行頭から
element.content.each_line do | line | # 1行ずつ処理する
line.chomp! # 末尾の改行を削除する
line.match( re ) { |matched| puts line }
end
出力
role: ABUSE SOFTBANKJP
role: SoftbankBB ABUSE Rubyなんてカーバンクルの頭にめり込んでいるような気持ち悪い名前の言語使うくらいなら
JavascriptとCSSとJQueryの組み合わせでいいと思うの >>942
roleが2つ以上あった時、どうやって選ぶの? Ruby馬鹿は>>712のような嘘を書いて逃げる馬鹿 VBAを覚え始めて2週間だけど
まだこのスレに書かれているコードの意味が全くわからないwww
でもコード書くの楽しいなって思ってやってます レス数が950を超えています。1000を超えると書き込みができなくなります。