• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Cellsでの行の指定方法)

Cellsでの行の指定方法

このQ&Aのポイント
  • EXCEL初心者のため、Cells関数を使用して行の指定方法を知りたいです。
  • サンプルプログラムの連番マクロでA2から連番を開始したいが、エラーが発生しています。
  • Cells関数を正しく使用する方法を教えてください。

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

  • ベストアンサー
回答No.2

ご提示のコードには色々問題があるのですが、とりあえずの解決策としては、 For i=2 To Maxrow Cells(i,1).value=i-1 に修正すればそれで足ります。 色々、と書きましたが、例えばそのサンプルプログラムには、シートの指定が書かれていません。これだと、「必要なデータがシート1にあるが現在はシート2を見ている」という状態でマクロを実行した場合に問題が発生します。 Cellsの操作をはじめる前に、Sheets("Sheet1").Selectなどで、どのシートを使うのか明示しておく事で、こうした凡ミスを防ぐ事が出来ます。 また、何故か知りませんが、そのコードではB列のデータの最終行を調べているので、B列にデータが入ってないと何も出てきません。 コードに間違いは無い筈なのにうまくいかないという場合は、B列に入っているデータもチェックしてみて下さい。 蛇足ですが、変数の型も、内容に適ったものとは言えません。今回のような単純なサンプルプログラムでは、型宣言がどうであろうと動きに問題はありませんが、無意味な宣言はメモリの無駄遣いになります。今後に向けて、変数の型の適切な使い分けについても調べてみると良いと思います。

komio777
質問者

お礼

有り難うございます。 問題が多いのですか? ご指摘の箇所を調べて行きたいと考えています。 有り難うございます。 また解らない時は宜しくお願い致します。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • RandenSai
  • ベストアンサー率54% (305/561)
回答No.1

今現在、手元にExcelが動く環境がないので具体性に欠ける回答になっちゃいますが、セルの値を変更するにはCellsを使います。Cells(行 , 列) で指定します。今回のマクロでは、Cells(i, 1) = i - 3 の部分ですね。 と言う時点で気付いたかも知れませんが、このマクロだとA4から始まるのではないでしょうか?なぜならForループのカウンタ変数iの開始が4だからです。なのでA2から始めたい場合は、 For i = 2 To maxrow とすればよいことになります。 それとエラーの原因として、Cellsの何を操作するのか指定していないからではないかと思いますが。Cellsにはいろんな機能があって、Cells(1,1).Select とするとセルA1が選択されるし、Cells(1,1).Formula = "=SUM(B1:B9)" とすれば、セルA1にSUM関数の式が入ります。でも、Cells(I , 1)= だけだと、何に対して値を入れたいかが指定されていません。今回はセルの値を変えるわけだから、Valueを追加して Cells(i,1).Value = i - 3 と書かなければエラーになるでしょう。ちなみに開始をA2からにしている場合は、i - 3 のところを i - 1 に変える必要があります。

komio777
質問者

お礼

ご指摘、有り難うございました。

komio777
質問者

補足

あっすいません。A4からでした。 有り難うございます。

すると、全ての回答が全文表示されます。

関連するQ&A