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/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
2021/09/16(木) 01:51:47.59ID:YFUf0QLVM
なぜRuby
2021/09/16(木) 02:01:13.02ID:FMosLWBbd
スレタイも質問も読めないRubyバカ
34デフォルトの名無しさん (ワッチョイ 5e68-gxqX)
垢版 |
2021/09/16(木) 06:38:12.58ID:COWrCKXD0
利用者数激減の言語
それがruby
2021/09/16(木) 08:25:21.24ID:J7QCCEb9M
>>32-34
相手すんなよ…
2021/09/16(木) 08:25:49.50ID:3isIfw030
>>17
なるほど仕様書の問題か
ならば現場内で紛らわしくないような記載のルールを作ればいいかな。
例えばユーザーが手打ちで設定する場合は「入力」
VBAで書き込む場合は「出力」または「設定」

コード上では「取得」と「設定」とかに分かれるからあまり問題ないだろうけど、仕様書の記載はまた別のセンスが必要になるからね。
一見して分かりやすく曲解のない仕様書を作るときって日本語の難しさを痛感することあるよね。

そういう時は大まかな流れ図みたいなもの書いて添付して紛らわしさを回避するのも一つの手だよ。
2021/09/16(木) 11:33:48.95ID:0wHWe9CF0
質問への回答ありがとう
>>17の質問者です

個人的には「人が入力」、「VBAから出力」というとらえ方がしっくりきました

紛らわしくない書き方のルールを作るというのは本当にその通りで、
これは実践したい

日本語は改めて考えると主体が曖昧で難しい…
2021/09/16(木) 12:13:09.55ID:/erdykE4H
>>37
日本語の文章ってのは、主語が存在しなくても成立する性質があるんだよ
おかげでどっち視点かわからなくなる現象が起きやすい

逆に英文法では主語がほぼ省略できない
だから単語を置き換えただけの翻訳は不自然な文章になる
2021/09/16(木) 13:11:41.46ID:3+DQoJa1a
グッジョブ!俺
40デフォルトの名無しさん (ワッチョイ 668e-ZlXV)
垢版 |
2021/09/16(木) 14:54:30.21ID:QuckXkbq0
>>38
馬鹿の典型例
41デフォルトの名無しさん (ワッチョイ b501-lR9W)
垢版 |
2021/09/16(木) 17:31:50.83ID:Z23LNYuB0
質問させてください。

ウェブサイトから特定の場所の情報を抽出するのはこちらのVBAを使用するということで間違いないでしょうか?

またこれはExcelを購入することによって使用できるもので、WindowsでもMacでも使用できるのでしょうか?

現在Macを使用しておりまして、具体的に申し上げるとyahooファイナンスなどの個別銘柄ページから配当利回りなどの情報をまとめて抽出したいと考えております。

スレ違いでしたら申し訳ございませんが、検索してもよく分からなかったので、書き込み数が多いこちらで質問させていただきました。

よろしくお願い申し上げます。
2021/09/16(木) 17:42:26.31ID:3abSZdzaM
俺が馬鹿なだけかもしれねぇけど何をしたいのかがさっぱり分からない
2021/09/16(木) 18:02:43.18ID:nCqRUFyPM
スクレイピングしたいんだろ
そのデータをどう扱うかによるわな
2021/09/16(木) 18:31:48.90ID:sOgFGA/J0
というかMAC版のEXCELってVBA使えるの?
あとスクレイピング用のコンポーネントも
45デフォルトの名無しさん (ラクッペペ MM3e-oWuh)
垢版 |
2021/09/16(木) 18:41:42.01ID:EvK5hxPzM
他のツールでデータを集めて
結果をExcelにするのが良いよ
csvでもいいんじゃね?
2021/09/16(木) 19:07:04.50ID:Az+Wn1Ze0
>>41
htmlから簡単なスクレイピングならPower Queryがとっつきやすいかと。
URLのリンク先がcsvやExcelファイル、pdfファイル、
GitHubにあるJSONなんかもこれで結構いける。

CSS構造や、
画面上で検索指定やボタンを押させるような対話型を必要とする
複雑なhtmlなら、Pythonとか。

