Excel VBA 質問スレ Part73

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 4668-xJJl)
垢版 |
2021/09/13(月) 07:29:59.47ID:GNx0xRRz0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付けるナリ

ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ

※前スレ
Excel VBA 質問スレ Part70
https://mevius.5ch.net/test/read.cgi/tech/1616072923/
Excel VBA 質問スレ Part71
https://mevius.5ch.net/test/read.cgi/tech/1621914481/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2021/09/13(月) 08:13:09.52ID:tEaVHPxwM
>>1
3デフォルトの名無しさん (ワッチョイ a58e-tqgi)
垢版 |
2021/09/13(月) 19:11:08.29ID:Pa7+I2w50
いつものあいつの釣りとあまりに馬鹿過ぎる質問はお断りです
また、Excelの使い方すらわからない人はお帰りください
2021/09/13(月) 21:24:22.31ID:dfMVUW3H0
それでも来たらスルーでいいんじゃね
2021/09/14(火) 16:24:06.98ID:QWQM37es0
A列の全行のセルの値を配列に突っ込む時、オートフィルターが複数列でかかっていると、
表示されてるやつだけ配列に入ってしまうの、なんとかならない?

配列をA列に縦方向に貼り付ける時も、オートフィルターが既にかかってると、適切に元の行に貼り付け戻せない。
仕様なのかな
2021/09/14(火) 16:26:32.34ID:QWQM37es0
2万行あるから、なるべく最初にa列の内容を全部配列に入れてから、それぞれを操作して、
それからまた修正済みの配列の中身をa列に上書き貼り付けしたい。
でも、オートフィルターがかかっているとまずい。
複数列でオートフィルターがかかっているととても難しい
2021/09/14(火) 16:40:04.06ID:dOl/0XMua
フィルタ全解除する処理を前に置けばいいじゃない
2021/09/14(火) 17:37:49.57ID:QWQM37es0
全解除して処理を行う、というのはできたけど、ユーザーのためにフィルタした状態ってのはそのままに戻したい。
フィルタしてる列が単体ならなんとかそれはできた。
だけど、複数列でフィルタした状態を、いったん全解除して、そんであとでまた元のフィルタ選択状態に戻すのが出来なさそうなのよね。
2021/09/14(火) 19:45:59.21ID:dPBji9ks0
テーブルの見出しはvalueじゃ取り出せないんだな
勉強になったわ
10デフォルトの名無しさん (ワッチョイ 5e68-gxqX)
垢版 |
2021/09/14(火) 20:24:42.51ID:Tksl7xa90
フィルタは全解除するのが一番手っ取り早い
横に伸ばすのは異常に難易度高い
11デフォルトの名無しさん (ワッチョイ 5e68-gxqX)
垢版 |
2021/09/14(火) 20:25:17.71ID:Tksl7xa90
列の増加が多いなら最初から大量にフィルタ列を用意シておいたほうが良い
2021/09/14(火) 21:12:31.57ID:u7isybhPa
>>8
フィルタの条件って色々指定できる(色とか日付とか特定の文字列を含むとか)から、全部に対応しようとするとすごくめんどくさい
https://excel-ubara.com/vba_class/VBA_CLASS_08.html

割り切りとして「このマクロを使ったらフィルタは解除されますが情報は最新化されます」くらいにしとくのが無難かと
2021/09/14(火) 21:57:16.30ID:zgsbOTDxH
作業シートにコピペしてから処理すれば?
2021/09/14(火) 23:44:27.27ID:UJ1BwW9y0
コマンドボタンを押してユーザーフォームを開くときに、
TopとLeftの位置をセルC5のTopとLeftの位置に合わせるべく、
以下のようにコードを記述したのですがうまく合ってくれません。
※セルC5のLeftやTop位置より大分左や上に表示されてしまう。

何か記述的におかしいのでしょうか?

Sub UserFormOpenSet()
Dim varTop, varLeft
With Sheets("説明シート").Range("C5")
varTop = .Top
varLeft = .Left
End With
With UserForm
.Show
.Top = varTop
.Left = varLeft
.Label1.Caption = "コメント内容"
    ・


End With
End Sub
2021/09/14(火) 23:56:12.55ID:OBquwEh60
>>14
UserForm top left でググッたらこんなページがhttps://www.officepro.jp/excelvbaform/form_form/index4.html
検証してないけど試してみたらどうですかね
16デフォルトの名無しさん (ワッチョイ 2a05-0MLo)
垢版 |
2021/09/15(水) 00:23:15.17ID:8Tg1g6H40
>>15
UserForm top left セルの位置 でググったら
完璧なTipsがありました!
検索のヒントをありがとうございました!
2021/09/15(水) 00:48:53.61ID:YsJqQLCb0
どーでも良い質問なんだが、VBAからエクセルのセルに値を入れるときの表現について
意見が割れてるので、みんながどー表現してるか知りたい

