• ベストアンサー

Range

xlsheet.Range(xlsheet.Cells(3, 1), xlsheet.Cells(lngMaxRows + 2, intvasRate_Col_KeiyakuName - 1)).Value = varExcelData 上記のプログラムで「Range」が記述されているのですが、どう意味でしょうか?。このステップだけ解析できません。お助け下さい。 どうぞよろしくお願い致します。

  • hfc
  • お礼率84% (124/147)

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

  • ベストアンサー
  • mfuku
  • ベストアンサー率50% (173/345)
回答No.3

まず、xlsheet.Rangeのカッコ()内を見ます。 (1) xlsheet.Cells(3, 1) は3行目1列目のセルを指してます。 (2) 次に、 xlsheet.Cells(lngMaxRows + 2, intvasRate_Col_KeiyakuName - 1)). は、【lngMaxRows + 2】行目【intvasRate_Col_KeiyakuName - 1】列目のセルを指してます。 Rangeオブジェクトは、セルの範囲を示しますので、 (1)から(2)の範囲のセルに、varExcelData変数の値をセットする(Valueプロパティ)という意味になります。

hfc
質問者

お礼

早々のご回答ありがとうございます。 すごく分かりやすかったです。 なんと言う説明の美味さ。流石です。 今後ともよろしくお願い致します。

その他の回答 (2)

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

2次元配列を使って、一気にセルに代入する手法ですね。 http://oshiete1.goo.ne.jp/kotaeru.php3?qid=492282 http://support.microsoft.com/default.aspx?scid=kb;ja;JP414107

hfc
質問者

お礼

早々のご回答ありがとうございます。 2次元配列でしたか。 勉強させて頂きました。

  • Mizyu
  • ベストアンサー率41% (245/593)
回答No.1

Excelを使うプログラムですね。もしくはExcelのマクロでしょうか。 Rangeとはカンタンに言うと複数(単数でも可)のカラムを纏めたものです。 普通にエクセルを使ってても □□□□□□□□ □□□■■■□□ □□□■■■□□ □□□□□□□□ このように複数を同時に選択できますよね。 それと同じことで、複数選択の左上のセル、右下のセルを指定することでその範囲のRangeを取れます。 なので > xlsheet.Range(xlsheet.Cells(3, 1), xlsheet.Cells(lngMaxRows + 2, intvasRate_Col_KeiyakuName - 1)).Value = varExcelData は 3,1のセルと lngMaxRows + 2, intvasRate_Col_KeiyakuName - 1のセルのValueに対しvarExcelDataを与えているのではないかと思います。

hfc
質問者

お礼

早々のご回答ありがとうございます。 そして、分かりやすいご説明痛み入ります。 よく分かりました。

関連するQ&A

  • Range("****")の****部分を変数にできますか?

    エクセルでVBAを勉強中の初心者です。 今、配列data(row,col)に番地B17が読み込んであるとします。このセルB17にD5のセルに入っている値を入力したいのですが、次の記述ではエラーがでました。この場合どのようにすれば良いのでしょうか。どなたかご指導いただけないでしょうか。 Range(data(row,col).value)=range("D5").value

  • range表記をcells表記にしたい

    B列の最終行までループさせたいのですが Sub Sample() Dim col As Long col = 2 For Each R In Range("B1:B" & Cells(Rows.count, "B").End(xlUp).Row) Next End Sub この状態から、Bを使わずに、 col = 2を使って、書き換えてもらっても良いですか? For Each R In Range(Cells(1, col), Cells((Rows.count, col)).End(xlUp).Row) これにするとエラーになります。

  • VBA Range・Cellsプロパティについて

    下記のコードについて質問致します。 Sub 特定のセルをコピー() Dim rw2 As Long Dim rw1 As Long Dim newdate As Date With Worksheets("steet1") rw2 = .cells(.Rows.Count, "c").End(xlUp).Row newdate = .Range("c" & rw2).value For rw1 = rw2 - 1 To 1 Step -1 If .Range("c" & rw1).value <> newdate Then Exit For Next rw1 .Range(.cells(rw1 + 1, 1), .cells(rw2, 1)).Copy     '(1) Worksheets("steet2").Range("v6").PasteSpecial xlValue End With End Sub (1)部分のコードの意味が分かりません。 よろしくお願いします。

  • RangeとCellsの違いとこのプログラミングの意味

    Sub... y=Worksheets("sheet2").Cells(25,13).Value Worksheets("sheet1").Range("B13").Value=z これの意味を階層構造を含めて答えよ。 自分はzの値をyに代入するという意味だと思うのですが、それではだめで階層構造を含めてかけと言われるとわかりません。 どのような意味があるのでしょうか。 また、RangeとCellsの違いを教えてください。 お願いします!

  • range cells 名称があれば教えてください

    MsgBox range("a1").Value MsgBox Cells(1, 1).Value どちらもセルA1の値を取得できるコードですが それぞれ何方式っていう名称があれば教えてもらえますか? 上はRange方式、で下は、Cells方式でしょうか? (エクセルvbaです)

  • VBAのCopyコマンドについて

    エクセルVBAでシート3のRangeの値をからシート2のRangeへデータをコピーしようとしているのですが Sheets(3).Range("B3:B100").Copy _ Sheets(2).Range(Cells(3, col2 - 1), Cells(100, col2 - 1)) がうまくいって、 Sheets(3).Range(Cells(2, col1), Cells(100, col1)).Copy _ sheets(2).Range(Cells(2, col2), Cells(100, col2)) が何故、オブジェクト定義エラーになってしまうのがわかりません。 col1、col2は列の変数です。 よろしくお願いします。

  • RangeとCells

    Rangeオブジェクトで使えるメソッドやプロパティは、Cellsでも使えるのですか。 多分そうだろうと思うのですが、断定できる情報が見当たりません。 ヘルプで明確な記述が有る記事等あれば教えて下さい。 宜しくお願いします。

  • Rangeなどを変数でエラー

    Excel VBAについて。 以下のコードで「オブジェクトは、このプロパティまたはメソッドをサポートしていません」 エラーが発生します。原因は何でしょうか? Sub A() Dim stest Set stest = Worksheets("TEST") Dim ra Set ra = Range("C2") stest.ra.Value = Sheets("Sheet1").Cells(i, 2).Value ★ End Sub ★をSheets("TEST"). Range("C2").Value =略 のように、変数を使わずに記述するとエラーになりません。

  • RangeプロパティとCellsプロパティ

    お世話になります。 現在、VB.NET2003からExcel2003を操作するプログラムを作成しているのですが、基本的な点が一つ、わかりませんので、教えていただけないでしょうか? Range("C5")は、Cells(5,3) Range("B1:D5")は、Range(Cells(1,2), Cells(5,4))、 と表すことが出来ますが、 Range("A1:E1,A4:E7")はCellsプロパティではどのように指定すればよろしいのでしょうか? 以上、宜しくお願いいたします。

  • ExcelVBA 変数を使ってセルを指定して,コピー

    mySt.Range( _ mySt.Cells(LstRw, 11), _ mySt.Cells(LstRw, 11)).Value = _ _ Worksheets("Q"). _ Range(Cells(8, 6), Cells(8, 6)).Value 上のプログラムで動きますが, mySt.Range( _ mySt.Cells(LstRw, 11)).Value = _ _ Worksheets("Q"). _ Range(Cells(8, 6)).Value こうすると動きません. なぜでしょうか?