その先の処理でVBAを組み合わせることはある。
クエリーエラーを避けるため、一つずつシーケンシャルに更新させたいとか、
同時にファイルをDLして保存したいとか。
47デフォルトの名無しさん (ワッチョイ 5e68-gxqX)
垢版 |
2021/09/16(木) 19:33:58.44ID:COWrCKXD0
>>41
chrome 拡張機能 スクレイピング
で検索すると良い
ちなみにyahooなんかはスクレイピング対策として、短時間で大量にアクセスすると一発で垢一時停止になるぞ

一番いいのはyahoo APIなどのAPIを使う事
2021/09/16(木) 20:21:31.16ID:3isIfw030
MacのOfficeソフトとRubyには期待するなって
死んだばあちゃんが言ってた
49デフォルトの名無しさん (ワッチョイ 9e8c-xZL4)
垢版 |
2021/09/16(木) 20:24:24.60ID:MqGeVsp10
Macには無料で今流行りのPythonがついているそうなので
スクレイピンクはそっちの方が遥かに簡単じゃないかな
ExcelVBA経験がないのなら
2021/09/16(木) 20:45:30.18ID:B6OYbZSR0
>>48
ばあちゃんハイカラやな
2021/09/17(金) 03:52:03.83ID:O1PoA15N0
Rubyist は、たいていMac

スクレイピングは、Ruby, Selenium Webdriver, Nokogiri だけど、
無断で、大量のスクレイピングすると、営業妨害で逮捕される

スクレイピングする際、そのサイトのrobots.txt を遵守しないといけない。
取得したデータは、CSV, JSON、データベースなどに保存する

今は、どの本でも、無断でスクレイピングする事は推奨しないと書いてある。
相手のサイトと契約して、API を使わしてもらうべき!

YouTube API とか、Google Maps API とか、
株式相場などもそう
2021/09/17(金) 11:36:45.56ID:D2cYhIKk0
>>41
なんでできもしないことやろうとすんのかね
検索してもわからないんじゃ無理だろ
2021/09/17(金) 12:01:52.56ID:Y3MPn8p/0
できないことをやらないと
いつまでたっても何もできないのだが、、、
54デフォルトの名無しさん (ワッチョイ ffba-fv4A)
垢版 |
2021/09/17(金) 18:44:11.62ID:xtR/7aZz0
>>29, 31
ありがとうございました。
2021/09/17(金) 20:27:29.50ID:ZtM+Yv2y0
見えないものを見ようとして望遠鏡を覗き込んだら捕まった事例
56デフォルトの名無しさん (アウアウウー Sa5b-4fkB)
垢版 |
2021/09/17(金) 20:40:10.73ID:7ovEcO6ia
>>53
おまえが出来ないのは自業自得
2021/09/17(金) 22:49:29.45ID:DaER+3fZ0
前の定義で移動できるセルを登録したいのですが、アプリケーションの定義エラーがでます。
範囲は101カ所登録したいのですが、どうやらstr*を3個くらい抜くと動くのですが、名前の定義に制限があるのでしょうか?
str*はどこを抜いても同じです。

