- ベストアンサー
エクセルVBを使ってシートをまたいだセルへの自動記入を教えてください
- エクセルとマクロ(VB)を使い、づかい帳や家計簿の様な物を想定して、前月シートの今月残高が翌月シートの先月残高に自動で記入する方法を教えてください。
- 現在Sheet1のセルには、2008年12月、12、前月残高、99999、収入、5555、支出、7777、今月残高、97777というデータがあります。
- マクロを実行するごとにシートが一つずつ増え、先月の今月残高を翌月の前月残高に記入する方法が分かりません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
結果として、シートインデックス2(左から2番目)のシート名を数式に入れたいと言う事でしょうか? Sheets("Sheet1").Range("d2").FormulaR1C1 = "='" & Sheets(2).Name & "'!R[3]C" 例えばこんな感じの事?
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17070)
先月シートの今月残高の有る行は、変わらないのか、月によりデータの多少で変わるのか、書いてなくて質問にならない。 変わらないならVBAなど使わず、=Sheet1!B20のように関数式でやればすむ。 変わるなら先月シートの今月残高のある行を(VBAや関数で)探さないといけない。そういうところに目が行ってないようだが、良く考え直してみて質問してください。
補足
>書いてなくて質問にならない。 それはどうも至らない人間で誠に無作法この上なく恐縮至極であります。 かくなりますればあなたのような聖人の如き崇高なるご意見を平に承りたく候。 >変わらないならVBAなど使わず マクロvbaを使用に至る主たる目的は(vbaの文を読んでいただけば分かる様に) α実行ごとに月数を増変させる。 βそれに伴いシートの名前を自動記述させる。 γ毎月同じフォームを使うこと。 といったところです。マクロでコピーするわけですからγは書くまでもありませんし、同じフォームを使うのですから残高の行は変わらないのは自明ですね。 先月残高を今月残高に自動記入させるのは、言ってみればもののついでです。 ここで質問するより、30日に1度自分で書き込んでしまえばいいわけですから。 >=Sheet1!B20のように関数式で シートの名前が毎月変わるのにそう単純に行くのかどうかご教示願います。 >変わるなら今月残高のある行を(VBAや関数で)探さないといけない。 折角ですから先生のご高説、拝聴仕りたいです。
お礼
本当にご親切にありがとうございます。
補足
さっそくの回答ありがとうございます。うまく行きました。 Sheets("Sheet1").Copy After:=Sheets(3)の場合 Sheets("Sheet1").Range("d2").FormulaR1C1 = "='" & Sheets(4).Name & "'!R[3]C" でうまくいきましたが、" & Sheets(X).Name & "は「X枚目のシートを見よ」ということでしょうか。 「&」の意味を教えていただけないでしょうか。