
エクセル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)
-
エクセルで特定の列が0表示の場合、その行を非表示にしたい
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
5
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
6
B列の最終行までA列をオートフィル
Visual Basic(VBA)
-
7
Excelの警告について
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
メルカリのメルカードで買い物...
-
セックスレスの既婚女性は自慰...
-
iD
-
EXCEL VBA マクロ 実行する度に...
-
インタラクティブの反対語は?
-
【Excel】特定の文字を含むセル...
-
if文に関してなのですが、 if( ...
-
DoEventsがやはり分からない
-
Do~Loopした回数をカウントしたい
-
月度は何て読みますか?
-
Do Until rs1.EOF であるレコ...
-
VBAでセルに値が入力されるまで...
-
RPGプログラムの*HIVALについて
-
UMLでの例外処理
-
エクセルVBA マクロ処理中のポ...
-
2重のDo~Loopは?
-
VBAでループ内で使う変数名を可...
-
vba 空のデータをSplitする時の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
【Excel】特定の文字を含むセル...
-
DoEventsがやはり分からない
-
UMLでの例外処理
-
EXCEL VBA マクロ 実行する度に...
-
switch の範囲指定
-
VBの質問#if 0 then ってどう...
-
月度は何て読みますか?
-
お家デートをしててハグを長い...
-
セックスレスの既婚女性は自慰...
-
インタラクティブの反対語は?
-
Loadイベント中にほかのイベン...
-
Do~Loopした回数をカウントしたい
-
findは動くがfindnextがマクロ...
-
VBAでセルに値が入力されるまで...
-
FFTの結果ついて
-
リョウ・・・量?料?
-
取り消し線が入った文字を削除...
おすすめ情報