VBA範囲オフセットの使い方(11の方法)

  • これを共有
Hugh West

最も簡単な使い方をお探しなら ブイビーエー レンジオフセットの使い方を説明します。 ブイビーエー レンジオフセット。

ワークブックダウンロード

VBA範囲オフセット.xlsm

VBA範囲オフセットの11の使用方法

ある大学の学生情報を含む以下のデータセットがある。 このデータセットを使って、以下のような使い方を説明する。 ブイビーエー レンジオフセット。

このために、私は Microsoft Excel 365 のバージョンがありますが、お客様のご都合に合わせてご利用ください。

方法-1:VBAの範囲指定でセルを選択する

ここでは、名前を含むセルを選択します。 ダニエル・デフォー この目的のために RANGE機能 において ブイビーエー .

Step-01 :

➤に移動します。 デベロッパー タブ>> ビジュアルベーシック オプション

その後 Visual Basic エディター が開きます。

➤に移動します。 インサート タブ>> モジュール オプション

その後 モジュール が作成されます。

ステップ02 :

➤ 次のコードを書いてください。

 Sub SelectCell() Range("B8").Select End Sub 

セルを選択します。 B8 .

➤プレス F5

結果 :

を含むセルを取得します。 ダニエル・デフォー を選択しました。

続きを読む ExcelでVBAのRangeオブジェクトを使用する方法

方法-2:VBAの範囲を使用して連続したセルのグループを選択する

のように、連続したセルの範囲を選択することができます。 生徒名 の列と 結果 の欄は、この方法によって、次の表のようになります。

Step-01 :

➤フォロー Step-01 方法-1

 Sub ContiguousCells() Range("B5:C10").Select End Sub 

からセルを選択します。 B5 まで C10 .

➤プレス F5

結果 :

その後、セルを B列 C列 を選択しました。

方法-3:VBAの範囲を使用して、非連続のセルグループを選択する

という名前の生徒を選択したいとします。 デービッド・ウィリアム マイケル・アンソニー それぞれを含め メールアドレス このような非合理的なセルを選択するには、次のような方法があります。

Step-01 :

➤フォロー Step-01 方法-1

 Sub nonContiguous() Range("B6,D6,B9,D9").Select End Sub 

セルが選択されます B6 , D6 , B9, D9 .

➤プレス F5

結果 :

そして、生徒の名前を含むセルを取得します。 デービッド・ウィリアム , マイケル・アンソニー とそれぞれの メールアドレス を選択しました。

方法-4 VBAのRangeを使った非連続セルのグループ選択と範囲選択

この方法で、セルの範囲選択と、連続しないいくつかのセルを同時に選択することができます。

Step-01 :

➤フォロー Step-01 方法-1

 Sub nonContiguouswithrange() Range("B5:B10,D6,D10").Select End Sub 

範囲内のセルが選択されます B5:B10 と他の2つのセル D6 , D10 .

➤プレス F5

結果 :

その後、列のセルを取得します。 生徒名 と2 電子メールアドレス にとって デービッド・ウィリアム ドナルド・ポール を選択しました。

方法-5:VBAの範囲オフセットを使って範囲を選択する

のセル範囲を選択することができます。 生徒名欄 を使用することで OFFSET機能 .

Step-01 :

➤フォロー Step-01 方法-1

 Sub selectrangeoffset() Range("A1:A6").Offset(4, 1).Select End Sub 

最初はね。 レンジ("A1:A6") は範囲を選択します A1:A6 で、その後 オフセット(4, 1) は、セル A1 と1列分右側に移動し、その後、範囲内の同じ数のセルが A1:A6 はここから選択されます。

➤プレス F5

結果 :

このように、カラムを選択することになります 生徒名 .

方法-6:VBAのレンジオフセットネガティブ

を選択することができます。 メールアドレス欄 を、この方法に従って行ってください。

Step-01 :

➤フォロー Step-01 方法-1

 Sub negativerangeoffset() Range("F11:F16").Offset(-6, -2).Select End Sub 

最初はね。 レンジ("F11:F16") は範囲を選択します F11:F16 で、その後 オフセット(-6, -2) はセルから6行上に移動します F11 と左側に2列、その後、範囲内の同数のセルが F11:F16 はここから選択されます。

➤プレス F5

結果 :

その後、カラムの選択 メールアドレス .

類似の読み物。

  • Excelで範囲内の各セルをVBAで処理する(3つの方法)
  • エクセルで文字数を数える方法(7つの簡単なコツ)

方法-7:アクティブセルを基準とした範囲選択

ここでは、アクティブセル(セル A1 )であり、このセルに関して、この方法でデータ範囲を選択することになる。

Step-01 :

➤フォロー Step-01 方法-1

 Sub actvcell() Range(activecell.Offset(4, 1), activecell.Offset(9, 3)).Select End Sub 

これです。 アクティブセル でございます A1

