Access (VBA)

Access VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 7 Home Premium : Access 2016)
変数の記載方法について教えてください
投稿日時: 17/05/15 19:56:54
投稿者: 縞縞縞

いつも大変お世話になっております。
コードの記載方法がわからないため質問いたします。
 
例として下記のようなコードを記載しました。
コード中のobjIE○の「○」が数字(1〜9)になります。
その場合、どのような変数を含む場合コードを記載すればよいのでしょうか?
 
  '例:Webを表示させるコード
  Dim objIE1 As Object 
  〜途中略〜
  'IEを待機
  Do While objIE○.ReadyState <> 4
     Do While objIE○.Busy = True
     Loop
   Loop
 
エラーになってしまった記載「エラー 424」
  Dim objIE1 As Object 
  Dim C as string
  C = 2
  〜途中略〜
  'IEを待機
   Do While objIE & C.ReadyState <> 4
     Do While objIE & C.Busy = True
     Loop
   Loop
 
正しい記載例をご教授願います。
よろしくお願いします。

回答
投稿日時: 17/05/15 20:37:24
投稿者: i-brown

中略が多くて確定的なことは言えませんが

Dim objIE(9) As Object

でobjIE(0) 〜 objIE(9)まで使えます。

投稿日時: 17/05/16 08:53:27
投稿者: 縞縞縞

i-brown様
 
早急なご対応誠にありがとうございます。
私の質問の仕方が悪く大変申し訳ございません。
困っているのは、文字と変数の連結の仕方伺いたかったです。
 
Dimを用いて、Object型でobjIE1を宣言しましたが、
"objIE"と"1"を連結させたいです(数字は変数を用います)
そこで下記のように&で連結したのですが、
「エラー424 オブジェクトがみつかりません」と表示されてしまいます。
”&”で連結させたいのですが、どのように記載してよいかわかりません。
 
objIE & C.ReadyState
 
質問の仕方が悪くお手数をおかけしますが
改めてご教授頂けないでしょうか。
よろしくお願い申し上げます。

回答
投稿日時: 17/05/16 09:47:53
投稿者: hatena
投稿者のウェブサイトに移動

やりたいことは、
 
Dim C As Long
Dim objIE0 As Object
Dim objIE1 AS Object
Dim objIE2 AS Object
Dim objIE3 AS Object
・・・・
 
と変数宣言しておてい、
 
C = 2
objIE & C.ReadyState
 
というようなコードで、objIE2 にアクセスしたい、
ということですよね。
 
& は文字列を連結するものですので、変数と変数を連結することはできません。
 
ですので、代案として、i-brownさんは、配列変数を使うことを提案しています。
 
Dim objIE(3) AS Object
 
C = 2
objIE(C).ReadyState
 
これで複数のオブジェクトに数字でアクセスできます。
上記の宣言で
objIE(0) 〜 objIE(3) の4つのオブジェクトを宣言したことになります。

回答
投稿日時: 17/05/16 13:03:03
投稿者: NoLookUp

縞縞縞 さんの引用:

objIE & C.ReadyState

「配列変数を使うな!」という仕様縛りなら、
Choose(C, objIE1, objIE2, 〜, objIEN).ReadyState
という手法も考えられます。
 
しかしながら、回答者諸兄方がおっしゃってるように配列変数を利用するのがプログラミング的には最良策と感じられます。
 

トピックに返信