エクセルマクロで列単位の条件分岐を行う方法について

このQ&Aのポイント
  • エクセルマクロで列単位の条件分岐を行う方法について考えています。
  • 具体的には、特定の条件に基づいて列にある数値を判定し、セルに入力されている銘柄コードと時系列データをネットから取得したいと思っています。
  • 150銘柄ほどのデータを一括で処理する方法を知りたいです。
回答を見る
  • ベストアンサー

エクセルマクロの条件分岐を列単位で行う

エクセルで株価取得の仕組みを作ろうと思い マクロのIf~ElseIfを列単位で条件分岐できないかと考えています。 今、作りたいと思っているのは (1)列に特定の数値があった場合は (2)セルに入力されている銘柄コードの (3)始値・高値・安値・終値・出来高といった時系列データをネットから取得 を考えています。 添付画像で言うと例えば (1)C列の「前日比が+」であった場合は (2)A列の「銘柄コード」の (3)始値・高値・安値・終値・出来高といった時系列データをネットから取得 という事を考えています。 分かりにくくて申し訳ありません 添付画像では3銘柄ほどしかありませんが、 実際は150銘柄ほどでこれを行い、 条件を満たしている銘柄のすべてで時系列データを取得したいと思っています。 自分でやろうと思ったやり方では C1,C2,C3...と一つ一つ指定するくらいしか出来なかったため、 マクロが長文になってしまいました。 そこで列単位で一括で条件分岐する方法はないでしょうか。 アドバイス頂けると助かります。

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

  • ベストアンサー
  • weboner
  • ベストアンサー率45% (111/244)
回答No.2

Sub Macro1() MaxRow = Range("C1").End(xlDown).Row For Each r In Range("C2").Resize(MaxRow) If r > 0 Then 'ここにやりたい処理を挿入 'C列のデータが1以上のセルが r で利用できます ' r.Offset(0,-2).Value で銘柄コードを取得できます End If Next End Sub

oretower
質問者

お礼

早速のご回答誠にありがとうございます。 >For Each 「繰り返す」というものがあったのですね。 ご教示ありがとうございます! 具体例も書いていただき非常に助かりました!

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! 質問文を読む限りでは「オートフィルタ」が一番簡単だと思います。 わざわざVBAでやる必要はなく手を動かすのが手っ取り早いのではないでしょうか? C列をキーに 「0より大きい」でフィルタをかけ、表示されているデータのみを別Sheetにコピー&ペーストする。 といった感じではどうでしょうか? ※ どうしてもVBAで!というコトであれば、上記の一連の操作をコードにすると ↓のような感じですかね? 元データはSheet1にあり、Sheet2にコピー&ペーストするコードの一例です。 Sub Sample1() Dim lastRow As Long, wS As Worksheet Set wS = Worksheets("Sheet2") wS.Cells.Clear With Worksheets("Sheet1") lastRow = .Cells(Rows.Count, "A").End(xlUp).Row .Range("A1").AutoFilter field:=3, Criteria1:=">0" .Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy wS.Range("A1") .AutoFilterMode = False End With End Sub こんな感じでは同でしょうか?m(_ _)m

oretower
質問者

お礼

早速のご回答誠にありがとうございます。 仰る通りフィルタをかけるのが手っ取り早く、大した手間ではないのですが、 出来る限り作業を機械的に行いたいと思っているのです。 ボタン一つで必要な情報をすべて取得して、 あとは株の売買の注文ボタンを押すだけ、 というのを理想としておりましたので。 ご提示いただいた別シートへのコピーは 今回の質問とは違うのですが、ちょうど自分が別に考えていた株情報取得に役立つ内容なので ぜひ使わせていただきます。 ご回答ありがとうございます!