前編 activecell.Offset(4、1) は、そのセルから 4 行下、1 列右のセルを選択します。 A1 と後段 アクティブセル.オフセット(9, 3) は、セルから下方向に 9 行、右方向に 3 列のセルを選択します。 A1 .

最後に、この2つのセルの間のすべてのセルが選択されます。

➤プレス F5

結果 :

すると、データ範囲全体が選択できるようになります。

方法-8:範囲をコピーする

セルの範囲をコピーする場合は、この方法に従います。

Step-01 :

➤フォロー Step-01 方法-1

 Sub copyrangeoffset() Range("A1:A6").Offset(4, 1).Copy End Sub 

最初はね。 レンジ("A1:A6") は範囲を選択します A1:A6 で、その後 オフセット(4, 1) は、セル A1 と1列分右側に移動し、その後、範囲内の同じ数のセルが A1:A6 はここから選択されます。

最後に、範囲内の値をコピーします。 B5:B10 .

➤プレス F5

結果 :

その後、データ範囲をコピーするために 生徒名欄 .

方法-9:範囲を削除する

ここでは、データの範囲を削除する方法として ブイビーエー のコードになります。

Step-01 :

➤フォロー Step-01 方法-1

 Sub dltrangeoffset() Range("F11:F17").Offset(-7, -2).Delete End Sub 

まず最初に。 レンジ("F11:F17") は範囲を選択します F11:F17 で、その後 オフセット(-7, -2) はセルから7行上に移動します F11 と左側に2列、その後、範囲内の同数のセルが F11:F17 はここから選択されます。

最後に、範囲を削除します。 D4:D10 .

➤プレス F5

結果 :

のデータ範囲をコピーすることになります。 メールアドレス欄 .

方法-10:VBAの範囲オフセットを使って値を入力する

ここでは、空のセル(このメソッドの説明のために、このセルの値を削除しています)を持つ 生徒名欄 という名前で埋めたいと思います。 ジョセフ・マイケル を使うことで、より効果的になります。 ブイビーエー のコードで、この値を簡単に入力することができます。

Step-01 :

➤フォロー Step-01 方法-1

 Sub valuerangeoffset() Range("A1").Offset(6, 1).Value = "Joseph Michael" End Sub 

まず最初に。 レンジ("A1") はセルを選択します。 A1 で、その後 オフセット(6, 1) はセルから下方向に6行移動します A1 と1列分右側に移動し、その後、セル B7 が選択され、最後に値を入力します。 "ジョセフ・マイケル" を、この細胞内で

➤プレス F5

結果 :

こうすることで、名前を ジョセフ・マイケル 細胞内 B7 .

方法-11:VBAの範囲オフセットを使って出力を得る

例えば、次のように書くとします。 合格 または 対応に失敗した に応じて、生徒の名前に 結果欄 どこ パス または 失敗 が括弧でくくられ、この部分文字列を見つけるには 結果欄 に書き込んでください。 合格・不合格欄 は、この方法に従います。

Step-01 :

➤フォロー Step-01 方法-1

 Sub CheckSubstring() Dim cell As Range For Each cell In Range("C5:C10") If InStr(cell.value, "Pass")> 0 Then cell.Offset(0, 1).value ="Passed" Else cell.Offset(0, 1).value ="Failed" End If Next cell End Sub 

ここでは、セル範囲 C5:C10 が選択されます。 レンジ("C5:C10") というものである。 結果欄

InStr(cell.value, "Pass")> 0 は、数値が0より大きい状態(セルに "パス" ) の場合、次の行が続き、隣のセルに次のような出力が得られます。 合格 ここで、隣接するセルが選択されるのは cell.Offset(0、1) これは、入力セルから右に1列移動することを意味します。

この条件が偽の場合、そのセルには何も含まれていないことを意味します。 "合格" の下の行は エルゼ が実行され、隣接するセルの出力値が 失敗 .

このループは各セルに対して続けられる。

➤プレス F5

結果 :

すると、次のような出力が得られます。 合格または不合格 において 合格・不合格 の欄があります。

プラクティス部門

自分で練習できるように 実践編 という名前のシートに、以下のようなセクションを作成します。 実践編 .自分でやってください。

結論

今回は、最も簡単な使い方を取り上げてみました。 ブイビーエー Excelの範囲オフセットを効果的に。 あなたが有用であることを願っています。 あなたが何か提案や質問がある場合は、私たちとそれらを共有すること自由に感じなさい。

Hugh West は、業界で 10 年以上の経験を持つ、非常に経験豊富な Excel トレーナー兼アナリストです。彼は会計と財務の学士号と経営管理の修士号を取得しています。ヒューは教えることに情熱を持っており、理解しやすい独自の教育アプローチを開発しました。彼の Excel に関する専門知識は、世界中の何千人もの学生や専門家がスキルを向上させ、キャリアで優れた成果を上げるのに役立ってきました。 Hugh はブログを通じて知識を世界に共有し、個人や企業が潜在能力を最大限に発揮できるよう無料の Excel チュートリアルとオンライン トレーニングを提供しています。