Excelマクロ初心者です。写真の赤い部分である”cells(i,2)”について、変数にしたいと考えています。具体的には、この部分をマクロと同じブックのシートに書かれた名前にしたいですが、現在の方法では上手くいきません。何かよい方法はありますか?

ご質問ありがとうございます。

“cells(i,2)”を変数として使用する方法はいくつかありますが、以下にいくつかのアプローチをご紹介いたします。

1. Rangeオブジェクトを使用する方法:
“cells(i,2)”をRangeオブジェクトとして変数に格納することができます。例えば、以下のように記述します。

“`
Dim rng As Range
Set rng = Cells(i, 2)
“`

この変数を使ってセルの値を取得したり、セルに値を設定したりすることができます。

2. Withステートメントを使用する方法:
Withステートメントを使用すると、コードの中で同じオブジェクトを繰り返し参照する際に便利です。以下のような形で使うことができます。

“`
With Sheets(“シート名”)
‘ 以下、Withステートメント内でのコード
‘ .Cells(i, 2) のように”.”をつけることで、特定のシート上のセルを参照できます
End With
“`

3. ActiveSheetオブジェクトを使用する方法:
現在アクティブなシートを表すActiveSheetオブジェクトを使用することもできます。以下のように記述します。

“`
Dim rng As Range
Set rng = ActiveSheet.Cells(i, 2)
“`

ただし、ActiveSheetを使う場合は、コードを実行する際に対象のシートがアクティブであることに注意してください。

また、変数を使うことでコードの可読性が向上するだけでなく、保守性も高まります。変数名を適切に付けることで、コードの意図が明確になります。

以上のアプローチのいずれかを選んで試してみてください。それぞれの方法の特徴や使い方に慣れることが、Excelマクロの学習に役立つでしょう。

コメントを残す