• ベストアンサー

エクセル マクロで配列のインデックスを日付にできますか?

エクセル マクロで配列のインデックスを日付にできますか? エクセルでマクロを作成中ですが,日付ごとにデータをまとめたくて、日付を配列のインデックスにしたいと思ってますが,そのまま配列に組み込んでもエラーで止まってしまいます。 なにかいい案はありますでしょうか?

  • icq
  • お礼率11% (80/699)

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

>日付を配列のインデックスにしたいと思ってますが 配列にする日付はどのようにしてますか? 2010年11月3日の場合 西暦4桁  20101103 ×配列が大きすぎる 西暦2桁  101103  ○配列が大きいので、メモリを使用するので遅くなる シリアル値 40485  ◎配列は一番小さい 配列の宣言は忘れないでください。 シリアル値の場合 Dim Hairetsu(50000) ※50000=2036年11月21日 呼び出しは Hairetsu(Clng(日付)) 西暦3桁の場合 Dim Hairetsu(361121) 呼び出しは Hairetsu(Clng(Format(日付,"yymmdd")))

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

>そのまま配列に組み込んでもエラーで止まってしまいます。 どんなコードでしょう。それを見ても修正こそすれ、笑う人はいないと思いますが、最近は、考え方だけで質問する人が多いようです。その分回答も同様のものになってしまいます。 >日付を配列のインデックスにしたい 概念的な問題だと思いますが、何か、誤解していらっしゃるようです。Excelのワークシートの構造に、配列に似たものとしては、シートがあります。そのシートには、Index は、必ず、1 から順に入っています。そのIndex を日付に換えますか?そんなことはできませんね。 必要に応じてシート名を変えれば済みます。もし、配列するなら、配列の二次配列するとか、ひとつの配列構造と同じものを用意するということをすればよいです。 >日付ごとにデータをまとめたくて 概念的なお話なので、話はここまでですが、データが複数ある時は、Dictionary などを利用します。しかし、そういう技術を用いなくても、たぶん、そういう質問の出てくるレベルですと、ワークシートをデータストックの代わりに使えばよいと思います。そこまで、自力では組めないような気がします。

  • foomufoomu
  • ベストアンサー率36% (1018/2761)
回答No.2

>日付を配列のインデックスにしたいと思ってますが, 普通、そんなことはしませんよ。 日付の範囲が限られている場合、開始日からの日数をインデックスにするという方法も考えられますが、 普通は、日付を覚えておくための配列と、データを覚えておくための配列を作っておいて、 与えられた日付を、日付用配列のデータから検索して、配列のインデックスを探し出す、 ということをします。 検索の方法は、ハッシュ法、2分検索法、(グーグルすれば見つかります)などを使います。

