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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
Excel VBAで特定の範囲の空白セルを探して行番号を表示させる方法を教えてください。
Visual Basic(VBA)
-
エクセルで空白のセルを探して貼り付け
Excel(エクセル)
-
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
-
4
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
5
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
6
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
7
【Excel】【VBA】空白のセルに上のデータを入力する方法
その他(Microsoft Office)
-
8
リストボックスの選択解除
Visual Basic(VBA)
-
9
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
10
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
11
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
12
vbaで指定したセルより下の行を指定する方法について vbaの質問です。 例えば、「C6」セルより下
Excel(エクセル)
-
13
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
14
VBA 空白行に転記する
Visual Basic(VBA)
-
15
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
16
エクセルでエラーが出て困っています。
Excel(エクセル)
-
17
別のシートから値を取得するとき
Visual Basic(VBA)
-
18
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
19
ExcelVBAでテキストボックスの表示形式を小数点第二位まで表示する方法
Visual Basic(VBA)
-
20
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数学 Tan(θ)-1/Cos(θ)について...
-
4つのパターンを表示するEXACT...
-
エクセルの数式で教えてください。
-
エクセルで指定した日付、店舗...
-
Excel:一部のフォントでセルの...
-
Excel初心者です。 詳しい方、...
-
Excel初心者です。 詳しい方、...
-
Excel 2019 のピボットテーブル...
-
スマートな関数を教えて下さい。
-
Excelのグラフ軸について
-
EXACT関数とIF関数の組み合わせ...
-
Excel ウインドウ枠の固定をす...
-
エクセルで日付の入ったセルの...
-
excelの不要な行の削除ができな...
-
INDIRECTを使わず excelで複数...
-
各ページの1番上の表示について
-
スプレッドシートの関数VLOOKUP...
-
エクセルでセルに「氏名を入力...
-
関数を教えて下さい。
-
Excelのif関数で文字が見えなく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報