- ベストアンサー
エクセルVBAを教えてください。
エクセルVBA初心者です。 仕事の都合でどうしても下記マクロを作らないといけないのですが、作り方が全くわかりません。 親切な方、教えてください。 □■□■□■□■□■□■□■□■□■□■□■□■ 名前 金額 日時 ⇒1行目のタイトル Aさん 100円 12/1 ⇒2行目 200円 12/2 ・・・* ⇒3行目 300円 12/3 ・・・* ⇒4行目 合計 400円 ⇒5行目 Bさん 100円 12/1 ⇒6行目 200円 12/2 ・・・* ⇒7行目 300円 12/3 ・・・* ⇒8行目 400円 12/4 ・・・* ⇒9行目 合計 1000円 ⇒10行目 Cさん 100円 12/1 ⇒11行目 200円 12/2 ・・・* ⇒12行目 合計 300円 12/3 ⇒13行目 ・ ⇒14行目 ・ ⇒15行目 ・ ⇒16行目 のExcel表があります。 それぞれの人と合計金額の部分までを参照し、合計金額までの前の列(・・・*の部分)にそれぞれの人の名前を入れたい(コピー・ペーストしたい)です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>下記です。 > ↓ >http://oshiete1.goo.ne.jp/qa2612784.html はい、わかりました。 今、回答しておきましたので、こちらは締め切ってください。
その他の回答 (3)
- ham_kamo
- ベストアンサー率55% (659/1197)
No.1です。 なんだか変な処理だなと思っていたら、質問の意味を取り違えていたことに気がつきました。どうもすみません。マクロを以下の通り修正します。 Sub 名前をコピー() Dim r As Range Dim Name As String For Each r In Range("B1", Range("B65536").End(xlUp)) If r.Offset(0, -1).Value <> "" Then Name = r.Offset(0, -1).Value Else r.Offset(0, -1).Value = Name End If Next End Sub
- merlionXX
- ベストアンサー率48% (1930/4007)
作り方が全くわからない人にマクロを作らせるのですか?むちゃくちゃな会社ですね。 一応コメントもてけておきますが、大丈夫かな・・・。 Sub TEST01() Dim r As Long, i As Long r = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row 'A列最終行取得 For i = 1 To r '1~最終行まで If Cells(i, 1) = "" Then Cells(i, 1) = Cells(i - 1, 1) 'i行目が空白だったら1行上の値を入れる Next '繰り返す End Sub 名前はコピペではなく、値貼り付けにしてますが・・・。
お礼
merlionXXさんへ ソース誠にありがとうございました。 とりあえずは第一弾が作成できました。 この第一弾を客先に見てもらったところ、実は続きが発生してしまい、私とは別の人間が、作成しないといけないVBAを引き継ぎました。 引き継いだ人間が受けてきた要求を把握しているので、記入した次第です。 互いにVBA初心者なので、引き続きご教示頂けないでしょうか? お手数ですが宜しくお願い致します。 下記です。 ↓ http://oshiete1.goo.ne.jp/qa2612784.html
- ham_kamo
- ベストアンサー率55% (659/1197)
要はA列に名前があって、A列が空の行のD列に名前をコピーする、ということでいいでしょうか? シートのタブを右クリックして「コードの表示」でVBAの画面を出し、以下のマクロを貼り付けて実行してみてください。 Sub 名前をコピー() Dim r As Range Dim Name As String For Each r In Range("B1", Range("B65536").End(xlUp)) If r.Offset(0, -1).Value <> "" Then If r.Offset(0, -1).Value <> "合計" Then Name = r.Offset(0, -1).Value End If Else r.Offset(0, 2).Value = Name End If Next End Sub
お礼
大変ありがとうございました。 引き継いだ人間にテストと検証をしてもらいます。 引き続き不明な点・追加のソースがありましたら、引き継いだ人間より改めてご質問させて頂きたいと思います。 大変あつかましいのですが宜しくお願い致します。