関連するQ&A

  • エクセルでマクロを用い日付をテキスト化したいのですが。

    エクセルで日付をテキスト化するのに、マクロをつかって自動化させたいと考えています。 以下のようなデータを扱っています。 日付  その他  その他  その他 2007/4/26 2007/4/28 2007/5/12 2007/6/12 こういったデータがあり、日付の列を選択し、置換→200を'200にすることで日付をテキスト化したいと思っています。 マクロを作成中は問題なく、置換し、テキスト化が出来ますが。 一度日付データを消し、日付を入れてマクロを実行すると 4/26/'2007 4/28/'2007 5/12/'2007 6/12/'2007 といった感じで実行され、正しくテキスト化されません。 質問にお答えしていただけると大変ありがたいです。 よろしくお願いします。 ※ちなみにマクロは自動記録方式のみで作っています。VBAは修正程度の知識しかないです。

  • EXCELでマクロを用い日付をテキスト化したいのですが。

    エクセルで日付をテキスト化するのに、マクロをつかって自動化させたいと考えています。 以下のようなデータを扱っています。 日付  その他  その他  その他 2007/4/26 2007/4/28 2007/5/12 2007/6/12 こういったデータがあり、日付の列を選択し、置換→200を'200にすることで日付をテキスト化したいと思っています。 マクロを作成中は問題なく、置換し、テキスト化が出来ますが。 一度日付データを消し、日付を入れてマクロを実行すると 4/26/'2007 4/28/'2007 5/12/'2007 6/12/'2007 といった感じで実行され、正しくテキスト化されません。 質問にお答えしていただけると大変ありがたいです。 よろしくお願い致します。 ※ちなみにマクロは自動記録方式のみで作っています。VBAは修正程度の知識しかないです。

  • Excelマクロ:配列データからグラフを作成するには?

    マクロ初心者です。 Excel VBAのマクロで、2つの配列データから、散布図グラフを作成したいのですが、セルに配列データを書き込まず、直接グラフ化するにはどうしたらよいでしょうか? 配列データの要素数がexcelの行と列の最大数(65536,256)?を超えてしまっているので、配列データから直接グラフ化したいと思っています。 よろしくお願いいたします。

  • エクセルマクロ 日付を検索し入力

    エクセル2003マクロを使用して以下の事を行いたいと思っていますが、どのようなマクロを組んだらよいか分かりません。よろしくお願いします。 シート上部にある以下のデータを    A      B     C      D      E     1  日付 商品A 商品B 商品C  商品D 2  5/26    5     6     1       3    ←その日のデータ(毎日変わる) 入力ボタンを作成し、それを押すことにより        ↓ 6   5/1 7    ・ 8    ・ 9   5/26   5     6     1     3 10    ・  ↑日付が予め入力された表 上記のような、同一シート上の日付欄に入力される表を作りたいのですが、方法が分かりません。 その日のデータは、別シートに入力用フォームを作成し、飛ばしています。何人かの人間が入力するので、マクロで簡単に、行えるようにしたいと思います。よろしくお願いします。

  • エクセルで開くだけで、開いた日付を挿入するマクロは作れますか?

    エクセルで開くだけで、開いた日付を挿入するマクロは作れますか? ボタンに登録して使うマクロは作れたのですが、 開くだけで日付挿入が出来るときいたんですが、 どなたか教えてもらえないでしょうか? 宜しくお願い致します。

  • 日付の表示を変えるマクロ

    閲覧ありがとうございます。 Excelのマクロに関しての質問です。 今、テキストデータから「東京都・晴れ」を含む行をExcelファイルに抽出後、そのデータを日付別にふり分けるマクロを作っています。 そこで、テキストデータの日付の表示「11/8/2009」(2009年8月11日)や「8/9/2009」(2009年9月8日)を「2009/8/11」「2009/9/8」のように、年・月・日という表示に変えたいのですが、検索しても色々試しても良いマクロが浮かびません。 よろしければ素敵なマクロ、ご教授願います。 ※ちなみに、入力規則などを指定してもテキストからデータを引っ張ってきているため(?)か上手くいきません。

  • エクセルのマクロで教えてください

    すみません。もし教えていただける方がいらっしゃればお願いいたします。以下のようなエクセルのデータがあるとします。 この中で,同じ担当者の最新の日付の行のみを抽出したデータのシートを作りたいのです。以下のデータであれば,2,3,5,6,8,9行目を削除するマクロを作成したいのですが,どのようなマクロを作成ればよいのでしょうか。 A     B    C 1  担当者   日付   金額 2 たなか   8/1   10,000 3 たなか   8/10   15,000 4 たなか   8/21   20,000 5 さとう    8/2    8,000 6 さとう    8/12   12,000 7 さとう    8/22   15,000 8 やまだ   8/1     9,000   9 やまだ   8/7    12,000 10やまだ   8/15   18,000

  • Excelで日付のマクロは?

    Excelで日付のマクロは? どのようにしておこなうのでしょうか? Wordでは以下のようです。 [ツールMenu]―[マクロ]―[新しいマクロの記録]―[キーボード]―[割り当てるキー:Ctrl+D]―[割り当てButton]―[閉じる] [挿入Menu]―[日付と時刻]―[カレンダーの種類]―[西暦]―[好みのものを選択]―[OK] [ツールMenu]―[マクロ]―[記録終了]2002/03/25

  • エクセルで日付を付けるマクロ

    エクセルで記入のある行のみに最後の列に日付を加えたいのですが、例えば1~10までのAからEまで記入されていたとするとF1~F10までに日付が入るようにしたいのですが、できればこのマクロが可能でしたらどなたかご教授下さい。 またスペースのための未記入行をまとめて削除する方法(できればマクロ)ももしご存知の方お願い致します。

  • エクセルのマクロで

    こんにちは、お願いします。 エクセルで小計を自動計算させたいのですが・・・ 同じ日付のデータがいくつか入力されていて その日付ごとの小計を列で出したいのです。  日付    値  小計 2002/9/1  123 2002/9/1  456   579 2002/9/2  789 2002/9/2  321  1100 という感じで・・・ このとき小計を出すセルへカーソルを置き、日付を入力するか、またはその行と同じ日付になる小計を出す、 関数では出来ないですよね? 関数式ではできなとすると、マクロが作成できるでしょうか? ご存知の方がいらっしゃいましたら、是非教えてください。 宜しくお願いします。   

専門家に質問してみよう