Dim stra As String, strb As String, strc As String, strd As String, stre As String, strf As String, strg As String
stra = "=sh1!$H$3:$K$3,sh1!$N$3:$O$3,sh1!$R$3:$S$3," & _
"sh1!$E$6:$N$6,sh1!$O$6:$AC$6,sh1!$AD$6:$BG$6,sh1!$BH$6:$BR$6," & _
"sh1!$BS$6:$CG$6,sh1!$CH$6:$CQ$6,sh1!$CV$6:$DB$6,sh1!$DC$6:DR6," & _
"sh1!$DS$6:$EH$6,sh1!$EI$6:$ER$6,sh1!$ES$6:$FA$6,sh1!$FB$6:$FD$6," & _
"sh1!$FE$6:$FF$6,sh1!$FG$6:$FH$6,"
2021/09/17(金) 22:50:14.26ID:DaER+3fZ0
続き
strb = "sh1!$E$7:$N$7,sh1!$O$7:$AC$7,sh1!$AD$7:$BG$7,sh1!$BH$7:$BR$7," & _
"sh1!$BS$7:$CG$7,sh1!$CH$7:$CQ$7,sh1!$CV$7:$DB$7,sh1!$DC$7:DR7," & _
"sh1!$DS$7:$EH$7,sh1!$EI$7:$ER$7,sh1!$ES$7:$FA$7,sh1!$FB$7:$FD$7," & _
"sh1!$FE$7:$FF$7,sh1!$FG$7:$FH$7,"
strc = "sh1!$E$8:$N$8,sh1!$O$8:$AC$8,sh1!$AD$8:$BG$8,sh1!$BH$8:$BR$8," & _
"sh1!$BS$8:$CG$8,sh1!$CH$8:$CQ$8,sh1!$CV$8:$DB$8,sh1!$DC$8:DR8," & _
"sh1!$DS$8:$EH$8,sh1!$EI$8:$ER$8,sh1!$ES$8:$FA$8,sh1!$FB$8:$FD$8," & _
"sh1!$FE$8:$FF$8,sh1!$FG$8:$FH$8,"
strd = "sh1!$E$9:$N$9,sh1!$O$9:$AC$9,sh1!$AD$9:$BG$9,sh1!$BH$9:$BR$9," & _
"sh1!$BS$9:$CG$9,sh1!$CH$9:$CQ$9,sh1!$CV$9:$DB$9,sh1!$DC$9:DR9," & _
"sh1!$DS$9:$EH$9,sh1!$EI$9:$ER$9,sh1!$ES$9:$FA$9,sh1!$FB$9:$FD$9," & _
"sh1!$FE$9:$FF$9,sh1!$FG$9:$FH$9,"
stre = "sh1!$E$10:$N$10,sh1!$O$10:$AC$10,sh1!$AD$10:$BG$10,sh1!$BH$10:$BR$10," & _
"sh1!$BS$10:$CG$10,sh1!$CH$10:$CQ$10,sh1!$CV$10:$DB$10,sh1!$DC$10:DR10," & _
"sh1!$DS$10:$EH$10,sh1!$EI$10:$ER$10,sh1!$ES$10:$FA$10,sh1!$FB$10:$FD$10," & _
"sh1!$FE$10:$FF$10,sh1!$FG$10:$FH$10,"
59デフォルトの名無しさん (ワッチョイ b7cc-W1il)
垢版 |
2021/09/17(金) 22:50:45.98ID:DaER+3fZ0
続き
strf = "sh1!$E$11:$N$11,sh1!$O$11:$AC$11,sh1!$AD$11:$BG$11,sh1!$BH$11:$BR$11," & _
"sh1!$BS$11:$CG$11,sh1!$CH$11:$CQ$11,sh1!$CV$11:$DB$11,sh1!$DC$11:DR11," & _
"sh1!$DS$11:$EH$11,sh1!$EI$11:$ER$11,sh1!$ES$11:$FA$11,sh1!$FB$11:$FD$11," & _
"sh1!$FE$11:$FF$11,sh1!$FG$11:$FH$11,"
strg = "sh1!$E$12:$N$12,sh1!$O$12:$AC$12,sh1!$AD$12:$BG$12,sh1!$BH$12:$BR$12," & _
"sh1!$BS$12:$CG$12,sh1!$CH$12:$CQ$12,sh1!$CV$12:$DB$12,sh1!$DC$12:DR12," & _
"sh1!$DS$12:$EH$12,sh1!$EI$12:$ER$12,sh1!$ES$12:$FA$12,sh1!$FB$12:$FD$12," & _
"sh1!$FE$12:$FF$12,sh1!$FG$12:$FH$12"
ActiveWorkbook.Names.Add Name:="Nyuryoku2", RefersToLocal:=stra & strb & strc & strd & stre & strf & strg
60デフォルトの名無しさん (ワッチョイ bf8c-V+sB)
垢版 |
2021/09/17(金) 23:08:43.51ID:VKkEr3i80
255文字
2021/09/17(金) 23:31:47.79ID:4pHWHBC6H
>>57
1274文字まで
質問のために加工したんでなければ、その範囲はもっとシンプルにまとめられるぞ
"=$H$3:$K$3,$N$3:$O$3,$R$3:$S$3,$E$6:$CQ$12,$CV$6:$FH$12"
2021/09/18(土) 09:25:55.38ID:85XqBE5T0
>>61
ありがとうございます。シート名を削除したら動きました
2021/09/18(土) 09:39:13.68ID:iFpkyoTBa
>>62
横から失礼
RangeはUnionにすると実質文字制限がなくなる
2021/09/18(土) 10:16:04.89ID:jMbZYEP4H
>>63
引数はRangeじゃなくてStringなんよ
65デフォルトの名無しさん (ワッチョイ bf8c-V+sB)
垢版 |
2021/09/18(土) 12:10:53.45ID:vNZ9H73d0
名前定義ってRangeオブジェクトからでもできるのか 知らなかった
Range("B1:G10").Name = "Nyuuryoku2"
2021/09/18(土) 12:26:09.80ID:FfOi19ZE0
便利だけどExcelの名前の定義ウインドウは使いにくすぎる
2021/09/18(土) 12:26:47.71ID:FfOi19ZE0
つまりたくさん定義すると管理しにくいんだよな
68デフォルトの名無しさん (ワッチョイ bf8c-V+sB)
垢版 |
2021/09/18(土) 16:41:01.37ID:vNZ9H73d0
名前の管理を簡単にする便利なアドインって誰か作ってないの?
(とおねだり)
2021/09/18(土) 18:23:53.93ID:B91oASHcM
簡単の意味を定義してくれれば俺が作ってやるよ。
2021/09/18(土) 18:33:26.51ID:y+KnaSW50
表形式ならテーブルでOK
名前の定義使わなくても
2021/09/18(土) 18:45:25.50ID:+/kaLHzEM
>>69
俺が思った通りに名前を定義してくれて、不要な名前は勝手に知らない間に削除してくれるとかかな
当然 >>57-59>>61 程度の変換は自動でやる
2021/09/18(土) 18:49:07.44ID:FfOi19ZE0
ちょっとぐぐったけど
NamesコレクションをForEachで回してユーザーフォームにでも表示させれば作れそうだな
2021/09/19(日) 00:12:03.29ID:zQBxj3q40
>>71
めちゃくちゃ簡単だな。任せとけ。
2021/09/19(日) 05:13:48.14ID:AGA6cOjvM
おう、頼んだぞ
2021/09/19(日) 10:09:24.37ID:IfToBfi40
Internet Explorer_Serverのハンドルから取得したIHTMLDocumentオブジェクトではそのページ内での操作はできましたが
Navigate実行時にメソッドをサポートしていないというエラーになります
別のURLへ移動する方法ありますか?
2021/09/19(日) 12:24:27.96ID:jno0wMDOH
>>75
たぶんメソッドの使い方が間違ってる
デバッグしてやるからコード晒してみ
77デフォルトの名無しさん (アウアウウー Sa5b-hED7)
垢版 |
2021/09/19(日) 12:45:26.42ID:/yxUr6Cya
IEのオプションでcssの設定を変える
2021/09/19(日) 14:05:15.93ID:IfToBfi40
>>76

