初めまして22歳新卒のkaoriと申します。
今回研修としてvbaのプログラミングを学んでいるのですが
考えてもわからない点がございましたので、先輩方の知識を貸していただきたく投稿致しました。
【内容】
複数の値を指定セルに入れていく際の分岐について質問です。
⓵ if 指定セルが空白ならそのまま代入
⓶ if 値が入っていて、今回入れる値と同じなら その値の件数を + 1
⓷ if 値が入っていて、今回入れる値と同じではないなら、次の行セルにフォーカスが飛び
⓵⓶と繰り返す
ただこれだけなのですが、ループする方法の発想が思いつきません・・・
今のところ
if 指定セルの値が空白なら Then
代入
Elseif 指定セルの値 = 代入する値 Then
(1)件数を追加
Elseif 指定セルの値 <> 代入する値 Then
(2)この行は無視して次の行を調べる
EndIf
と考えているのですが、これだと指定セルが空白かつ今まで代入してきた値と被ってなかったら代入(件数も追加)を毎回行う方法がありません。というか正直わかりませんでした・・・
納期は今日中までということで、上司はいかなる手段を使ってもいいからクリアしてみなさいということで、teratailに投稿して皆さまのお力をお借りした所存です。
以上、よろしくお願い致します。
「複数の値を指定セルに入れていく」という点について教えてください。最初の値を処理して次の値に進むのは「指定セルが空白の時に値を代入」した時でしょうか?つまり「指定セルに値がある間は②と③を繰り返し、空白を見つけたら①を行って次の値に進む」ということでしょうか?
takitoさん初めまして。
書き方がわかりにくくて申し訳ありません。
空白をみつけたら指定セル(今回A5)より前の行(A1~A4)までと比較して重複データしていたら重複した行に件数を+1します。
もし重複データではなかったら⓵になります。
このような返答でよろしいでしょうか・・・
こちらこそ理解が悪くすみません。「件数を+1」というのは、指定セルに同値を見つけたらカウントしていく仕組みなのですね。また「複数の値」ということは、もし「1,6,3」という3つの値を処理するとして、最初の「1」の処理を終わって「6」の処理をはじめる条件はなんでしょう?
内容が長くなると読みにくいと思って必要かな?と思ったことだけ書いたことがそもそも間違いでした・・・
csvデータを読み込む際のプログラムで
見出し【種類】、【 タイプ】
いぬ,2
ねこ,3
わんこ,2
いぬ,2
こういったcsvを一行ずつ読み込み、エクセルの種類列と件数列に追加していく形になります。この種類列には重複行はいちゃだめです。
csvデータ(行数は未定)が全部読み切ったら終わりとなります。
この回答で不十分ならお申しつけくださいませ。
回答3件
あなたの回答
tips
プレビュー
