2017年06月16日

VBA 使わないと…

友人から電話があり、VBAのストリングス関数を教えてくれとの内容でした。
ストリングス関数だけならよかったのですが、その後にまだ質問があり、これが難物なんです。

Range(A1:A25) と書いたら、エクセルシートのセルA1からA25を選択するという意味になるんですが、では、A25の「25」が固定ではなくて、毎回変わるとしたら、自動でその数値を取得して、たとえば(A1:A684)のように自動で変化させられないかというものです。

「アイヨッ!」と軽い気持ちで受け付けたのが運のつき。
Range関数の括弧の中に数値を代入する方法をすっかり忘れてしまっていました。

たとえば、前回A1:A236だったのに、データがどっさりと増えてしまい、A345まで膨れ上がってしまいました。
目で見て最終行を探す方法もありますが、ここはコンピューターならではの方法で行数を取得してみましょう。

VBAでプログラムを書くとこうなります。

Sub TEST()
Dim EndRow As Long
EndRow = Cells(Rows.Count, 1).End(xlUp).Row
MsgBox "最終行は" & EndRow & "です"
End Sub

そうすると画面には、「最終行は○○○です。」と、表示されます。

問題はここからです。
EndRowには、間違いなくデータの最下端の行数が取得されています。
この数字をどうにかして、Range(○○:○EndRow)という形に持っていきたいのですが、その方法を全く思いだせないのです。

いやぁ、参りました。

続く
ラベル:String関数 VBA RANGE
posted by ホワイトミスト at 00:02| 神奈川 ☔| Comment(0) | TrackBack(0) | 未分類 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック