• ベストアンサー

Excel VBA :URLの中で変数を使用する方法

Excel VBAで、連続したURLが存在しているかどうかを確認したいと 思っております。 そこで、下記のように変数を作成しURLを確認するようにしたのですが、 Dim i As Long For i = 1 to 1000 Me.WebBrowser1.Navigate "http://*****.co.jp/"+(i)+".html" や Me.WebBrowser1.Navigate "http://*****.co.jp/(i).html" などとしたのですが、どうしてもiを変数として受け取ってくれないの です。どのようにすれば(i)を変数として認識するか、教えていただき たいのですが、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.2

"http://*****.co.jp/(" & i & ").html" が正解

toroki
質問者

お礼

御解答ありがとうございます。変数の使用方法がまた一つ勉強になりました。ありがとうございました。

その他の回答 (1)

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

"http://*****.co.jp/" & i & ".html" でどうでしょうか。

toroki
質問者

お礼

ありがとうございます。無事に出来ました。 今回は本当に勉強になりました。

関連するQ&A

  • エクセル VBA 変数を一括で宣言したい

    こんにちは。VBAプログラム初心者です。 変数を宣言する際、 dim オーダ番号 as long, オーダ番号2 as long, …オーダ番号100 as long という内容を一括で宣言することは可能でしょうか? イメージ的には下のような感じなのですが。。。 dim i as integer for i = 1 to 100 dim オーダ番号i as long dim 単価i as long next マクロで便利にするつもりが余計面倒になっていて困っております。 解決策を教えていただけましたら幸いです。 何卒よろしくお願いいたします。

  • エクセルVBAでの変数

    いつもお世話になります。 今回の『壁』は”変数”です。 変数の中に更に変数を持たせることはできますか? 何をしたいかと言いますと… dim mon1 as string dim mon2 as string dim mon3 as string dim mon4 as string dim mon5 as string dim tue1 as string dim tue2 as string …というように月曜から日曜までの頭3文字プラス1~5の組み合わせの変数を作りたいのですが、 この調子で作っていくと35コになってしまいます。 そこで、曜日の頭3文字より後ろは決まって1~5のため、 dim i as integer for i = 1 to 5 next i …と組み合わせられないかと思ったのです。 どなたか知恵をお貸しください。 よろしくお願いします。

  • VBAにおいて、""内で変数を使用したい

    VBAにおいて、""内で変数を使用したい 0864_001.xls 0864_002.xls … 0864_009.xls というファイルがあるとき、0864_001.xlsを開く→処理→閉じる→0864_002.xlsを開く→… というように処理をしたいと思い、以下のようなマクロを作成しました。 Sub Test() Dim i As Integer For i = 1 To 9 Workbooks.Open ThisWorkbook.Path & "\0864_00i.xls" 処理 閉じる Next i End Sub 実行しようとしてもファイルを開くことが出来ずに困っています。 ""内で変数を使うことは出来ないのでしょうか? また、どのようにすれば実行できるようになるのか教えてください。

  • VBAの変数について

    VBAでUserFormからデータを入力します。 入力された各データをTarget1~Target20に代入します。 各Targetにデータが入っている場合は、配列K(i)に「1」を格納します。 そこで、Target "1"~"20" を変数iであらわしたいのですが、どのように表現したらよいのでしょうか。 Dim i As Integer Dim K(20) As Integer Target1 = TextBox1.Value Target2 = ComboBox1.Value : : Target19 = TextBox12.Value Target20 = ComboBox8.Value For i = 1 To 20 If 『  ?   』 <> "" Then K(i) = 1 EndIf Next i

  • EXCEL VBA2010 MsgBox

    Sub 重複() Dim i As Long, j As Long For i = 6 To 500 For j = 3 To 3 If WorksheetFunction.CountIf(Range("C6:C500"), Cells(i, j)) > 1 Then Cells(i, j).Interior.ColorIndex = 6 End If Next j Next i End Sub このVBAに重複が何件ありますよというメッセージを出したいです。 MsgBoxの入れ方を教えてください。

  • Excel VBAでCheckboxの名前を変数にとって値を調べたい

    Excel VBAでCheckboxの名前を変数にとって値を調べたいのです. シートにCheckboxがたくさん貼ってあり名前とOn,Offを調べたいのですが下記では名前は調べられてもOn,Offが確認できないのですが On,Offを別変数にとる場合タイプはなににすればいいでしょうか。 たとえば dim i as integer dim checkname() dim checvalue() as ???? i=0 for i=1 to 2 If Mid(ActiveSheet.Shapes(i).Name, 1, 5) = "Check" Then i=i+1 redim preserve checkname(i) checkname(i)=ActiveSheet.Shapes(i).Name redim preserve checvalue(i) checvalue(i)=ActiveSheet.Shapes(i).value <---これではエラー end if next i

  • エクセルVBA 数値の桁数を揃え、つなぎたい

    エクセルVBA、初心者です。 以下の記述でつまづいています。 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ Dim i As Long 'i は行数を For~Nextで変数にしてます Dim Hbc As Long, Hbc2 As Long 'Hbc は最大11桁の変数 Dim Tsc As Long, Tsc2 As Long 'Tsc は最大5桁の変数 Dim Cd As Long, Cd2 As Long 'Cd は最大4桁の変数 Dim HTC As Long      |      |    長い為、省略      |      | Hbc2 = 100000000000 + Hbc '(1) Tsc2 = 100000 + Tsc Cd2 = 10000 + Cd HTC = Right(Hbc2, 11, 11) & Right(Tsc2, 5, 5) & Right(Cd2, 4, 4) Wks1.Cells(i, 1).Value = HTC ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ Hbc、Tsc、Cd は、データベースから取得した数値が入りますが、 桁数がバラバラな為、頭に0を表示してそれぞれの最大桁数に揃えたいのです。 桁数を揃えた後、3つをつないで HTC とし、i 行目の1列目に表示しようとしています。 下記がつまづいて、解決できないでいるトコロです。 ************問題点************ (1)の行の Hbc2 = 100000000000 + Hbc という記述が Hbc2 = 10000000000# + Hbc に置き換わってしまいます。 *************************** なにぶん、初心者で、単純な間違いかもしれませんが、 どうかご指導、宜しくお願いします。

  • Excel マクロ:変数を複数使う場合

    マクロ初心者です。 For文で、変数を2つ定義し、それぞれが1つずつ増えてくれるような マクロを組みたいのですが、うまくいきません。 例えばA列の並んだ数字を、B列に一個とばしで入力するとして・・・ 例) Dim i As Integer Dim j As Integer For j = 2 To 10 Step 2 For i = 1 To 9 Cells(j, 2).Value = Cells(i, 1).Value Next i, j ではだめですよね。iが1つ増える時に、jも1つ増える、 というようにVBAを組むことが可能なのでしょうか? ど素人な質問ですみませんが、教えてください。

  • エクセルVBA:ある有名な方のサイトで・・・

    VBA初心者です。よろしくお願いします。 いま、VBAを勉強しています。 有名なT氏のエクセルVBAに関するサイト(オフィスT・・)の、「高速化テクニック」のところで、下記、★ ★ ★以下のような例がありました。 「Cells(j, 1).Font.FontStyle = "太字"」 が目的の作業であるならば、 「Dim i As Integer」「For i = 1 To 100」を何のために宣言し、記述しているのでしょうか?「j」の変数の宣言は「Cells(j, 1).・・・」で理解できますが、「i」の宣言また、「For i = 1 To 100」は不要のように思われるのです。 最初は何かの間違いかと思っていましたが、同氏の他の解説にも同様の記述がありましたので、きっと、意味があるのですね。教えてください。 ★ ★ ★ Sub Test2() Dim i As Integer, j As Integer For i = 1 To 100 For j = 1 To 10 Cells(j, 1).Font.FontStyle = "太字" Next j Next i End Sub

  • EXCEL VBA 配列変数の値すべてを返すには

    EXCELは2002ですが、97でも動くと嬉しいです。 《質問》 1~10をランダムに並べるためのプログラムを書きました。 これはこれで動くのですが、一行(3行目)だではなく 4行目にも、5行目にも同じことをしたい場合、 バブルソートの部分をサブルーチン(関数)にしたいのですが X_v() = GetSortArray(n_s,n_v)()とはできません。.cloneもだめですよね。 かといって、要素毎に引くとその度にRndが効いて、1~10が並びません。 どのようにやるのが、スマートなのでしょうか?よろしくお願いします。 《以下プログラム》 Sub Bu_Click() Dim i As Integer Dim j As Integer Const n_e = 10 Const n_s = 1 Dim X_r(n_e) As Long Dim X_v(n_e) As Long Dim temp1 As Long Dim temp2 As Integer Randomize For i = n_s To n_e X_r(i) = Int(Rnd * 10 ^ 9) X_v(i) = i Next i For i = n_s To n_e - 1 For j = n_s To n_e - 1 If X_r(j + 1) < X_r(j) Then temp1 = X_r(j + 1) X_r(j + 1) = X_r(j) X_r(j) = temp1 temp2 = X_v(j + 1) X_v(j + 1) = X_v(j) X_v(j) = temp2 End If Next j Next i For i = 0 To n_e - 1 Cells(3, 3 + i).Value = X_v(i + 1) Next i End Sub Public Function GetSortArray(s As Integer, e As Integer) As Long() Dim r() As Long Dim v() As Long Dim temp1 As Long Dim temp2 As Integer ReDim r(e) ReDim v(e) Randomize For i = s To e r(i) = Int(Rnd * 10 ^ 9) v(i) = i Next i For i = s To e - 1 For j = s To e - 1 If r(j + 1) < r(j) Then temp1 = r(j + 1) r(j + 1) = r(j) r(j) = temp1 temp2 = v(j + 1) v(j + 1) = v(j) v(j) = temp2 End If Next j Next i GetSortArray = v() End Function ありゃ?Tabのスペース消えますね。

専門家に質問してみよう