皆様初めまして。日頃から回答内容を参考にさせて頂いております。
今回初めての質問で、足りない点があるかと思いますが、どうぞ最後までお付き合い頂きますようお願い申し上げます。
さて、質問内容はエクセルVBAの繰り返し処理についてです。
正確には、あらゆる条件の中において、「ある条件に該当するセルから次の条件のセルまで、加算しながら文字を入力していく」それを、「総計」の文字があるセルまで繰り返し行っていくというものです。(画像 参照)
画像の表では分かりにくいかと思いますが、ここまでの処理として、別ブックのピボットテーブル
を作業用のブックに貼り付けてからの工程になります。
元データがピボットテーブルの為、各会社毎の間のセルが空白となっており、通常のフィルター操作では、正しく集計できず手間取っております。
当方は、簡単なVBAによる操作や繰り返し処理は、何となく使えておりますが、今回のように、間に
別データがあり、それを1回目の処理の終点として、2回目の処理の始点とする処理を繰り返し行う等のプログラムは、考え方や構文のサンプルが見つけられなかった為、皆様のお知恵をお借りしたいと思っております。
稚拙な文章で、上手く質問内容を表現できておらずお恥ずかしい限りですが、どうぞよろしくお願い申しあげます。
No.2ベストアンサー
- 回答日時:
こんにちは
よくわかってませんが、A列の空白セルに上と同じ値を入れたいという意味と解釈しました。
>ある条件に該当するセルから次の条件のセルまで、加算しながら文字を入力していく
「加算しながら」の意味が、添付画像を見てもわからないので、加算はしていません。
A列の「社名」を同じもので埋める処理だけを考慮しています。
対象がA3セルからA列の値の入っている最終行までということで考えれば、最終行の値が「総計」である必要はないので、「総計」であることのチェックも行っていません。
ごく普通に値を順に設定してゆく方法なら
Sub testV9()
Dim rw As Long, val
For rw = 3 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(rw, 1).Value <> "" Then
val = Cells(rw, 1).Value
Else
Cells(rw, 1).Value = val
End If
Next rw
End Sub
関数を利用してもよく、かつ、A3セルが空白なことはないという条件が成立するなら
Sub testVA()
n = Cells(Rows.Count, 1).End(xlUp).Row - 2
If n < 1 Then n = 1
Cells(3, 1).Resize(n, 1).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
End Sub
回答ありがとうございます。
私の質問表現が、足りていないのは申しわけありません。
実際に動かすと2回目の部分の「B会社」から「C会社」の間だけがうまくいきません。
構文の内容は、問題が無いように思えるのですが…
しかし、大変参考になりました。
空白かどうかを問う部分から、セルの内容を変数に格納する際のやり方等、
私の考えていた変数格納のやり方では、足りなかった部分を補足して頂けた
ましたので助かりました。
No.3
- 回答日時:
自分自身が空白だったら、上と同じものを代入。
そうで無ければ何もしない。
Dim Sh As Worksheet
Set Sh = Worksheets("Sheet1")
Last = Sh1.Range("A65536").End(xlUp).Row '最終行位置取得
For Cnt = 4 To Last
If Sh.Range("A" & Cnt).Value="" Then
Sh.Range("A" & Cnt).Value=Sh.Range("A" & Cnt-1).Value
End If
Next Cnt
回答ありがとうございます。
そのままでは、動きませんでしたが
If Sh.Range("A" & Cnt).Value="" Then
Sh.Range("A" & Cnt).Value=Sh.Range("A" & Cnt-1).Value
End If
この部分の、やり方は確かに私がやりたいやり方です。
調整して、試したいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- Visual Basic(VBA) ExcelVBAの複数指定範囲の構文 2 2022/05/26 22:39
- Visual Basic(VBA) 複数指定セルの可視セルのみを別シートに転記するVBAについて 2 2022/05/27 21:19
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- Excel(エクセル) 非表示にしたい行をグループ化して折り畳み 4 2022/09/17 20:17
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Visual Basic(VBA) 指定列最終行までのスペースを改行するVBAについて 2 2022/06/01 19:50
- Excel(エクセル) Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい 3 2022/09/13 18:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
エクセルVBA 配列からセルに「...
-
Excel UserForm の表示位置
-
VBA 複数条件の分岐処理の上手...
-
Excelで空白セル直前のセルデー...
-
特定の色のついたセルを削除
-
入力規則のリスト選択
-
Excel VBA IF文がうまく動作し...
-
EXCEL VBA 文中の書式ごと複写...
-
DataGridViewのフォーカス遷移...
-
DataGridViewで指定したセルの...
-
【VBA】【ユーザーフォーム_Lis...
-
EXCEL 2010 VBAでピボットで複...
-
Excel VBAでCheckboxの名前を変...
-
VBA にて、条件付き書式で背景...
-
【VBA】写真の貼り付けコードが...
-
VBAでユーザーフォームにセル値...
-
JTableにチェックBOXの埋め込み...
-
VBA コンボボックスで選んだも...
-
セルの半透明着色処理
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
Excelで空白セル直前のセルデー...
-
エクセルVBA 配列からセルに「...
-
Excel UserForm の表示位置
-
【Excel VBA】一番右端セルまで...
-
エクセルの合計を自動で表示さ...
-
【VBA】【ユーザーフォーム_Lis...
-
EXCEL VBA 文中の書式ごと複写...
-
下記のマクロの説明(意味)を...
-
Excel VBAでCheckboxの名前を変...
-
【VBA】写真の貼り付けコードが...
-
特定の色のついたセルを削除
-
VBA:日付を配列に入れ別セルに...
-
VBA にて、条件付き書式で背景...
-
DataGridViewのフォーカス遷移...
-
関数の引数でrangeを指定したとき
-
入力規則のリスト選択
-
DataGridViewで指定したセルの...
-
VBAでユーザーフォームにセル値...
-
複数指定セルの可視セルのみを...
おすすめ情報