VBAなんでも質問スレ Part2 [転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2015/05/21(木) 10:52:44.71ID:KLv0vQmm
VBAを使った質問ならなんでもござれ
本来の対象であるオフィスアプリを操作する以外の話もOK

ゲーム作り、Webアクセス、外部アプリの操作
COM(ActiveX)、Win32API、.NET Framework、DirectXなどなど
VBAで実行するものであればなんでも質問してください

VBAを開発環境としていろいろ作っちゃいましょう

前スレ

VBAなんでも質問スレ
http://peace.2ch.net/test/read.cgi/tech/1342087380/

関連スレ

Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/tech/1419718732/

Access VBA 質問スレ Part1
http://peace.2ch.net/test/read.cgi/tech/1328536426/

VBプログラマ質問スレ(Ver.6.0 まで) part64
http://peace.2ch.net/test/read.cgi/tech/1393069842/

Excel総合相談所 118 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/bsoft/1430352555/
2019/02/09(土) 04:25:25.62ID:6oInKB58
Function一択

ByRefは古い書き方で互換性のために残してる
これから作るプログラムには使うべきじゃない
2019/02/09(土) 09:13:25.95ID:NnmcfWng
>>721
どちらでもいい状況ならFunctionの方が使い易いのでFunctionにした方がいい
あと>>724はアホだからスルーで
2019/02/09(土) 09:25:22.06ID:ThSbhyi3
ByRefが互換性維持のために存在するという話は聞いたことがないぞ
2019/02/27(水) 18:52:45.21ID:0gstYK5t
sortのcustomorderって、セル値を入れられたりはするのでしょうか?
複数のセル値を優先順位としてデータを並び替えるマクロを作成したのですが動作が遅いので改善出来ればと考えています。(forとifで判定する手法をとっています)
よろしくお願いします
2019/03/02(土) 08:39:42.60ID:PK2Geudt
標準のソート機能で出来ないことでもやるの?
駄目ならSQL使うとか。
729デフォルトの名無しさん
垢版 |
2019/03/19(火) 09:29:22.78ID:3/8oXV0g
VBAがどっとNet対応
キターーーー!
2019/03/19(火) 10:26:45.09ID:NT4YoXBH
Select from…
懐かしいな
2019/03/19(火) 11:16:03.50ID:7F9Wq7Fv
>>729
2019/03/19(火) 22:45:44.06ID:i2FNQUrb
さて、名前付き範囲ってVBA@Excelで使えないんだろうか。
もし使えたとして、実行時間はどうなのだろうか。
色々と謎が多い。
2019/03/19(火) 23:22:30.00ID:/asoePaH
>>732
それ使うと後でエラー見つけるのめんんどくさくなる
2019/03/20(水) 00:38:39.23ID:vmDq6MjZ
>>732
使えるよ
Application.Namesでコレクション取得して名前つき範囲にアクセスできるし、シートのRangeプロパティの引数ラベルとして名前をそのまま使ってセル取得できる
735デフォルトの名無しさん
垢版 |
2019/03/20(水) 16:11:53.05ID:VkiUMgxP
>>733
横からだけど、どう面倒になるの?
2019/03/20(水) 19:48:02.99ID:lxQ2zmLg
>>735
セルの編集したときに壊れてた
2019/03/20(水) 21:06:17.96ID:ad3N4bFR
名前をキーにして名前付き範囲にアクセスするときはリスト形式になってるNamesコレクションの要素に対して正規表現か何かで逐次マッチ検索してるはずだから、名前付き範囲が増えれば増えるほどアクセスが遅くなる
2019/03/21(木) 01:35:24.94ID:XMapNPTs
なんで正規表現?
完全一致でいいじゃろ?
SortedListなら量に正比例して増えることはない
2019/03/21(木) 07:27:32.08ID:u3u8nbsq
>>736
それおま環だろ
2019/03/21(木) 07:34:08.81ID:u3u8nbsq
>>737
> 正規表現か何かで逐次マッチ検索してるはずだから
なんだその意味不明な思い込みはw
普通に考えてハッシュなりB-Treeなり使ってるだろ
そもそも逐次検索だとしても遅さが気になるほど大量の名前付き範囲使う時点でなにか間違ってると思う
741デフォルトの名無しさん
垢版 |
2019/03/22(金) 17:57:33.45ID:DJ7JSKt5
会社でブラウザの検索結果のページで
いっぱいURLのリンク先が表示されるのですが
そのたくさんのURLのそれぞれを開いたページ(毎回違うけど50ページくらいある)のデータを取得するVBAのコードを考えています。
IEの定番のCreateObject("InternetExplorer.Application")とDOMツリーの方法で実現できてはいるのですが
1つ1つページを開いて取得して閉じる、という作業がネットワークの遅さで異常に時間がかかります。
この複数のページを同時で取得する方法ってないでしょうか?よく知らないけどJavaでいうスレッドみたいな?
2019/03/22(金) 18:35:53.24ID:HaipTOms
>>741
VBAはマルチスレッド非対応だから無理
743デフォルトの名無しさん
垢版 |
2019/03/22(金) 19:06:27.17ID:DJ7JSKt5
>>742
そりゃないよ、かあちゃん
2019/03/22(金) 19:28:02.41ID:s6oj+Xdm
>>741
VBAでマルチスレッドは基本的に出来ないと考えるべき。
物凄く不安定だし、Excelのオブジェクト(Rangeとか)を触った途端にExcelが消える。
で、マルチスレッドは出来ないけどマルチプロセスは出来る。

1.プログラムのブックに指定のURLのページの情報を取ってくるプロシージャを作る
2.複数のExcel.Applicationを使って、自分自身のブックを別のExcelから開くメインプロシージャを作り、その中でobjExcel.Runを使って情報を取ってくるプロシージャを動かすようにコードを書く。
3.ブックを保存する。
4.メインプロシージャを動かす

たぶん、こんな感じでできたはず。
745デフォルトの名無しさん
垢版 |
2019/03/22(金) 19:35:54.55ID:DJ7JSKt5
>>744
ありがとうございます。
しかし、もし50個URLがあれば50個新しくExcel自体を起動しないといけないのですか?
そんなことしたら激重になってしまうように思うのですが。
2019/03/22(金) 19:38:23.65ID:ls5du2vw
複数のInternetExplorer.Applicationのインスタンス立ち上げれば行けんじゃないか
2019/03/22(金) 19:57:22.45ID:HaipTOms
>>746
今それができないって会話をしてたところだけど理解してる?
2019/03/22(金) 20:04:27.42ID:ls5du2vw
>>747
どこでそれが出来ないって話をしてる?
2019/03/22(金) 20:19:56.99ID:HaipTOms
>>748
>>742
2019/03/22(金) 20:49:35.12ID:n3e2TSgf
>>741
フレームを50個並べたページのHTMLをローカルで作って開けば一気に読み込んでくれる
2019/03/22(金) 21:25:13.65ID:uvzdlIQp
なんか勘違いしてるやつがいるけど、VBAがマルチスレッドじゃないことと、IEを複数開くのはまったく別のことだからな

IEはOfficeとはまったく無関係の独立したプロセスだから、いくつでもインスタンス化できるし同時にネットアクセスできる
IEオブジェクトを配列で作っといて、ページの読み込み完了を待たずにどんどん開いてけばいいんだよ
2019/03/22(金) 22:10:54.82ID:HaipTOms
>>751
そのプロセスを制御するVBAがシングルスレッドだろ
2019/03/22(金) 22:13:33.32ID:HaipTOms
>>751
あ、開けば終わりと勘違いしてる?
2019/03/22(金) 22:13:49.76ID:LAgBLCyu
IEにタブをいくつも開いてもらって、みんな読み込んだところでおもむろに順番に処理すればいいってことだろ。
2019/03/22(金) 22:15:47.88ID:CAtaruvO
>>752
VBAはシングルスレッドだが、IEでの読み込みは同時並行的にやってくれるんじゃねえの?
756デフォルトの名無しさん
垢版 |
2019/03/22(金) 22:38:21.07ID:DJ7JSKt5
>>750

>>751
その具体的な方法をコードで例示する形で教えていただきたいのでござるよ。

いまだと
Do While readyState < 4
Do Events
Loop
の待ちを50個のURLで1つ1つ順番にやってて
1つのURLを読んでデータ取って閉じる、というのをやるのが社内ネットワークが遅いため(データベースからの読み込みも含まれるからの)1つあたり1分近くかかってる。
だから異常に時間がかかる。
一気に全部同時にやれないかなと。
2019/03/22(金) 22:40:55.80ID:tgov+uRX
そんなもんそれこそ流行りのRPAでやればいいのでは
2019/03/22(金) 22:40:56.05ID:HaipTOms
できるっていうくせにコードは出てこないのね
2019/03/22(金) 22:57:51.11ID:HaipTOms
そもそも回線が細いのはプログラムでどうこうできないから上司を説得して諦めてもらうしかない
2019/03/23(土) 01:14:24.21ID:BU4e6Kdq
趣味でやってるんじゃなかったら
適当なダウンロードソフト使ったほうが良いんじゃない
2019/03/23(土) 12:00:24.62ID:36Js1rz1
動くかどうか試してないけど、こんな感じでいいんじゃない?
もう少し効率を上げるなら、読み込めたページからさっさと処理してもいいし

Sub test()
  pg = 50   ' 同時に開きたいページ数
  Dim ie() As Object
  Dim url() As String
  ReDim ie(pg-1)
  ReDim url(pg-1)
'ここでURL設定
  For i = 0 To pg-1
    Set ie(i) = CreateObject("InternetExplorer.Application")
    ' ie(i).Visible = True  '表示しない
    ie(i).navigate url(i)
  Next
  Do
    flg = True
    For i = 0 To pg-1
      If ie(i).readyState < 4 Then
         flg = False
      End If
    Next
  Loop Until flg  '全ページの読み込み待ち
'ここで読み込んだページを処理
End Sub
762デフォルトの名無しさん
垢版 |
2019/03/23(土) 15:33:38.79ID:BqJUz3fJ
>>761
ありがとうございます。
試してみます。
最初のFor Nextループがものすごく時間がかかりそうで楽しみです。
あと先日は説明の簡略化のためにシンプルに書いたけど
実は開いたURL内で、ある条件があると、さらにその親URL内のAリンクの子URLも開かないといけない複雑な事情があるのです。
2019/03/23(土) 19:47:18.63ID:h2FSWEPH
>>761
Exit For抜けてますよ
フラグも i = pg-1まで行けたときに立たせるだけで十分だと思います

あと、非表示でIEを50立ち上げると中断した時のプロセスの掃除が大変なので、Ajaxで無ければXMLHTTP60を使うのも手かもしれません。
2019/03/24(日) 00:51:51.95ID:gZMjxNOF
>>752
まさかIEオブジェクトの読み込み動作がVBAのスレッドで処理されてると思ってるのか?
>>753
終わりじゃないので考慮点はある

コード書こうかと思ったけど、>>761さんが書いてるからまあいいか
読み込み完了の検出とかどうするか悩みどころではある
イベントハンドラの動的設定か、せめてWithEventsが配列にも宣言出来ればなぁ

まあ50も多重化してもオーバーヘッドかかるだけで高速化しない気がするから
数個固定で持たしてイベントハンドリングするのが現実的かもしれん
2019/03/24(日) 01:34:57.18ID:Y3S3b5Ai
この場合Do Loopを抜ける条件が全ページの完了だから、Exit Forはあってもなくても結果というかスピードは変わらないね
さっさと抜けたところで、またForループに戻るだけだし

個人的には「pg - 1」が何回も出てくるのが美しくないなあとか、ForとDoの順番を逆にした方がコンパクトになりそうだなあとか
2019/03/24(日) 01:38:23.22ID:Y3S3b5Ai
一括処理なら、この方がコンパクト
まあ、ホストの応答速度や、次の処理の内容次第では終わったページからどんどん片付けた方がいいだろうけど
For i = 0 To pg-1
Do
Loop Until ie(i).readyState >= 4
Next
2019/03/24(日) 08:29:39.64ID:myNgr9GS
>>765
> 個人的には「pg - 1」が何回も出てくるのが美しくないなあとか
C言語とかに慣れてるんだろう
VBA的には
ReDim ie(1 To pg)
ReDim url(1 To pg)
For i = 1 To pg
だろうね
可能であればieとurlをTypeで纏めてそれを配列にした方が見易い
2019/03/24(日) 08:58:33.34ID:Mw3X0nZC
>>766
ははは、これは笑った。確かにこれが単純明快でコンパクト w
2019/03/24(日) 10:28:46.47ID:3PVCt58k
>>766
それだとサイズのでかいページで待ちが発生する

Do
For i
If ie(i)準備完了 And i.処理フラグFalse then
処理
処理フラグTrue
カウント
End if
Next
カウント=50 exit
Loop
2019/03/24(日) 10:33:07.42ID:Mw3X0nZC
>>769
投げてからの待ちだからいいんじゃねえの?
俺はやったことないから知らんが、投げたらあとはIEが並行処理で取ってくるんだろ
で全部取ってから次の処理なら問題ない
でかいページでVBAが待っていても同時に他のページもIEが取って来てるんじゃねえの
だからでかいページで待っていてもそれが終わったら他の軽いページも取り終っていてあとは
ばたばたと進んで終了、と理解している
2019/03/24(日) 10:52:55.88ID:Mw3X0nZC
>>769
ああ、すまん。それがわかってる上で待ち時間がもったいない、ということね
>>766もそこは注意書きはしているな
772デフォルトの名無しさん
垢版 |
2019/03/24(日) 10:56:37.24ID:OZ1kvGmt
IEはマイクロソフトも使うなって言ってるのに
VBAって不便だよね
2019/03/24(日) 11:58:25.29ID:yYEn14s6
IE使えなくなったら、どうやってブラウザ制御するの?
UIAutomation面倒くさいかから、
2019/03/24(日) 11:58:47.29ID:yYEn14s6
getElementByしたいんだけど。
775デフォルトの名無しさん
垢版 |
2019/03/24(日) 12:34:48.16ID:4ve/ST91
IE使えなくなったらってもう使ってる人なんていない
セキュリティに甘いとこは使えるのか?
2019/03/24(日) 13:28:35.85ID:Y3S3b5Ai
ちゃんと動くのか試してみた
たしかにIEが複数開いて、平行処理でページを取ってくるね
VBAのシングルスレッドとか完全に無関係やん
2019/03/24(日) 13:33:22.28ID:gDjNFFGJ
>>776
まだそこ?
2019/03/24(日) 13:36:50.26ID:PYh3zpOu
大昔からあるファイルシステムだって非同期読み書きできる
1000倍遅いネットワークで出来ないはずがないだろうが
2019/03/24(日) 13:55:48.62ID:gDjNFFGJ
>>778
無能管理職かよ
2019/03/24(日) 14:55:03.02ID:gZMjxNOF
現実的には50並列で全ページ完了待ちするのはどうもなぁ

あと全力でループまわして完了待ちするのも無反応になるんじゃね
とりあえずDoEvents挟もうぜ

>>776
スレッド以前に、IEオブジェクトが別プロセスだから
アウトプロセスのCOM使うのはVBAで並列やる、おそらく安全で簡単な唯一の方法
まあCOM作る方は大変だがな

>>777
OSがサポートしてるだけで、VBAから使えるかどうかとは別の話
VBAで非同期並列やりたければ、基本的にはイベントベースでしかサポートされていない
2019/03/24(日) 17:00:18.75ID:cASdygc2
>>776
これ、1つずつ待つ部分がVBAでマルチにしたいって話だったけどCreateObjectで既に別プロセスだから全部投げてから全部の完了を待つので正解なんだよな。

勘違いしてマルチプロセスでやろうとしちゃったよ。
ついでにApplication.Runで出来なくて、迷ってたんだけど、またまた勘違いでApplication.OnTimeが正解だった。
でもOnTimeって戻り値が取れないんだよな。
2019/03/24(日) 17:02:38.91ID:cASdygc2
あと、ExcelVBAスレにあるようにInternetExplorer.Applicationじゃなくて別のオブジェクトの方が早いと思うよ。
2019/03/24(日) 17:15:34.95ID:3PVCt58k
講釈垂れはいいからコードはよ
2019/03/24(日) 17:48:52.18ID:yrUzMInJ
とりあえずDoEvents。
2019/03/24(日) 21:00:07.33ID:IVIO7oct
取りあえず書いてみたんだが、1つずつ待っても速度が変わらん。
テスト用に繋げた所があんまり時間が掛からん所でReadyStateのループに入らんのよ。

取りあえずInternetExplorer.Applicationはやっぱり遅かった。
59個のURLから同じ場所にある特定のデータを取ってくる処理でMSXML2.XMLHttpなら5秒のところIEだと60秒くらい掛かった。
2019/03/24(日) 23:42:52.24ID:Y3S3b5Ai
IEを普通にUIを持ったアプリケーションとして開けば、クッキーや画面のレンダリングからアクセス履歴の更新やキャッシュの整理までいろんな処理が走るから、そりゃ実質GETだけのXMLHTTPと比べたら遅くなるのは当たり前と言うか

>>785
画像検索にそれぞれ違うキーワードを設定すれば、それなりに時間がかかるようになるから負荷のテストにはおすすめ
2019/03/25(月) 08:15:58.30ID:O3TyiYmg
>>786
そんなことは知ってるが、ここの話で具体的なのがIEだから、いやいや、IEはこんなに遅いですよと注意喚起したんだよ。

まあ、Script関連でIEじゃないと駄目な場合もあるけどね。
2019/03/25(月) 21:50:57.49ID:D+uIa6Au
真のエクセラーならieなんか使わずにwebクエリーとか使って何とかするべきだろうが
2019/03/25(月) 23:08:06.35ID:DuFQaNpH
getElementByもWebクエリも使ったことあるけど、
Webクエリはどうやって取ってきてるのか謎。
2019/03/25(月) 23:19:23.02ID:XpTM98r8
レンダリングしないでペイロードのパースだけやってるんでしょ
2019/03/26(火) 00:39:52.05ID:ke9zWH00
誰もSelenium basic使わんの?
IE使わなくていいしセッション維持とかも楽だぉ?
2019/03/26(火) 18:58:02.34ID:ADoE3fhW
readystateが信用ならんのがな
completeになっても完全に読み込めてなくてその後の要素取得処理に失敗とか高確率で起こるし
WinHTTP使うのが確実だと思う
793デフォルトの名無しさん
垢版 |
2019/03/26(火) 22:23:16.17ID:0P7j5sat
>>791
x だぉ
o だよ
正しい日本語を使いたまえ
2019/03/26(火) 23:48:15.28ID:KxwbGcFA
結局Do LoopとOn Error Resume Nextで逃げるしかないっていう。
795デフォルトの名無しさん
垢版 |
2019/03/27(水) 00:00:47.48ID:sk2gWEk1
>>794
x 結局Do LoopとOn Error Resume Nextで逃げるしかないっていう。
o 結局Do LoopとOn Error Resume Nextで逃げるしかないっていうことですね。
正しい日本語を使いたまえ
2019/03/27(水) 00:54:24.99ID:bUJXWn5A
口語体が理解できないやつが正しい日本語とか
2019/03/27(水) 06:30:58.48ID:61Xepw/0
アスペかしら…
2019/03/27(水) 07:39:47.73ID:qB5RyyD6
では、教えてくれ。
正しい日本語の"正しい"とはなんのことだ。
先に言っておくが、国語辞典や義務教育は関係ないぞ。
2019/03/27(水) 08:38:29.06ID:oJzskUWb
>>798
お前のようなノイズではないこと
2019/03/27(水) 12:48:07.16ID:Mdwmg5PN
>>798
国語辞典や義務教育関係ないと言うのならば口語体でも問題ないと思うが…。
例えば力不足、役不足のように意味を間違えて使っていては当然正しい日本語ではないが、今回の様な場合では相手方に伝われば良いということにならないか。
2019/03/28(木) 20:50:35.86ID:GAoTTZZk
関西弁は正しい日本語ではない
2019/03/28(木) 20:59:08.44ID:M/yCVQ4H
正しい日本語とは
803デフォルトの名無しさん
垢版 |
2019/03/28(木) 21:53:50.06ID:cIkPDI6N
>>796
x 口語体が理解できないやつが正しい日本語とか
o 口語体が理解できないやつが正しい日本語とかどういうこと?
2019/03/28(木) 23:24:25.12ID:Q+Q3MpKo
長いのでWithするかSetしましょう。

With 口語体が理解できないやつが正しい日本語
  とか = ×
  とかどういうこと? = 〇
End With
805デフォルトの名無しさん
垢版 |
2019/03/28(木) 23:39:02.51ID:cIkPDI6N
Sub CorrectJapanese()
Dim text As String
Dim inputText As String
text = "口語体が理解できないやつが正しい日本語とか"
inputText = InputBox("あなたの日本語は?")
If inputText = text Then
MsgBox "アホ"
ElseIf inputText = text & "どういうこと?" Then
MsgBox "そのとおり"
End If
End Sub
2019/03/28(木) 23:57:12.09ID:OmRArJOr
日付フィルターを使うときにCriteriaに設定する値って、必ず一旦Double型に型変換したDate型データをもとにしてFormat変換しなきゃいけないのかな?
Date関数の戻り値をそのままFormat変換してもうまくフィルターがかからなくて危うくハマりかけたんだが、後学のために識者がいたら教えてほしい
2019/03/29(金) 00:17:35.48ID:PdUuDb+g
まともなレスには異論返せないのな
808デフォルトの名無しさん
垢版 |
2019/03/29(金) 00:47:46.11ID:MmeaYZo8
>>807
x まともなレスには異論返せないのな
o まともなレスには異論返せないのね
2019/03/29(金) 06:46:41.33ID:YUbMxDIL
>>804
ピリオド抜けてる
2019/03/29(金) 12:23:42.03ID:Fu/JMZl+
異論返せていないまともなレスとはどれ
2019/03/29(金) 12:35:07.47ID:7DnII+1F
>>810
この辺りじゃないか?
>>799
>>800
2019/03/29(金) 12:37:39.38ID:FHKNInbw
どうでも良いことで延々と論じるのは如何なものか。
2019/03/29(金) 18:52:59.03ID:DRFZR9Lo
>>809
シンタックスエラーになります
2019/03/30(土) 09:25:26.20ID:Fw0ogXHz
VBAで実行時にシンタックスエラーが出るのはどういう場合だろう
デフォルト設定だと1行入力ごとに構文解析するし
2019/03/30(土) 09:27:30.74ID:uS2atdcl
>>814
それ、1行ごとの構文解析だろ
For Next Do Loop If End If
のチェックまではしてないと思うぞ
2019/03/30(土) 09:28:29.64ID:uS2atdcl
ああすまん。これってシンタックスエラーではないんだっけ
でもエラーになるよね
2019/03/30(土) 09:41:55.36ID:Fw0ogXHz
Nextを書かなかった場合は
「コンパイル エラー:For に対応する Next がありません。」
だった

もしシンタックスエラーのエラーコード(変数Errの値)が存在すれば出る可能性があるってことだと思うけど、コードの一覧てどこにあるんだ?
検索してVBのは出るけどVBAのが見つからん
2019/03/30(土) 09:49:53.73ID:uS2atdcl
シンタックスって言葉自体は構文規則だけど、コンパイルエラーって出るんだね
819デフォルトの名無しさん
垢版 |
2019/04/06(土) 00:50:26.14ID:ocPEvB9Z
ExcelVBAでListViewを参照設定で追加して
フォームに配置して使っているんですが、
別フォームからshowしてすでに項目をいくつか追加してある
ListViewのあるフォームを表示したときに
ListViewをアクティブ(そのままの状態から矢印キーで項目を選択できるようにする)
にすることは可能ですが?
例えば

Public Sub UserForm_Active()
With listview1
.ListItems(1).Select
.SetFocus
End With
End Sub

とした場合に、フォーカスは確かにListView1にあるのですが、
その状態では項目が矢印キーの上下で選択することができません。
ListView1.SetFocusではListView1全体にフォーカスはあるが
肝心の中身の項目にはフォーカスがない状態ということなのでしょうか?

なにかよい方法はありますでしょうか?
2019/04/07(日) 19:10:32.15ID:nvpN9j7Q
sendkeysで Alt↓までやっちゃうとか
あまりおすすめできる方法ではないが
2019/04/21(日) 00:26:59.66ID:WKly27nG
このスレは生きてますか
2019/04/21(日) 17:39:05.84ID:VJZKP3mE
一応生きてるでしょ。
2019/05/10(金) 13:15:01.20ID:SsAAf7AE
VBA勉強中のものです。

Setステートメントを勉強しているのですが、オブジェクト型についてお聞きしたいです。RangeオブジェクトとかWorksheetオブジェクトなど、いろんなサイトなど見ても使いどころがよくつかめてないです。

どんなときに使うのか、教えてもらえるとありがたいです。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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