
エクセル2003です。
ある集計表において
4行目のH列からAM列まで
数値データがあります。
最終行は常に変化します
この表内にてセルの値が0のセルは
セル内を空白にしたいです。
以下のマクロを作成しましたが
If Cells(処理行, 8).Value = 0 Then
Cells(処理行, 8).ClearContents
をあと(処理行, 13)から(処理行,31)
まで記述しなければなりません。
構文的にも処理的にも不利?
と思うので、なにかいい方法を教えてください。
Sub 数字0クリア()
'2012年2月3日節分
Dim 最終行
'最終列をG列で求めます
最終行 = Cells(Rows.Count, 7).End(xlUp).Row
Application.ScreenUpdating = False
For 処理行 = 4 To 最終行
If Cells(処理行, 8).Value = 0 Then
Cells(処理行, 8).ClearContents
End If
If Cells(処理行, 9).Value = 0 Then
Cells(処理行, 9).ClearContents
End If
If Cells(処理行, 10).Value = 0 Then
Cells(処理行, 10).ClearContents
End If
If Cells(処理行, 11).Value = 0 Then
Cells(処理行, 11).ClearContents
End If
If Cells(処理行, 12).Value = 0 Then
Cells(処理行, 12).ClearContents
End If
If Cells(処理行, 13).Value = 0 Then
Cells(処理行, 13).ClearContents
End If
Next 処理行
Application.ScreenUpdating = True
MsgBox "終了しました"
End Sub
No.3ベストアンサー
- 回答日時:
'列の分のFor~Nextを追加してやれば1箇所分だけ記述するだけで済みます。
Sub 数字0クリア()
'2012年2月3日節分
Dim 最終行
'最終列をG列で求めます
最終行 = Cells(Rows.Count, 7).End(xlUp).Row
Application.ScreenUpdating = False
For i = 8 To 39
For 処理行 = 4 To 最終行
If Cells(処理行, i).Value = 0 Then
Cells(処理行, i).ClearContents
End If
Next 処理行
Next i
End Sub
'For i = 8 To 39で列の変数を設定してやる(H列からAM列まで)
'For 処理行 = 4 To 最終行の処理が終わるとiが8、9、10と変化していきます。
No.4
- 回答日時:
既に回答が出ていますが、
For(繰り返し)の勉強なら
縦方向の繰り返しの中に横方向の繰り返しを加えることになりますね。
ただ、やりたい内容を
H~M列に含まれる 0 を空白に置き換える
と考えると(たぶん、最終列の取得も不必要では?)
Columns("H:M").Replace What:="0", Replacement:=""
の一行で済むのではないでしょうか?
それで足りるかどうかは
マクロの記録で
H~M列の選択 置き換え の実行で
試してみてください。
システムから吐き出されたデータは
列AMまでしかないので
Columns("H:AM").Replace What:="0", Replacement:=""
で行いました。
NO.5で月頂いた件はきがついていましたので
Columns("H:AM").Replace "0", "", xlWhole
で行いました。
ありがとうございました。
No.1
- 回答日時:
「置換」機能を使うのが、簡単だと思います。
Sub 数字0クリア()
'2012年2月3日節分
Dim 最終行
'最終列をG列で求めます
最終行 = Cells(Rows.Count, 7).End(xlUp).Row
Application.ScreenUpdating = False
'0のセルを置換で消す
Range(Cells(4, 8), Cells(最終行, 13)).Replace 0, "", xlWhole
Application.ScreenUpdating = True
MsgBox "終了しました"
End Sub
Range(Cells(4, 8), Cells(最終行, 13)).Replace 0, "", xlWhole
↓
Range(Cells(4, 8), Cells(最終行, 39)).Replace 0, "", xlWhole
であっという間に完了しました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) VBAでのループ順序について 3 2023/03/13 10:55
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
このQ&Aを見た人はこんなQ&Aも見ています
-
マクロ 特定のセル値のみクリアする
Visual Basic(VBA)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
VBAで文字列を数値に変換したい
Excel(エクセル)
-
-
4
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
5
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
6
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
7
エクセルで特定の列が0表示の場合、その行を非表示にしたい
Excel(エクセル)
-
8
VBAで特定の文字が入力されたセルを選択
Excel(エクセル)
-
9
エクセルマクロで偶数行(又は奇数行)にあるセルを選択したい
Excel(エクセル)
-
10
VBA 数式を最終行までコピー
Excel(エクセル)
-
11
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
12
VBA Cのセルが空白でなかったら、Aのセルに順番に数値を入力
Visual Basic(VBA)
-
13
別シートに順番で貼り付け
Visual Basic(VBA)
-
14
B列の最終行までA列をオートフィル
Visual Basic(VBA)
-
15
Excelの警告について
Excel(エクセル)
-
16
Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで、日付を入力すると...
-
【Excel】特定の文字を含むセル...
-
インタラクティブの反対語は?
-
お家デートをしててハグを長い...
-
「ご処理進めて頂きますようお...
-
if文を使わずに小数の符号を取...
-
C# ListBoxのキーボードマッチ...
-
Lispでリストの中身もすべて反...
-
プリプロセッサの使い方
-
C#です。リストボックスの項目...
-
VBAでorを使用しているときの合...
-
セックスレスの既婚女性は自慰...
-
VBの質問#if 0 then ってどう...
-
switch の範囲指定
-
VBAでループ内で使う変数名を可...
-
VBA ユーザーフォームにしたい
-
1K,1M,1Gは何Byte?
-
[ホルマール」って何ですか
-
リョウ・・・量?料?
-
メルカリのメルカードで買い物...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
【Excel】特定の文字を含むセル...
-
VBAでループ内で使う変数名を可...
-
メルカリのメルカードで買い物...
-
月度は何て読みますか?
-
UMLでの例外処理
-
EXCEL VBA マクロ 実行する度に...
-
セックスレスの既婚女性は自慰...
-
switch の範囲指定
-
インタラクティブの反対語は?
-
Loadイベント中にほかのイベン...
-
Do~Loopした回数をカウントしたい
-
VBの質問#if 0 then ってどう...
-
DoEventsがやはり分からない
-
お家デートをしててハグを長い...
-
findは動くがfindnextがマクロ...
-
リョウ・・・量?料?
-
生活保護受給者は性欲をどんな...
-
iD
おすすめ情報