![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
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)
-
エクセルで空白のセルを探して貼り付け
Excel(エクセル)
-
Excel VBA 空白をセルを探して貼り付け
Excel(エクセル)
-
-
4
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
5
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
6
【Excel】【VBA】空白のセルに上のデータを入力する方法
その他(Microsoft Office)
-
7
リストボックスの選択解除
Visual Basic(VBA)
-
8
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
9
VBAで特定の文字が入力されたセルを選択
Excel(エクセル)
-
10
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
11
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
12
vbaで指定したセルより下の行を指定する方法について vbaの質問です。 例えば、「C6」セルより下
Excel(エクセル)
-
13
エクセル マクロ 貼り付け先が空白でない場合 1行下に貼りつける
Excel(エクセル)
-
14
別のシートから値を取得するとき
Visual Basic(VBA)
-
15
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
16
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
17
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
18
VBA 空白行に転記する
Visual Basic(VBA)
-
19
エクセルで行の一番上にセルに移動させるVBA
Excel(エクセル)
-
20
エクセルの空白セルへコピーするマクロをくむ方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのツールバーから数値...
-
祝日と土曜、日曜の合計をカウ...
-
【マクロ】2回実行したら、エ...
-
特定の文字列を含む、住所を抽...
-
EXCELの散布図で日付が1900年に...
-
マイクロソフトのPADを使ってい...
-
Excel分数の表示について
-
Excelで表を作ったところに文字...
-
マクロエクセルのブロック解除
-
文字2桁、3桁交じりの文字列...
-
絶対参照
-
Excelについての質問です。 B2...
-
在庫管理表に使うエクセルの関...
-
【マクロ】VLOOKUPにて参照元に...
-
【EXCEL】画像の黄色部分の抽出...
-
DATE関数で現在の年齢を出した...
-
ユーザー定義関数をアドイン登...
-
エクセルでの作業計算方法について
-
行数が不規則な一週間ごとの合...
-
Excelピボットテーブルの1行目
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報