• ベストアンサー

エクセルマクロを使って・・・

今下のような、データーがあるのです。     1月 2月 3月  ・・・・ りんご 10  15  14 みかん 30  18  14 ばなな 18  14  11 ・ ・ そのデーターを果物ごとにシートに名前をつけて書き出そうと思うのですが、データ量が膨大でマクロを使おうと思ったのですが、どうしていいのかわかりません。 提出書類は、エクセルのシートに埋めて提出しなければなりません。 どうしたらいいのか助けてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.3

>エラーは、globalエラーです。 エラーメッセージはそれだけですか? >原因は、A&iが、A2、A3と認識しないところにあるはずです。 そうですね。 Range("データベース! A&i ") の場合、 ""で括られた中身は、文字列として扱われます。 iという変数の値がどうなっても、""の中のiはあくまでもiという文字でしかありません。 つまり、iがいくつでも、Range("データベース! A&i ") は Range("データベース! A&i ") でしかないということです。決してRange("データベース! A1 ") とかにはなりません。 iが1だったらA1、iが2だったらA2とするためには、"A"&i とする必要があります。 range("データベース!cell(i,1)")の場合、たとえiが変数として扱われたとしても、NGです。こんな書式は無いので。

sdamau
質問者

お礼

何回も、いろいろとありがとうございました。 おかげさまで、解決しました。

その他の回答 (3)

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.4

参考になりそうなホームページを紹介します。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_furiwake.html

参考URL:
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_furiwake.html
sdamau
質問者

お礼

ありがとうございます。 これで、すっきり解決しました。 ありがとうございました。

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.2

えぇっと、原因は解っているのですが、あえて意地悪な回答をします。 >Dim i As Long >For i = 2 To 3 Step 1 >Sheets("ひながた").Copy Before:=Sheets(1) >  ActiveSheet.Name = Range("データベース! A&i ") >Next i >End Sub >で、シートのコピーを進めることができません。 これは、処理はエラーなく終了するのに、狙い通りの動作をしてくれない、ということでしょうか? それとも、何かしらのエラーで止まってしまうということでしょうか? 「シートのコピーを進めることができません」という、自分の頭の中にある理想に対して上手くいかない、という書き方ではなく、もっと具体的な説明をしましょう。 >ActiveSheet.Name = Range("データベース! "A"&i ") >でもセルが下がってくれません。 セルが下がる? いろんな意味の取りかたができます。 セルが下がる、の意味もよく解りませんが、セルが下がらないだけで、エラーにはならない、ということでしょうか?

sdamau
質問者

補足

エラーは、globalエラーです。 原因は、A&iが、A2、A3と認識しないところにあるはずです。 そこで、 range("データベース!cell(i,1)") でも、認識されないのでどうしたものか。 とりえず、本を買ってみてますが、どこを読めばいいのかもわかんない状態です。

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.1

>マクロを使おうと思ったのですが、どうしていいのかわかりません。 マクロのことはどの程度わかっているのでしょうか? まったくわからないとしたら、すべて作ってあげることになっちゃいますが、それは「丸投げ」というやつなので、ここでは禁止されているんですよねぇ。 作るにしても、 果物ごとのシートの書き出し結果(フォーマット)も明確じゃないし、 下のデータに同じ果物は1行しか出てこないのか、いくつも出てくるのか、ということも不明だし、 情報が少なすぎますね。 最低でも、 新たにシートを追加する方法 シート名を変更する方法 セルの値を、別シートのセルに書き込む方法 をあなたが知っていないと、こちらが何をどう答えても、理解できない可能性が高いです。 上司や同僚に相談するのが得策だと思います。

sdamau
質問者

補足

シートの名前を自動でつけられるようにしたいのです。 果物には重複はありません、データベースとして利用可能です。 自分で作ったものでは Dim i As Long For i = 2 To 3 Step 1 Sheets("ひながた").Copy Before:=Sheets(1)   ActiveSheet.Name = Range("データベース! A&i ") Next i End Sub で、シートのコピーを進めることができません。 ActiveSheet.Name = Range("データベース! "A"&i ") でもセルが下がってくれません。 バージョンはVB6.0です。 事業所内にくわしい人がいません。 A列にシート名になるリストが入っています。 B列以降に、データが入っています。

関連するQ&A

専門家に質問してみよう