ここから本文です

エクセルVBAにてご教授をお願い致します。 範囲内の空白に★を入れたいです。

ask********さん

2020/2/2609:38:25

エクセルVBAにてご教授をお願い致します。
範囲内の空白に★を入れたいです。

4行目17列から29列までに行ごとに値が入っており始まりを17列目、最終を29列目として
上から順番に見ていき17列目から29列目の間で値が入っていて最終に値が入っているところまで空白があったら★を入れたいです。

例えば17列目に何も入ってなく20列目になにか値が入っていたらその範囲で空白セルに★といった具合です。

行数が5万行程ありますのでより早異処理を望みます。

宜しくお願い致します。

閲覧数:
49
回答数:
2
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

hot********さん

2020/2/2610:58:37

17列(Q列)から29列(AC列)の間で文字があれば、その左側の空白に"★"を入れる。
これを4行目から最終行まで。
やりたい事はこれでしょうか。
その場合です。

Sub sample()
Dim lastRow As Long
Dim rng As Variant
Dim r As Long
Dim c As Integer
Dim f As Boolean
lastRow = Range(Cells(4, 17), Cells(Rows.Count, 29)).Find("*", SearchDirection:=xlPrevious).Row
rng = Range(Cells(4, 17), Cells(lastRow, 29))
For r = LBound(rng) To UBound(rng)
f = False
For c = UBound(rng, 2) To LBound(rng, 2) Step -1
If rng(r, c) <> "" Then
f = True
Else
If f Then rng(r, c) = "★"
End If
Next
Next
Range(Cells(4, 17), Cells(lastRow, 29)).Value = rng
End Sub

17列(Q列)から29列(AC列)の間で文字があれば、その左側の空白に&quot;★&quot;を入れる。...

質問した人からのコメント

2020/2/26 14:32:38

頂いたコードにて超高速で思うような処理ができました!!
有難うございました!

ベストアンサー以外の回答

1〜1件/1件中

kai********さん

2020/2/2610:17:23

空白に「★」を入れる、ということで、
数式等での空白(="" など)は無い、
と(勝手に)想像します^^;

その場合、
「ジャンプ」で空白セルにジャンプし、
★を入力すると良いかと思います。

「マクロ記録」で完全ではないにしろ
良い感じのコードも出来るかと思います。


見当違いでしたらごめんなさい。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる