
A列を上から検索して(とりあえず100行まで)最初の空白セルのアドレスを取得したいです。
Dim CellAd As Range
Set CellAd = Range("A1:A100").CurrentRegion.Find(What:="ABC")
If CellAd Is Nothing Then
Exit Sub
Else
MsgBox CellAd.Address
End If
以上のコードで、A列にABCがあればそのアドレスを$A$15のような形で表示できました。
検索したいのは空白なのですが、どのように指定すればよいでしょうか。
What:=""やNullではダメだったので(自分、「Null」を勘違いしてるかもしれません)。
また、ここでは取得したアドレスをmsgboxで表示させているだけですが、
実際は取得したアドレスの行番号のみを取得して変数Add1に入れ、
以降のコードのセル範囲指定として使いたいです。
「1行目からAdd1行目までをコピーする」のように。
私のレベルでは、
・範囲指定はRange("A1:A100")のように、「""」でくくらなければ使えない
・変数は""の中に入れたら文字列として扱われる
との認識があるのですが、
このようなコードは可能でしょうか。
No.1ベストアンサー
- 回答日時:
A1 を選択した状態で [Ctrl]+[↓] キーを押すとデータブロックの最終セル、
つまり、そのひとつ下が最初の空白セルとなります。
ご質問の用途なら、マクロの記録を利用することで End(xlDown) を使えば
良いことがわかります。あとは、それを修正。
Dim r As Range
Set r = Range("A1", Range("A1").End(xlDown))
MsgBox r.Address
> 範囲指定はRange("A1:A100")のように、「""」でくくらなければ使えない
そんなことはありません。
Range("A2", Cells(100,"A").Select
のように「文字列」で指定することも可能だし、Range オブジェクトを
使って Range を指定することも可能です。
回答ありがとうございます。
「空白を探し出して、その1個上が最終セル」のつもりだったので、
[Ctrl]+[↓] キーの時点で大正解でした!
範囲指定も巧くできました。
意外と融通利きますね、VBA(プログラマから見ると当然かもしれないけど)。
No.6
- 回答日時:
補足。
A列以外にも空白セルがあるならこんな方法も。Sub Sample()
Dim rTable As Range
Dim rBlank As Range
Set rTable = Range("A1:A100").CurrentRegion
On Error Resume Next
Set rBlank = rTable.SpecialCells(xlCellTypeBlanks)
On Error Goto 0
If Not rBlank Is Nothing Then
rBlank.Cells(1, 1).Select
' または rBlank(1).Select
Else
MsgBox "空白セルはありません"
End If
Set rTable = Nothing
Set rBlank = Nothing
End Sub
回答ありがとうございます。
わざわざ別のソースまで組んでいただいて恐縮です。
まだぱっと見にはわからない部分もありますが、
調べられそうです。
No.5
- 回答日時:
Set CellAd = Range("A1:A100").CurrentRegion.Find("")
じゃダメですか?
>・範囲指定はRange("A1:A100")のように、「""」でくくらなければ使えない
Range("A1:A100")はRange(cell(1, 1), Cells(1, 100))とも表現できます。
>・変数は""の中に入れたら文字列として扱われる
&演算子を使って繋ぐと使えます。
Range("A1:A" & CellAd.Row - 1).Select
とすると、空白の1つ前のセルまで選択できます。
回答ありがとうございます。
少し範囲指定の仕方の幅を広げることができました。
目的のみに向かって突っ走らないで一から勉強すべきですね。
No.2
- 回答日時:
アドレスの取得
MsgBox(Range("A1:A100").SpecialCells(xlCellTypeBlanks).Cells(1, 1).Address)
行番号の取得
MsgBox(Range("A1:A100").SpecialCells(xlCellTypeBlanks).Cells(1, 1).row)
範囲指定
Range("A1:" & Add1)
Range(Cells(1,1) , Cells(Add1,1))
などの方法があります
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Visual Basic(VBA) エクセルで、1つのセルで上書き足し算して セルの範囲を指定できますか? パソコン初心者です。 お時間 3 2023/07/05 06:13
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel VBAで特定の範囲の空白セルを探して行番号を表示させる方法を教えてください。
Visual Basic(VBA)
-
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように
Excel(エクセル)
-
-
4
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
5
エクセルで空白のセルを探して貼り付け
Excel(エクセル)
-
6
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
7
VBAでセル入力の数式に変数を用いたい
Excel(エクセル)
-
8
【Excel VBA】一番右端セルまでの範囲指定の仕方(途中に空白セルあり)
Visual Basic(VBA)
-
9
なぜこんな初歩的なVBAのIf文でエラーか発生して使えないのか、全く理解出来ません。誰か助けてくださ
Visual Basic(VBA)
-
10
Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです
Visual Basic(VBA)
-
11
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
12
VBAで色の付いているセルの行削除
Excel(エクセル)
-
13
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
14
作ったマクロを複数のシートで実行できるようにしたい。
Excel(エクセル)
-
15
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
16
リストと一致する値のセルを塗りつぶしたい。
その他(Microsoft Office)
-
17
連続データが入った行の一番右端の右側の空白セル
Excel(エクセル)
-
18
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
19
エクセル フォルダの画像を画像名で検索して貼り付け
Excel(エクセル)
-
20
VBA データ(特定値)のある最終行を取得したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル ドロップダウンリスト...
-
特定のセルだけ結果がおかしい...
-
エクセルのdatedif関数を使って...
-
【関数】同じ関数なのに、エラ...
-
エクセルの循環参照、?
-
エクセル
-
【マクロ】アクティブセルの時...
-
【マクロ】A列にある、日付(本...
-
iPhoneのExcelアプリで、別のシ...
-
【マクロ】3行に上から下に並...
-
【条件付き書式】シートの中で...
-
【マクロ】EXCELで読込したCSV...
-
【エクセル】期限アラートについて
-
【マクロ】列を折りたたみ非表...
-
【マクロ】WEBシステムから保存...
-
【マクロ】オートフィルターの...
-
Excel 複数のセルが一致すると...
-
エクセルに、105と入力すると、...
-
3〜400人分のデータをExcelで管...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelファイルを開くと私だけVA...
-
エクセルについてどう関数を使...
-
マクロ・VBAで、当該ファイルの...
-
エクセルのセルに画像は埋め込...
-
エクセルで、一部のセルだけ固...
-
【マクロ、画像あり】A表かB表...
-
エクセルでカウントする
-
【マクロ】コードを少しでも、...
-
VBA_日時のソート
-
エクセルで教えてください。 例...
-
エクセル 月間シフト表で曜日ご...
-
セルの左に余白を付ける
-
エクセル
-
エクセルについて教えてください
-
2枚のエクセル表で数字をマッチ...
-
ExcelのIF関数との組み合わせの...
-
エクセルのファイルのコピーを...
-
エクセルで二つのブックの違い...
-
空白処理を空白に
-
Excelのチェックボックスについ...
おすすめ情報