• ベストアンサー

Excelマクロで質問です。変数宣言をしてmyRowで得た数値を使って

Excelマクロで質問です。変数宣言をしてmyRowで得た数値を使って、以下の処理を行うには、どうマクロを組んだら良いのか教えて下さい。(myRowで得た値が120と仮定します) (1)A2からD120の範囲指定 (2)A2からD12(→myRowの1/10、120/10=12。myRow/10は正しい使い方でしょうか?)の範囲指定 (3)もうひとつmyRowを使用する場合、   Dim myRow2 As Long   myRow2 = ....のように使用して良いのでしょうか? 以上、よろしくお願いします。

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

  • ベストアンサー
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

(1)A2からD120の範囲指定 Range("A2:D" & myRow).Select (2)A2からD12(→myRowの1/10、120/10=12。myRow/10は正しい使い方でしょうか?)の範囲指定 Range("A2:D" & myRow / 10).Select ただし、myRow / 10と計算させた場合、計算結果が整数にならないとエラーになりますので注意が必要です。 Int(myRow / 10)とすれば(取り出した整数が望む結果になるかどうかは分かりませんが)とりあえず整数にはなります。 (3)もうひとつmyRowを使用する場合、 よろしいですが Dim myRow(2) As Long として myRow(1) myRow(2)としたほうが後々なにか使い勝手が良くなると思われます。 myRow(変数)として利用できますから。

7skies
質問者

お礼

ありがとうございます。整数にならなかった場合まで配慮いただき感謝いたします。助かりました。

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

その他の回答 (1)

  • BookerL
  • ベストアンサー率52% (599/1132)
回答No.2

>(1)A2からD120の範囲指定 Range(Cells(2, 1), Cells(myRow, 4)).Select とか Range("A2:D" & myRow).Select >(2)A2からD12(→myRowの1/10、120/10=12。myRow/10は正しい使い方でしょうか?)の範囲指定 やってみればわかりますよ。 正しくなかったとしても、PCが壊れたりしませんからやってみましょう。 Range(Cells(2, 1), Cells(myRow / 10, 4)).Select >(3)もうひとつmyRowを使用する場合、   Dim myRow2 As Long   myRow2 = ....のように使用して良いのでしょうか? これもやってみればわかることです。 myRow と myRow2 はまったく別物ですので、何の問題もありません。 (ホグペン)

7skies
質問者

お礼

ありがとうございます。一応やってみてうまく行ったのですが、果たして正しい記述なのか不安がありまして。(A2からD120の範囲指定は、試行錯誤しましたがうまく行きませんでした)素早いご回答に感謝いたします。

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

関連するQ&A