- ベストアンサー
Excel VBA セルの指定方法について
Excell2013です。 次のような表(一部)があります。 日 項目 額 分類 12 ノート 250 3 この、250を、別表の分類3の列(H列)の12日の行(15行)のセルに、そこにすでに値があれば250との合計値として入力したいのです。 データによって日付も分類も違いますので、マクロで自動的に入力したいのですが、どうもよくわかりません。 このような場合のVBAでの入力先セルの指定のしかたをどうすればよいのかどなたかご教示ください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
具体的に。 たとえばSheet1のA,B,C,D列に日、項目、額、分類と記入してあって たとえばSheet1の1行目がタイトル行で、2行目以下A列にデータが記入してあるセル範囲全体を対象に転記していきたいのだとして たとえばSheet2に別表があるとして たとえば分類1,2,3はそれぞれ具体的にF,G,H列が対応しているとして たとえばSheet2は1,2,3行はタイトル行だとかで4行目から実データを記入してるとして たとえばSheet2の4行目以下は、1,2,3…日と毎日1行ずつ(土日も1行使って)表を作成してあるとして。 sub macro1() dim r as long dim myDay as integer dim myCol as integer dim myVal as double for r = 2 to worksheets("Sheet1").range("A65536").end(xlup).row myday = worksheets("Sheet1").cells(r, "A").value + 3 ’1日が4行目 mycol = worksheets("Sheet1").cells(r, "D").value + 5 ’分類1が6列目 myval = worksheets("Sheet1").cells(r, "C").value worksheets("Sheet2").cells(myday, mycol).value = myval + worksheets("Sheet2").cells(myday, mycol).value next r end sub 「具体的な」マクロを書くときは、それぞれの行や列が具体的なエクセルの何行何列なのか、そもそもそれぞれの表や別表は具体的になんていうシートのどこのセル範囲にあるのか、正しいネタが無いと何も進みません。 次に、マクロと書くときは、具体的にどこのセル範囲を対象に操作をしたいのかも、しっかり決めてかないといけません。 たとえば「今選んでるセル(セル範囲)の行のデータを転記したい」とか「この列がこうなってる行を処理したい」とか、実際にヤリタイ事は何なのですか?ということです。 こういった具合に、マクロはイチイチいちいち手取り足取り何をしたらいいのかプログラムに書き込んでやらないと、何一つ自分ではやってくれないあなた以上の教えてチャンなので、そういう段取りをしっかり考えて進めるようにしてください。
お礼
すごいですね。 初心者の私には魔法のように見えます。 熟練するとあまり難しいこともないのでしょうか。 ともあれ、これで出来そうに思われますので、早速試してみます。 ありがとうございました。