- ベストアンサー
Excelのセルアドレスの指定方法
VB2008でExcelの操作をしている初心者です。ファイルを開き、シートを指定しセルのデータを読み込むまではなんとかたどり着きましたが、セルへのデータ書き込みが出来なく困っています。下記のようにセルアドレスをA1方式で指定すれば書き込みできますがR1C1方式でセルアドレスを指定する方法が判りません。よろしくお願い致します。 exCel.Range("A1").Value = "Hello World"
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
厳密には、VB内でR1C1方式のセル指定というのはありません。 VB内でR1C1に似た方式でセルを指定したい場合は、Cellsプロパティを使います。 exCel.Cells(1,1).Value = "Hello World" と書くと exCel.Range("A1").Value = "Hello World" と同様になります。 ちなみにCells(行番号, 列番号)です。 VB内では、Rangeによるセル指定より、基本的にCellsプロパティを使うことの方が多いです。 Rangeはあくまで範囲を指定するものですから、Range(Cells(1,1), Cells(1,4))のように使います。 Cellsプロパティを使ってセルを指定する最大のメリットは、行番号や列番号を変数を使って増減させることで、繰り返し処理に使えることです。 例えば For i = 1 to 10 exCel.Cells(1,i).Value = "Hello World" Next とすれば、A列~J列まで繰り返し処理することができます。 ご参考まで。
お礼
補足コメントができないのでお礼で連絡います。 念のため、前の状態 exCel.Range("A1").Value = "Hello World" に戻しましたが、 exCel.Cells(1,1).Value = "Hello World" と同じエラーになります。前にも同じようなことがありました。 明日、Subの内容をクリアして最初からやり直してみます。
補足
有り難うございます。Cellsで動作させたところ exCel.Cells(1,1).Value = "Hello World" の所で ”NullReferenceExpectionはハンドルされませんでした。”とエラーになります。 exCelは ”Dim exCel As Excel.Worksheet = Nothing”としています。 例に書いて頂いたような使い方をしたいと思っています。定義(宣言?)の仕方がよくないのでしょうか。よろしくお願い致します。