例えばVBAで A1セルに 123 という値を入れるとき、
A1セルに 123 を出力するという表現を使うか、A1セルに 123 を入力するという表現を使うか、どっち?

仕様書で人によって同じことしてるのに出力となってたり入力となってたりで色々バラバラすぎる
2021/09/15(水) 01:03:00.63ID:gZeM1+Z6d
>>17
VBAで計算や処理した結果をワークシートに保存するだけ、セルに値を入れて終わりの場合は出力
シートに値をセットしたあと、さらにその値を使って数式やグラフなどで別の処理や加工をする場合は入力
19デフォルトの名無しさん (ワッチョイ 5e68-gxqX)
垢版 |
2021/09/15(水) 07:18:17.38ID:zmLKkAKu0
>>17
それは一律で入力じゃないのか
代入って言うぐらいだし

「出力」はエクセルがrangeのvalueを出力してるだけでは?
20デフォルトの名無しさん (ワッチョイ 39e6-oWuh)
垢版 |
2021/09/15(水) 07:51:35.00ID:qRxK7g6Y0
VBAの関数、メソッドとしてそのデータが入力値なのか出力値なのかは明白なのでは?
2021/09/15(水) 10:54:35.14ID:LR7HEnPp0
>>17
VBAがセルに出力
ユーザーがセルに入力
2021/09/15(水) 12:02:19.64ID:K+waubxMM
お知恵をお貸し下さい

String型の変数に文章を代入しています
その変数が「は」を助詞として使用しているかを検出し、その「は」が何文字目に記載されているかを抽出したいです
判定式はどの様に組むのが良いでしょうか
2021/09/15(水) 12:16:58.05ID:ggl3y/Wm0
>>22
これが使えるんじゃないかな。
https://qiita.com/mima_ita/items/bc2aeb060ee12d280d7b
2021/09/15(水) 12:26:39.15ID:ggl3y/Wm0
こちらの下の方に具体的に品詞の判定方法がある。
http://www.excel.studio-kazu.jp/kw/20201108202429.html
2021/09/15(水) 14:02:58.42ID:XT7xZlnV0
是非とも
「はははははは、ははのはははははははと笑う」で
挙動確認を行なって欲しい案件だな
2021/09/15(水) 16:06:38.48ID:5d7y3fL1M
>>17
> A1セルに 123 を出力するという表現を使うか、A1セルに 123 を入力するという表現を使うか、どっち?
俺なら「A1セルに 123 を書き込む」かな
シートはストレージみたいなものなのと思ってるので出力とか入力って言うのはなんか違和感ある
2021/09/15(水) 16:59:13.14ID:3TKYe9Fz0
VBA側を主体に書いているなら(シートに)出力
シート側を主体にかいてるなら(VBAから)入力
だな

VBAの仕様書でVBA側を主体にしないのはどうかと思うが
(マクロ付き)エクセルの仕様書だと考えればまあ入力でもいいのかも
28デフォルトの名無しさん (ワッチョイ a6ba-WYzC)
垢版 |
2021/09/15(水) 23:30:54.86ID:IO2bkDAL0
985なのですが、
ttps://whois.nic.ad.jp/cgi-bin/whois_gw?key=182.22.16.251
から
b. [ネットワーク名] YAHOO-NET
をVBAで抽出するいい方法はあるでしょうか?
2021/09/16(木) 00:13:25.85ID:/erdykE4H
>>28
Sub ネットワーク名取得()
  With CreateObject("MSXML2.XMLHTTP")
    .Open "GET", "https://whois.nic.ad.jp/cgi-bin/whois_gw?key=182.22.16.251";, False
    .Send
    For Each s In Split(.responseText, vbLf)
      If InStr(s, "ネットワーク名") Then Debug.Print s
    Next
  End With
End Sub
2021/09/16(木) 00:59:42.68ID:5Hx4RpZ/0
一生使うことのなさそうなCreateObjectだな
2021/09/16(木) 01:49:26.07ID:tvb8xhvB0
>>28
shift-jis の古いサーバーっぽい。
Ruby で作った

require 'open-uri'
require 'nokogiri'

url = "ここへURL"
doc = Nokogiri::HTML( open( url ) )

elements = doc.css( "pre" )
text = elements.first.content # 1つ目のpreの内容

result = "エラー! 該当なし"
text.each_line( chomp: true ) do | line | # 改行を除去して、各行を処理する
if line.start_with? "b. [ネットワーク名]" # 行頭が何々で始まっていれば
result = line
break
end
end

puts result

出力
b. [ネットワーク名] YAHOO-NET
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況