検証中のためハンドルも直接入力してますし
コードも他のサイトの転用したものだったりかなり端折ってますが
何か解りましたらよろしくお願いします

Private Declare PtrSafe Function CLSIDFromString Lib "ole32" (ByVal pString As LongPtr, ByRef pCLSID As Currency) As Long
Private Declare PtrSafe Function RegisterWindowMessageW Lib "user32" (ByVal lpString As LongPtr) As Long
Private Declare PtrSafe Function SendMessageTimeoutW Lib "user32" (ByVal hWnd As LongPtr, ByVal msg As Long, ByVal wParam As LongPtr, ByRef lParam As LongPtr, ByVal fuFlags As Long, ByVal uTimeout As Long, ByRef lpdwResult As Long) As LongPtr
Private Declare PtrSafe Function ObjectFromLresult Lib "oleacc" (ByVal lResult As Long, ByRef riid As Currency, ByVal wParam As LongPtr, ppvObject As Any) As Long
Private Enum SMTO
NORMAL = 0
BLOCK = 1
ABORTIFHUNG = 2
NOTIMEOUTIFNOTHUNG = 8
End Enum

Sub test()
Dim hWnd As Long
hWnd = 136698
Set objDoc = GetHtmlDocument(hWnd)

'objDoc.Navigate ("https://www.google.co.jp/";)

'Googleの検索窓に入力
objDoc.getElementsByName("q")(0).Value = "test"

End Sub
2021/09/19(日) 14:06:52.91ID:IfToBfi40
続き
Public Function GetHtmlDocument(ByVal hWnd_InternetExplorer_Server As LongPtr, Optional ByVal uTimeout As Long = 1000, Optional ByVal documentVersion As Integer = 1) As Object ' As MSHTML.IHTMLDocument
Set GetHtmlDocument = Nothing