関連するQ&A

  • ヤフーファイナンスからのデータダウンロードについて

    はじめまして。 お手数で申し訳ないのですが、 教えて頂けると幸いです。 ヤフーファイナンスから毎日、指定した銘柄の株価データ の四本値=(始値 高値 安値 終値)を取得できる マクロを作成しようと と考えておりますが、やり方がわからず困っております。。。 例えば、マクロボタンを押すと、 自動的にヤフーファイナンスのホームページから データを探し、 あらかじめセルAの列に表示した銘柄のみの 最新日付けの四本値データをエクセルに表示したいです。 セルA B C D E 銘柄  始値  高値  安値  終値  ---------------------------------------------  1301  199 202 198 200   1332 388 393 386 387 1334 194 199   190 195 1376 1618 1680 1600 1612 すいませんがヒントでも結構ですので  よろしくお願いできますでしょうか?

  • ヤフーファイナンスからデータを集計して表示

    ヤフーファイナンスで銘柄毎に時系列データが公開されていますが、 次のデータをエクセル上に取得するマクロの作り方を教えてください。 最も最近の高値とここ30日(30回ではないです)の出来高の最高値です。 例えばAの列に銘柄のコードが並べておきます。 他の列は空白です。 A B C・・・ 2914 7203 9432 マクロを実行するとBとCの列にヤフーファイナスから取得した値を出力して欲しいです。 A B C・・・ 2914 2914の銘柄の高値 2914の銘柄の30日の出来高の最高値 7203 7203の銘柄の高値 7203の銘柄の30日の出来高の最高値 9432 9432の銘柄の高値 9432の銘柄の30日の出来高の最高値 どなたか詳しい方おられましたら教えてください。

  • 自分で考えた売買条件がバックテストできるソフトを探しています

    私はこれまで、「株てくてく」http://www.interq.or.jp/sun/fumiki/という、バックテストができる株投資ソフトを利用していましたが、このソフトの作者が体調不良のため利用できなくなりました。 これに代わるソフトを探しています。 次の条件がスクリーニングできる投資ソフトをご存知の方がいましたら教えてください。 よろしくお願いします。 買い条件 先月の終わり値が、5年来の最高値の5割以下AND 先月の安値が、3年来の最安値であるAND 先月の終わり値が、3年来の月間終値最安値であるAND 先月の出来高が、直近3ヶ月の最小月間出来高の3倍以上AND 先月の終わり値が、始値より安いAND 先月の終わり値が、一株純資産より安い。 上記の条件を満たした銘柄が出現した後、更に次の条件を満たしたタイミングで買う。 第二条件 直近1年間の最高値と最安値の差が200円以下AND 先月の安値が、直近6ヶ月の最安値であるAND 先月の安値が、5年来最安値の103%以下であるAND 先月の終わり値が、始値より安いAND 先月の月間出来高が、直近3ヶ月の最小月間出来高の2倍以上であるAND 先月の月間終わり値が2ヶ月前の終わり値の80%以上であるAND 先月の終わり値が、一株純資産より安い。 売り条件 {先月の月間終わり値が、2年来の月間終値の最高値AND  先月の月間出来高が、2年来最大月間出来高の3分の一以下}OR 買値より先月の終わり値が2割安い。

  • エクセルで株価の1分足を他の分足に変える事ができますでしょうか?

    エクセルで1分足の株価を10分足に変えたいのですが、できますでしょうか? A列に日付、B列に時刻(9:00・9:01・9:02・・・・)、C列に始値 D列に高値、E列に安値、F列に終値が入っています。 これをH列に日付、I列に時刻(9:00・9:10・9:20・・・・) J列に始値D列に高値、K列に安値、L列に終値が入っています。 (9:00の列には9:00~9:09までの始値・高値・安値・終値が入ります。) 宜しくお願いします。

  • 株価の推移を知りたいのですが

    株価の時系列 始値 安値 高値 終値 出来高を知りたいのですが いいサイトがありませんか?  それぞれの銘柄いついての1年の株価の推移をできればテキストファイル (エクセルで加工するので)で手に入れたいと考えています。 いいサイトがあれば教えてください。  また みなさんが重宝してるサイトがあれば合わせて教えてて 頂くとありがたいです。 よろしくお願いします。

  • 計算してから・・求めている数値以上なら・・別のフォルダにファイル名を表示する。

    前回も同じ質問をしましたが、わかりずらい質問だったと思いますので改めて質問します。 各銘柄の日足のデータが各CSVで保存されています。 A B C D E F 1 日付  始値 高値 安値 終値 出来高 2 11/30  456 789 123 456 123456 3 11/29 258 369 47 322 456789 4 : : : : : : 5 : : : : : : そこから別のファイルに始値より終値が5%以上、上がっている場合や25日移動平均を上回っている場合を表示することはできるのでしょうか?

  • 株価の始値の時間などや、それがわかるサイトなどは?

    9424 日本通信ですが、6910円始値の時間がお分かりの方お願いします。 なお、どこかのサイトや他のもので、毎日(時系列)の始値、高値、安値、終値と 「各時間」、および出来高がわかるものがあれば教えてください。

  • エクセルで株価チャートを作りたい。

    エクセル2002を使っています。 始値、安値、高値、終値を表示したチャートは作れたんですが、これに日付、出来高も表示するにはどういう方法で作ればいいですか? どなたか作り方教えてください。

  • 計算してから・・求めている数値以上なら・・別のフォルダにファイル名を表示する。

    ●A銘柄フォルダとB銘柄フォルダに下のような銘柄が違う日足のデータがあるとします。 A B C D E F 1 日付  始値 高値 安値 終値 出来高 2 11/30 456 789 123 456 123456 3 11/29 258 369 147 322 456789 4 : : : : : : 5 : : : : : : ●それをCフォルダの中に前日の終値より当日の終値が5%上がっていた銘柄名の表示する・・・このようなことはできるんでしょうか? ※省略しますと日足のデータから数値を計算して、その数値が求めている数値以上なら別のフォルダにそのフォルダ名を表示する よろしくお願いします。

  • 高値がついた時刻、安値がついた時刻がわかるような無料の株価情報

    株価情報で次の条件を満たすような情報を無料で取得する事はできないでしょうか? 1)日足(日単位)の5つの値(始値、高値、安値、終値、出来高)が分かり  これらに加えて高値がついた時刻、安値がついた時刻をも分かる。 2)日付または日付の範囲を指定して当日のみでなくて、過去日についても、  1)に示したものと同様の情報が分かる。 世の中に出回っている株価の閲覧サイトにとても詳しい方がいらっしゃい ましたら、ご教授ねがいます。

専門家に質問してみよう