If documentVersion <= 0 Then
documentVersion = 1
ElseIf documentVersion >= 8 Then
documentVersion = 8
End If
Dim IID_IHTMLDocumentX As String
IID_IHTMLDocumentX = Split(",{626FC520-A41E-11cf-A731-00A0C9082637},{332c4425-26cb-11d0-b483-00c04fd90119},{3050f485-98b5-11cf-bb82-00aa00bdce0b},{3050f69a-98b5-11cf-bb82-00aa00bdce0b},{3050f80c-98b5-11cf-bb82-00aa00bdce0b},{30510417-98b5-11cf-bb82-00aa00bdce0b},{305104b8-98b5-11cf-bb82-00aa00bdce0b},{305107d0-98b5-11cf-bb82-00aa00bdce0b}", ",")(documentVersion - 1)
Dim InterfaceId(1) As Currency
Call CLSIDFromString(StrPtr(IID_IHTMLDocumentX), InterfaceId(0))

Dim lngMsg As Long
lngMsg = RegisterWindowMessageW(StrPtr("WM_HTML_GETOBJECT"))
If lngMsg <> 0 Then
Dim lpdwResult As Long
If SendMessageTimeoutW(hWnd_InternetExplorer_Server, lngMsg, 0, 0, SMTO.ABORTIFHUNG, uTimeout, lpdwResult) <> 0 Then
Dim hResult As Long
hResult = ObjectFromLresult(lpdwResult, InterfaceId(0), 0, GetHtmlDocument)
If hResult <> 0 Then
Err.Raise hResult
End If
End If
End If
End Function
2021/09/19(日) 14:13:18.62ID:qcTxghfBM
gethtmldocumentにnavigateあるのか?
81デフォルトの名無しさん (ワッチョイ bf8c-xsW+)
垢版 |
2021/09/19(日) 21:14:40.95ID:+Er1+t3H0
navigateじゃなくてcreateDocumentFromUrlじゃないの?
知らんけど
82デフォルトの名無しさん (ワッチョイ 9f6b-W1il)
垢版 |
2021/09/20(月) 00:12:39.27ID:wP8fgZ+m0
A1からA10000にデータが有って検索したい文字列があったとする。
この場合,範囲をdictionaryで調べるのと配列で調べるのは速度は同じぐらい??
2021/09/20(月) 00:16:46.79ID:GQS+gMma0
なぜ自分で試さないのか
2021/09/20(月) 02:45:51.50ID:KDTpyD+cH
>>82
データがセルに入ってるならワークシート関数使った方が速い
85デフォルトの名無しさん (ワッチョイ 9f6b-W1il)
垢版 |
2021/09/20(月) 10:43:06.46ID:wP8fgZ+m0
えっ?そうなの??
86デフォルトの名無しさん (ワッチョイ 9f6b-W1il)
垢版 |
2021/09/20(月) 10:44:41.60ID:wP8fgZ+m0
試しましたが、
コードはdictionaryのほうがすっきりした。
体感速度はあまり変わりませんでした。
2021/09/20(月) 10:54:05.02ID:9E+2eMtE0
かまってちゃんかよ
天気いいから散歩でもしてこいよ
88デフォルトの名無しさん (ワッチョイ bf8c-xsW+)
垢版 |
2021/09/20(月) 11:55:16.12ID:djFT0hLf0
コード醸せよ
2021/09/20(月) 12:03:32.94ID:DYg0tonqd
A・オリゼー
90デフォルトの名無しさん (ワッチョイ bf68-I2En)
垢版 |
2021/09/20(月) 12:27:59.43ID:lHEjG93V0
xxとyyどっちが早い、というのは本当に試した方が早い
バージョンアップで最適化されて、すげー早くなってる事がある
2021/09/20(月) 12:51:40.86ID:3QXihmxB0
>>87
別にかまってちゃんじゃなくて、回答に信頼性がないから自分で試したんだろう。誰かが信頼できそうな回答をくれたんだったら試さないと思うぞ。
2021/09/20(月) 13:12:45.31ID:26+LHXKYM
ちゃんと結果まで書き込んでるんだから
質問だけしていなくなるやつもいる中で、優秀だと思うよ
2021/09/20(月) 15:29:06.41ID:Ijs9yUmJM
>>86
まずはありがとうございました、だろ
うぜー帰れ
2021/09/20(月) 15:32:05.91ID:3QXihmxB0
>>93
お前何代表者みたいな顔して怒ってんだよ、とチャチャを入れてみる(笑)
95デフォルトの名無しさん (アウアウウー Sa5b-ONKb)
垢版 |
2021/09/20(月) 16:38:36.67ID:my+lQwjla
イヤ
マジで>>86はウザいわ
2度と来るな
96デフォルトの名無しさん (ワッチョイ bf8c-xsW+)
垢版 |
2021/09/20(月) 16:58:36.07ID:djFT0hLf0
スルー力がない奴もセットて消えろ
2021/09/20(月) 17:03:04.82ID:3QXihmxB0
>>96
お前もスルーしないと
2021/09/20(月) 17:07:29.03ID:FEM4xU2r0
子供か
2021/09/20(月) 17:16:52.36ID:3QXihmxB0
>>98
スルー力、言うのは易し、行うのは難し、を指摘しているだけ。

もう一ついいか?
人の振りして我が振り直せ(笑)
2021/09/20(月) 17:48:58.56ID:9E+2eMtE0
一番スルーしてない人が言うと説得力ある!
2021/09/20(月) 18:05:45.62ID:Mz1RekPdr
モジュールとボタンを別のブックにコピーしたくてできたと思ったんだけど
ボタンに登録されるマクロがコピー元のマクロになっちゃってとうすりゃええのか分からん
.OnAction=Thisbook&”マクロ名”とかじゃ動かないのね
2021/09/20(月) 18:30:41.29ID:aa1o0gq5a
それコピーじゃなくてインポートしろよ
2021/09/20(月) 18:40:40.67ID:FEM4xU2r0
>>99
寂しいのか?
104デフォルトの名無しさん (ワッチョイ bf8c-xsW+)
垢版 |
2021/09/20(月) 21:44:55.52ID:djFT0hLf0
ボタンをインポート?
これも楽な方法があったらいいのにね
105デフォルトの名無しさん (ワッチョイ bf68-I2En)
垢版 |
2021/09/20(月) 21:51:19.19ID:lHEjG93V0
シート上のフォームコントロールを消す時って
・右クリックで選択
・コンテキストメニューをESCで消す
・切り取り、もしくは「deleteキー」
で合ってますか?

選択する時はF5キーのオブジェクトでもいいんですけど、
どちらにしろ右クリックで選択というのが何か気持ち悪い
106デフォルトの名無しさん (ワッチョイ bf68-I2En)
垢版 |
2021/09/20(月) 21:58:02.93ID:lHEjG93V0
>>101
sheetモジュールのマクロ?
それとも標準モジュールのマクロ?

どちらによるかでやり方が変わる
107デフォルトの名無しさん (ワッチョイ bf8c-xsW+)
垢版 |
2021/09/20(月) 21:58:44.81ID:djFT0hLf0
Ctrl+クリック
Delete
でいいんじゃない
108デフォルトの名無しさん (ワッチョイ bf68-I2En)
垢版 |
2021/09/20(月) 22:10:20.73ID:lHEjG93V0
>>107
短縮できました、ありがとうございました
2021/09/21(火) 16:59:19.72ID:6V+SG26ea
private subのどのプロシージャーからでも、グローバル変数に入った値を取り出す方法として、

たとえばenvという標準モジュールを作り、そのなかで

public dim grobal_a as string

sub hoge
global_a = "aaaa"
end sub


とやっておき、

エクセルのブック起動と同時にこの初期値を入れておきたいので
thisWorkbookにcall hoge

ってやるの、普通?
2021/09/21(火) 18:19:02.19ID:Qqw1uu/Y0
>>106
標準モジュールのマクロですー…
2021/09/21(火) 19:19:53.65ID:Bwxe0pHra
>>110
シートに標準モジュールのやつを呼び出すSubを書いて、それをボタンから呼び出せばいい
2021/09/21(火) 20:47:40.27ID:bgKjXBpU0
>>109
まず変数のスコープ覚えようね
2021/09/21(火) 21:06:44.82ID:0m2xZsmF0
>>109
普通は grobal_a と global_a の二つを一つにまとめると思う
114デフォルトの名無しさん (ワッチョイ bf68-I2En)
垢版 |
2021/09/21(火) 21:13:59.43ID:pV6hI0Vx0
>>110
全シートを選択してカットペーストでいけるだろ、と思ったら無理だった

VBEをVBAで動かすしか無いと思う。
https://jizilog.com/vba-modadd
http://officetanaka.net/excel/vba/vbe/07.htm
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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